##// END OF EJS Templates
changed barset name to label to be consistent with pie series. Series have names, barsets and pieslices have labels
changed barset name to label to be consistent with pie series. Series have names, barsets and pieslices have labels

File last commit:

r1425:a0d2e2cf1ab3
r1429:39a4e8ac4330
Show More
groupedbarchartitem.cpp
91 lines | 3.1 KiB | text/x-c | CppLexer
/ src / barchart / groupedbarchartitem.cpp
sauimone
new series: groupedbarseries
r1167 /****************************************************************************
**
** 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$
**
****************************************************************************/
#include "groupedbarchartitem_p.h"
#include "bar_p.h"
#include "qbarset_p.h"
#include "qbarseries_p.h"
#include "qbarset.h"
QTCOMMERCIALCHART_BEGIN_NAMESPACE
GroupedBarChartItem::GroupedBarChartItem(QBarSeries *series, ChartPresenter *presenter) :
BarChartItem(series, presenter)
{
}
QVector<QRectF> GroupedBarChartItem::calculateLayout()
{
QVector<QRectF> layout;
sauimone
removed categories from barseries. categories are now only on axis
r1321 // Use temporary qreals for accuracy
qreal categoryCount = m_series->d_func()->categoryCount();
sauimone
new series: groupedbarseries
r1167 qreal setCount = m_series->barsetCount();
sauimone
barchart visible property fix
r1322 bool barsVisible = m_series->isVisible();
sauimone
new series: groupedbarseries
r1167
// Domain:
qreal width = geometry().width();
qreal height = geometry().height();
sauimone
correct x-positioning for barcharts
r1228 qreal rangeY = m_domainMaxY - m_domainMinY;
qreal rangeX = m_domainMaxX - m_domainMinX;
qreal scaleY = (height / rangeY);
qreal scaleX = (width / rangeX);
sauimone
barmargin replaced with barwidth
r1425 qreal barWidth = (scaleX / setCount) * m_series->d_func()->barWidth();
sauimone
new series: groupedbarseries
r1167
int itemIndex(0);
for (int category = 0; category < categoryCount; category++) {
sauimone
correct x-positioning for barcharts
r1228 qreal yPos = height + scaleY * m_domainMinY + geometry().topLeft().y();
sauimone
new series: groupedbarseries
r1167 for (int set = 0; set < setCount; set++) {
QBarSet* barSet = m_series->d_func()->barsetAt(set);
sauimone
correct x-positioning for barcharts
r1228 qreal xPos = (barSet->at(category).x() - m_domainMinX) * scaleX + m_rect.left();
xPos -= setCount*barWidth/2;
xPos += set*barWidth;
qreal barHeight = barSet->at(category).y() * scaleY;
sauimone
new series: groupedbarseries
r1167 Bar* bar = m_bars.at(itemIndex);
QRectF rect(xPos, yPos - barHeight, barWidth, barHeight);
layout.append(rect);
bar->setPen(barSet->pen());
bar->setBrush(barSet->brush());
sauimone
barchart visible property fix
r1322 bar->setVisible(barsVisible);
sauimone
new series: groupedbarseries
r1167
sauimone
removed barlabel. label visibility control is now per series instead of per set
r1246 QGraphicsSimpleTextItem* label = m_labels.at(itemIndex);
sauimone
new series: groupedbarseries
r1167
if (!qFuzzyIsNull(barSet->at(category).y())) {
label->setText(QString::number(barSet->at(category).y()));
} else {
label->setText(QString(""));
}
label->setPos(xPos + (rect.width()/2 - label->boundingRect().width()/2)
,yPos - barHeight/2 - label->boundingRect().height()/2);
label->setFont(barSet->labelFont());
Tero Ahola
Fixed a bug with QBarSet::setLabelBrush
r1306 label->setBrush(barSet->labelBrush());
sauimone
new series: groupedbarseries
r1167
itemIndex++;
}
}
return layout;
}
#include "moc_groupedbarchartitem_p.cpp"
QTCOMMERCIALCHART_END_NAMESPACE