##// END OF EJS Templates
Fix assert failure with percent bar series...
Fix assert failure with percent bar series Category groups with zero values are not drawn. Task-number: QTRD-3087 Change-Id: Ie6f85e48398e751213b11d88c0c6a8de2ce8247a Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>

File last commit:

r2690:6c409268c150
r2690:6c409268c150
Show More
qhorizontalpercentbarseries.cpp
124 lines | 3.9 KiB | text/x-c | CppLexer
/ src / barchart / horizontal / percent / qhorizontalpercentbarseries.cpp
Jani Honkonen
add missing license statements
r1916 /****************************************************************************
**
Titta Heikkala
Update copyright year...
r2688 ** Copyright (C) 2014 Digia Plc
Jani Honkonen
add missing license statements
r1916 ** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** This file is part of the Qt Enterprise Charts Add-on.
Jani Honkonen
add missing license statements
r1916 **
** $QT_BEGIN_LICENSE$
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
Jani Honkonen
add missing license statements
r1916 ** 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 percent barchart & example
r1688 #include "qhorizontalpercentbarseries.h"
#include "qhorizontalpercentbarseries_p.h"
#include "horizontalpercentbarchartitem_p.h"
#include "chartdataset_p.h"
#include "charttheme_p.h"
QTCOMMERCIALCHART_BEGIN_NAMESPACE
sauimone
horizontal barchart doc update
r1793 /*!
\class QHorizontalPercentBarSeries
Titta Heikkala
Fix Charts documentation...
r2639 \inmodule Qt Charts
Miikka Heikkinen
Fix some documentation issues...
r2520 \brief Series for creating horizontal percent bar chart.
sauimone
horizontal barchart doc update
r1793 \mainclass
Titta Heikkala
Fix assert failure with percent bar series...
r2690 QHorizontalPercentBarSeries 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.
QHorizontalPercentBarSeries groups the data from sets to categories, which are defined by a
QStringList. Bars with zero value are not drawn.
sauimone
horizontal barchart doc update
r1793
Titta Heikkala
Fix assert failure with percent bar series...
r2690 See the \l {HorizontalPercentBarChart Example} {horizontal percent bar chart example} to learn
how to create a horizontal percent bar chart.
sauimone
horizontal barchart doc update
r1793 \image examples_horizontalpercentbarchart.png
Titta Heikkala
Fix assert failure with percent bar series...
r2690 \sa QBarSet, QBarSeries, QPercentBarSeries, QAbstractBarSeries, QStackedBarSeries,
QHorizontalStackedBarSeries, QHorizontalBarSeries
sauimone
horizontal barchart doc update
r1793 */
Titta Heikkala
Fix Charts documentation...
r2639 #ifdef QDOC_QT5
/*!
\qmltype HorizontalPercentBarSeries
\instantiates QHorizontalPercentBarSeries
\inqmlmodule QtCommercial.Chart
Titta Heikkala
Fix documentation paths...
r2650 \include doc/src/horizontalpercentbarseries.qdocinc
Titta Heikkala
Fix Charts documentation...
r2639 */
#else
sauimone
qml documentation for horizontal barcharts
r1901 /*!
\qmlclass HorizontalPercentBarSeries QHorizontalPercentBarSeries
Titta Heikkala
Fix Charts documentation...
r2639 \include ../doc/src/horizontalpercentbarseries.qdocinc
sauimone
qml documentation for horizontal barcharts
r1901 */
Titta Heikkala
Fix Charts documentation...
r2639 #endif
sauimone
horizontal barchart doc update
r1793
/*!
Constructs empty QHorizontalPercentBarSeries.
QHorizontalPercentBarSeries is QObject which is a child of a \a parent.
*/
sauimone
horizontal percent barchart & example
r1688 QHorizontalPercentBarSeries::QHorizontalPercentBarSeries(QObject *parent) :
QAbstractBarSeries(*new QHorizontalPercentBarSeriesPrivate(this), parent)
{
}
sauimone
horizontal barchart doc update
r1793 /*!
Miikka Heikkinen
Fix some documentation issues...
r2520 Returns QAbstractSeries::SeriesTypeHorizontalPercentBar.
sauimone
horizontal barchart doc update
r1793 */
sauimone
horizontal percent barchart & example
r1688 QAbstractSeries::SeriesType QHorizontalPercentBarSeries::type() const
{
return QAbstractSeries::SeriesTypeHorizontalPercentBar;
}
sauimone
horizontal barchart doc update
r1793 /*!
Miikka Heikkinen
Documentation updates...
r2494 Destructor.
sauimone
horizontal barchart doc update
r1793 Removes series from chart.
*/
Michal Klocek
Fixes wrong bar destruction by adding destructor for bar*series , note this breaks ABI
r1727 QHorizontalPercentBarSeries::~QHorizontalPercentBarSeries()
{
Q_D(QHorizontalPercentBarSeries);
Michal Klocek
Refactors internals...
r2273 if (d->m_chart)
d->m_chart->removeSeries(this);
Michal Klocek
Fixes wrong bar destruction by adding destructor for bar*series , note this breaks ABI
r1727 }
sauimone
horizontal percent barchart & example
r1688
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
QHorizontalPercentBarSeriesPrivate::QHorizontalPercentBarSeriesPrivate(QHorizontalPercentBarSeries *q) : QAbstractBarSeriesPrivate(q)
{
}
Michal Klocek
Refactors internals...
r2273 void QHorizontalPercentBarSeriesPrivate::initializeDomain()
sauimone
horizontal percent barchart & example
r1688 {
Michal Klocek
Refactors internals...
r2273 qreal minX(domain()->minX());
qreal minY(domain()->minY());
qreal maxX(domain()->maxX());
qreal maxY(domain()->maxY());
sauimone
horizontal percent barchart & example
r1688
qreal y = categoryCount();
minX = 0;
maxX = 100;
minY = qMin(minY, - (qreal)0.5);
maxY = qMax(maxY, y - (qreal)0.5);
Michal Klocek
Refactors internals...
r2273 domain()->setRange(minX, maxX, minY, maxY);
sauimone
horizontal percent barchart & example
r1688 }
Michal Klocek
Refactors internals...
r2273 void QHorizontalPercentBarSeriesPrivate::initializeGraphics(QGraphicsItem* parent)
sauimone
horizontal percent barchart & example
r1688 {
Q_Q(QHorizontalPercentBarSeries);
Michal Klocek
Refactors internals...
r2273 HorizontalPercentBarChartItem *bar = new HorizontalPercentBarChartItem(q,parent);
m_item.reset(bar);
QAbstractSeriesPrivate::initializeGraphics(parent);
}
sauimone
horizontal percent barchart & example
r1688
#include "moc_qhorizontalpercentbarseries.cpp"
QTCOMMERCIALCHART_END_NAMESPACE