##// END OF EJS Templates
Optimization: line series now uses QPainter::drawLine
Optimization: line series now uses QPainter::drawLine

File last commit:

r1736:cb991e4e355f
r1780:94c0d22f0f14
Show More
qhorizontalbarseries.cpp
118 lines | 3.6 KiB | text/x-c | CppLexer
/ src / barchart / horizontal / bar / qhorizontalbarseries.cpp
Michal Klocek
Refactor barchart...
r1707 /****************************************************************************
**
** Copyright (C) 2012 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Commercial Charts Add-on.
**
** $QT_BEGIN_LICENSE$
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
** $QT_END_LICENSE$
**
****************************************************************************/
sauimone
horizontal barchart frame
r1672 #include "qhorizontalbarseries.h"
#include "qhorizontalbarseries_p.h"
sauimone
horizontal barchart & example
r1681 #include "horizontalbarchartitem_p.h"
#include "horizontalbaranimation_p.h"
Michal Klocek
Adds axis domain intialization
r1695 #include "qbarcategoriesaxis.h"
sauimone
horizontal barchart & example
r1681
#include "chartdataset_p.h"
#include "charttheme_p.h"
sauimone
horizontal barchart frame
r1672 QTCOMMERCIALCHART_BEGIN_NAMESPACE
sauimone
horizontal barchart doc update
r1709 /*!
\class QHorizontalBarSeries
\brief Series for creating horizontal bar chart
\mainclass
QHorizontalBarSeries represents a series of data shown as bars. The purpose of this class is to draw bars
as groups, where bars in same category are grouped next to each other. QHorizontalBarSeries groups the data
from sets to categories, which are defined by a QStringList.
See the \l {HorizontalBarChart Example} {horizontal bar chart example} to learn how to create a horizontal bar chart.
\image examples_horizontalbarchart.png
\sa QBarSet, QBarSeries, QPercentBarSeries, QAbstractBarSeries, QStackedBarSeries, QHorizontalStackedBarSeries, QHorizontalPercentBarSeries
*/
/*
// TODO:
\qmlclass Horizontal QHorizontalBarSeries
\inherits AbstractBarSeries
The following QML shows how to create a simple grouped bar chart:
\snippet ../demos/qmlchart/qml/qmlchart/View6.qml 1
\beginfloatleft
\image demos_qmlchart6.png
\endfloat
\clearfloat
*/
sauimone
horizontal barchart frame
r1672 QHorizontalBarSeries::QHorizontalBarSeries(QObject *parent) :
sauimone
horizontal barchart & example
r1681 QAbstractBarSeries(*new QHorizontalBarSeriesPrivate(this), parent)
sauimone
horizontal barchart frame
r1672 {
}
Michal Klocek
Fixes wrong bar destruction by adding destructor for bar*series , note this breaks ABI
r1727 QHorizontalBarSeries::~QHorizontalBarSeries()
{
Q_D(QHorizontalBarSeries);
if(d->m_dataset) {
d->m_dataset->removeSeries(this);
}
}
sauimone
horizontal barchart frame
r1672 QAbstractSeries::SeriesType QHorizontalBarSeries::type() const
{
return QAbstractSeries::SeriesTypeHorizontalBar;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QHorizontalBarSeriesPrivate::QHorizontalBarSeriesPrivate(QHorizontalBarSeries *q) : QAbstractBarSeriesPrivate(q)
{
}
void QHorizontalBarSeriesPrivate::scaleDomain(Domain& domain)
{
qreal minX(domain.minX());
qreal minY(domain.minY());
qreal maxX(domain.maxX());
qreal maxY(domain.maxY());
sauimone
horizontal barchart & example
r1681 qreal y = categoryCount();
qreal x = max();
minX = qMin(minX, x);
sauimone
horizontal percent barchart & example
r1688 minY = qMin(minY, - (qreal)0.5);
sauimone
horizontal barchart & example
r1681 maxX = qMax(maxX, x);
sauimone
horizontal percent barchart & example
r1688 maxY = qMax(maxY, y - (qreal)0.5);
sauimone
horizontal barchart frame
r1672
Michal Klocek
Refactors Domain and Axis...
r1698 domain.setRange(minX,maxX,minY,maxY);
sauimone
horizontal barchart frame
r1672 }
Michal Klocek
Refactors Chart to ChartElement
r1736 ChartElement* QHorizontalBarSeriesPrivate::createGraphics(ChartPresenter* presenter)
sauimone
horizontal barchart frame
r1672 {
Q_Q(QHorizontalBarSeries);
sauimone
horizontal barchart & example
r1681 HorizontalBarChartItem* bar = new HorizontalBarChartItem(q,presenter);
sauimone
horizontal barchart frame
r1672 if(presenter->animationOptions().testFlag(QChart::SeriesAnimations)) {
sauimone
horizontal barchart & example
r1681 bar->setAnimation(new HorizontalBarAnimation(bar));
sauimone
horizontal barchart frame
r1672 }
presenter->chartTheme()->decorate(q, presenter->dataSet()->seriesIndex(q));
return bar;
sauimone
horizontal barchart & example
r1681 }
sauimone
horizontal barchart frame
r1672 #include "moc_qhorizontalbarseries.cpp"
QTCOMMERCIALCHART_END_NAMESPACE