summaryrefslogtreecommitdiffstats
path: root/src/barchart/vertical/bar
diff options
context:
space:
mode:
authorsauimone <samu.uimonen@digia.com>2012-08-17 14:55:56 +0300
committersauimone <samu.uimonen@digia.com>2012-08-17 14:56:25 +0300
commitefd4a5fe59720d617ceb8ea162d99445caa502eb (patch)
tree58fe7c40ef61df3e6ec0e574cc6817dade47cf92 /src/barchart/vertical/bar
parente68ebe3dc28d8d5dbab58708109fe8636bf98133 (diff)
population pyramid example. Added grouping option to barseries to give some control over layout
Diffstat (limited to 'src/barchart/vertical/bar')
-rw-r--r--src/barchart/vertical/bar/barchartitem.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/barchart/vertical/bar/barchartitem.cpp b/src/barchart/vertical/bar/barchartitem.cpp
index 9625c032..579fb441 100644
--- a/src/barchart/vertical/bar/barchartitem.cpp
+++ b/src/barchart/vertical/bar/barchartitem.cpp
@@ -48,7 +48,13 @@ QVector<QRectF> BarChartItem::calculateLayout()
qreal rangeX = m_domainMaxX - m_domainMinX;
qreal scaleY = (height / rangeY);
qreal scaleX = (width / rangeX);
- qreal barWidth = (scaleX / setCount) * m_series->d_func()->barWidth();
+ qreal barWidth;
+
+ if (m_series->d_func()->m_grouping) {
+ barWidth = (scaleX / setCount) * m_series->d_func()->barWidth();
+ } else {
+ barWidth = scaleX * m_series->d_func()->barWidth();
+ }
int itemIndex(0);
for (int category = 0; category < categoryCount; category++) {
@@ -56,9 +62,16 @@ QVector<QRectF> BarChartItem::calculateLayout()
for (int set = 0; set < setCount; set++) {
QBarSetPrivate* barSet = m_series->d_func()->barsetAt(set)->d_ptr.data();
- qreal xPos = (barSet->pos(category) - m_domainMinX) * scaleX + m_rect.left();
- xPos -= setCount*barWidth/2;
- xPos += set*barWidth;
+ qreal xPos;
+
+ if (m_series->d_func()->m_grouping) {
+ xPos = (barSet->pos(category) - m_domainMinX) * scaleX + m_rect.left();
+ xPos -= setCount*barWidth/2;
+ xPos += set*barWidth;
+ } else {
+ xPos = (barSet->pos(category) - m_domainMinX) * scaleX + m_rect.left() - barWidth/2;
+ }
+
qreal barHeight = barSet->value(category) * scaleY;
Bar* bar = m_bars.at(itemIndex);