diff options
author | Marek Rosa <marek.rosa@digia.com> | 2012-11-29 12:35:00 +0200 |
---|---|---|
committer | Marek Rosa <marek.rosa@digia.com> | 2012-11-29 12:37:52 +0200 |
commit | 74962bdcee07ccc1cca7f07aaee141a540270827 (patch) | |
tree | f53ff75a2585659943f1fd718d07afbaa2bf8654 /src/barchart/vertical/bar | |
parent | 5642c6ee36d370de5db2a8d880639ab98b40170a (diff) |
Bar animations refactored
Diffstat (limited to 'src/barchart/vertical/bar')
-rw-r--r-- | src/barchart/vertical/bar/barchartitem.cpp | 30 | ||||
-rw-r--r-- | src/barchart/vertical/bar/barchartitem_p.h | 1 | ||||
-rw-r--r-- | src/barchart/vertical/bar/qbarseries.cpp | 13 | ||||
-rw-r--r-- | src/barchart/vertical/bar/qbarseries_p.h | 1 |
4 files changed, 30 insertions, 15 deletions
diff --git a/src/barchart/vertical/bar/barchartitem.cpp b/src/barchart/vertical/bar/barchartitem.cpp index 0df2e79d..d58ca357 100644 --- a/src/barchart/vertical/bar/barchartitem.cpp +++ b/src/barchart/vertical/bar/barchartitem.cpp @@ -31,6 +31,34 @@ BarChartItem::BarChartItem(QAbstractBarSeries *series, QGraphicsItem* item) : { } +void BarChartItem::initializeLayout() +{ + qreal categoryCount = m_series->d_func()->categoryCount(); + qreal setCount = m_series->count(); + qreal barWidth = m_series->d_func()->barWidth(); + + m_layout.clear(); + for(int category = 0; category < categoryCount; category++) { + for (int set = 0; set < setCount; set++) { + QRectF rect; + QPointF topLeft; + QPointF bottomRight; + + if (domain()->type() == AbstractDomain::XLogYDomain || domain()->type() == AbstractDomain::LogXLogYDomain) { + topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2 + set/setCount * barWidth, domain()->minY())); + bottomRight = domain()->calculateGeometryPoint(QPointF(category + barWidth / 2 + (set + 1)/setCount * barWidth, domain()->minY())); + } else { + topLeft = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2 + set/setCount * barWidth, 0)); + bottomRight = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2 + (set + 1)/setCount * barWidth, 0)); + } + + rect.setTopLeft(topLeft); + rect.setBottomRight(bottomRight); + m_layout.append(rect.normalized()); + } + } +} + QVector<QRectF> BarChartItem::calculateLayout() { QVector<QRectF> layout; @@ -52,7 +80,7 @@ QVector<QRectF> BarChartItem::calculateLayout() bottomRight = domain()->calculateGeometryPoint(QPointF(category - barWidth / 2 + (set + 1)/(setCount) * barWidth, 0)); rect.setTopLeft(topLeft); rect.setBottomRight(bottomRight); - layout.append(rect); + layout.append(rect.normalized()); } } return layout; diff --git a/src/barchart/vertical/bar/barchartitem_p.h b/src/barchart/vertical/bar/barchartitem_p.h index 9eb3988e..3a3c74a5 100644 --- a/src/barchart/vertical/bar/barchartitem_p.h +++ b/src/barchart/vertical/bar/barchartitem_p.h @@ -45,6 +45,7 @@ public: private: virtual QVector<QRectF> calculateLayout(); + void initializeLayout(); }; QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/barchart/vertical/bar/qbarseries.cpp b/src/barchart/vertical/bar/qbarseries.cpp index 93ad662f..819969bd 100644 --- a/src/barchart/vertical/bar/qbarseries.cpp +++ b/src/barchart/vertical/bar/qbarseries.cpp @@ -23,7 +23,6 @@ #include "barchartitem_p.h" #include "chartdataset_p.h" #include "charttheme_p.h" -#include "baranimation_p.h" #include "qvalueaxis.h" #include "qbarcategoryaxis.h" @@ -114,18 +113,6 @@ void QBarSeriesPrivate::initializeGraphics(QGraphicsItem* parent) QAbstractSeriesPrivate::initializeGraphics(parent); } -void QBarSeriesPrivate::initializeAnimations(QtCommercialChart::QChart::AnimationOptions options) -{ - BarChartItem *bar = static_cast<BarChartItem *>(m_item.data()); - Q_ASSERT(bar); - if (options.testFlag(QChart::SeriesAnimations)) { - bar->setAnimation(new BarAnimation(bar)); - }else{ - bar->setAnimation(0); - } - QAbstractSeriesPrivate::initializeAnimations(options); -} - #include "moc_qbarseries.cpp" QTCOMMERCIALCHART_END_NAMESPACE diff --git a/src/barchart/vertical/bar/qbarseries_p.h b/src/barchart/vertical/bar/qbarseries_p.h index bc30974c..3f1fec13 100644 --- a/src/barchart/vertical/bar/qbarseries_p.h +++ b/src/barchart/vertical/bar/qbarseries_p.h @@ -41,7 +41,6 @@ class QBarSeriesPrivate: public QAbstractBarSeriesPrivate public: QBarSeriesPrivate(QBarSeries *q); void initializeGraphics(QGraphicsItem* parent); - void initializeAnimations(QtCommercialChart::QChart::AnimationOptions options); void initializeDomain(); private: |