diff options
author | sauimone <samu.uimonen@digia.com> | 2012-08-17 14:55:56 +0300 |
---|---|---|
committer | sauimone <samu.uimonen@digia.com> | 2012-08-17 14:56:25 +0300 |
commit | efd4a5fe59720d617ceb8ea162d99445caa502eb (patch) | |
tree | 58fe7c40ef61df3e6ec0e574cc6817dade47cf92 /src/barchart/vertical/bar | |
parent | e68ebe3dc28d8d5dbab58708109fe8636bf98133 (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.cpp | 21 |
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); |