summaryrefslogtreecommitdiffstats
path: root/src/barchart/vertical/bar
diff options
context:
space:
mode:
authorMarek Rosa <marek.rosa@digia.com>2012-11-29 12:35:00 +0200
committerMarek Rosa <marek.rosa@digia.com>2012-11-29 12:37:52 +0200
commit74962bdcee07ccc1cca7f07aaee141a540270827 (patch)
treef53ff75a2585659943f1fd718d07afbaa2bf8654 /src/barchart/vertical/bar
parent5642c6ee36d370de5db2a8d880639ab98b40170a (diff)
Bar animations refactored
Diffstat (limited to 'src/barchart/vertical/bar')
-rw-r--r--src/barchart/vertical/bar/barchartitem.cpp30
-rw-r--r--src/barchart/vertical/bar/barchartitem_p.h1
-rw-r--r--src/barchart/vertical/bar/qbarseries.cpp13
-rw-r--r--src/barchart/vertical/bar/qbarseries_p.h1
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: