@@ -0,0 +1,66 | |||
|
1 | /**************************************************************************** | |
|
2 | ** | |
|
3 | ** Copyright (C) 2012 Digia Plc | |
|
4 | ** All rights reserved. | |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
|
6 | ** | |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
|
8 | ** | |
|
9 | ** $QT_BEGIN_LICENSE$ | |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
|
13 | ** a written agreement between you and Digia. | |
|
14 | ** | |
|
15 | ** If you have questions regarding the use of this file, please use | |
|
16 | ** contact form at http://qt.digia.com | |
|
17 | ** $QT_END_LICENSE$ | |
|
18 | ** | |
|
19 | ****************************************************************************/ | |
|
20 | ||
|
21 | #include "abstractbaranimation_p.h" | |
|
22 | #include "barchartitem_p.h" | |
|
23 | #include <QTimer> | |
|
24 | #include <QDebug> | |
|
25 | ||
|
26 | Q_DECLARE_METATYPE(QVector<QRectF>) | |
|
27 | ||
|
28 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
|
29 | ||
|
30 | AbstractBarAnimation::AbstractBarAnimation(BarChartItem *item) | |
|
31 | :ChartAnimation(item), | |
|
32 | m_item(item) | |
|
33 | { | |
|
34 | setDuration(ChartAnimationDuration); | |
|
35 | setEasingCurve(QEasingCurve::OutQuart); | |
|
36 | } | |
|
37 | ||
|
38 | AbstractBarAnimation::~AbstractBarAnimation() | |
|
39 | { | |
|
40 | } | |
|
41 | ||
|
42 | QVariant AbstractBarAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const | |
|
43 | { | |
|
44 | Q_UNUSED(from); | |
|
45 | Q_UNUSED(to); | |
|
46 | Q_UNUSED(progress); | |
|
47 | qWarning() << "AbstractBarAnimation::interpolated called"; | |
|
48 | return to; | |
|
49 | } | |
|
50 | ||
|
51 | void AbstractBarAnimation::updateCurrentValue(const QVariant &value) | |
|
52 | { | |
|
53 | QVector<QRectF> layout = qVariantValue<QVector<QRectF> >(value); | |
|
54 | m_item->setLayout(layout); | |
|
55 | } | |
|
56 | ||
|
57 | void AbstractBarAnimation::setup(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
58 | { | |
|
59 | setKeyValueAt(0.0, qVariantFromValue(oldLayout)); | |
|
60 | setKeyValueAt(1.0, qVariantFromValue(newLayout)); | |
|
61 | } | |
|
62 | ||
|
63 | #include "moc_abstractbaranimation_p.cpp" | |
|
64 | ||
|
65 | QTCOMMERCIALCHART_END_NAMESPACE | |
|
66 |
@@ -0,0 +1,59 | |||
|
1 | /**************************************************************************** | |
|
2 | ** | |
|
3 | ** Copyright (C) 2012 Digia Plc | |
|
4 | ** All rights reserved. | |
|
5 | ** For any questions to Digia, please use contact form at http://qt.digia.com | |
|
6 | ** | |
|
7 | ** This file is part of the Qt Commercial Charts Add-on. | |
|
8 | ** | |
|
9 | ** $QT_BEGIN_LICENSE$ | |
|
10 | ** Licensees holding valid Qt Commercial licenses may use this file in | |
|
11 | ** accordance with the Qt Commercial License Agreement provided with the | |
|
12 | ** Software or, alternatively, in accordance with the terms contained in | |
|
13 | ** a written agreement between you and Digia. | |
|
14 | ** | |
|
15 | ** If you have questions regarding the use of this file, please use | |
|
16 | ** contact form at http://qt.digia.com | |
|
17 | ** $QT_END_LICENSE$ | |
|
18 | ** | |
|
19 | ****************************************************************************/ | |
|
20 | ||
|
21 | // W A R N I N G | |
|
22 | // ------------- | |
|
23 | // | |
|
24 | // This file is not part of the QtCommercial Chart API. It exists purely as an | |
|
25 | // implementation detail. This header file may change from version to | |
|
26 | // version without notice, or even be removed. | |
|
27 | // | |
|
28 | // We mean it. | |
|
29 | ||
|
30 | #ifndef ABSTRACTBARANIMATION_P_H | |
|
31 | #define ABSTRACTBARANIMATION_P_H | |
|
32 | ||
|
33 | #include "chartanimation_p.h" | |
|
34 | ||
|
35 | QTCOMMERCIALCHART_BEGIN_NAMESPACE | |
|
36 | ||
|
37 | class BarChartItem; | |
|
38 | ||
|
39 | class AbstractBarAnimation : public ChartAnimation | |
|
40 | { | |
|
41 | Q_OBJECT | |
|
42 | ||
|
43 | public: | |
|
44 | AbstractBarAnimation(BarChartItem *item); | |
|
45 | ~AbstractBarAnimation(); | |
|
46 | ||
|
47 | public: // from QVariantAnimation | |
|
48 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; | |
|
49 | virtual void updateCurrentValue(const QVariant &value); | |
|
50 | ||
|
51 | void setup(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
52 | ||
|
53 | protected: | |
|
54 | BarChartItem *m_item; | |
|
55 | }; | |
|
56 | ||
|
57 | QTCOMMERCIALCHART_END_NAMESPACE | |
|
58 | ||
|
59 | #endif // ABSTRACTBARANIMATION_P_H |
@@ -26,6 +26,7 | |||
|
26 | 26 | #include <QAbstractBarSeries> |
|
27 | 27 | #include <QPercentBarSeries> |
|
28 | 28 | #include <QStackedBarSeries> |
|
29 | #include <QBarSeries> | |
|
29 | 30 | #include <QBarSet> |
|
30 | 31 | #include <QLineSeries> |
|
31 | 32 | #include <QSplineSeries> |
@@ -10,8 +10,8 SOURCES += \ | |||
|
10 | 10 | $$PWD/splineanimation.cpp \ |
|
11 | 11 | $$PWD/baranimation.cpp \ |
|
12 | 12 | $$PWD/stackedbaranimation.cpp \ |
|
13 | $$PWD/percentbaranimation.cpp | |
|
14 | ||
|
13 | $$PWD/percentbaranimation.cpp \ | |
|
14 | $$PWD/abstractbaranimation.cpp | |
|
15 | 15 | |
|
16 | 16 | |
|
17 | 17 | PRIVATE_HEADERS += \ |
@@ -24,4 +24,5 PRIVATE_HEADERS += \ | |||
|
24 | 24 | $$PWD/splineanimation_p.h \ |
|
25 | 25 | $$PWD/baranimation_p.h \ |
|
26 | 26 | $$PWD/stackedbaranimation_p.h \ |
|
27 | $$PWD/percentbaranimation_p.h | |
|
27 | $$PWD/percentbaranimation_p.h \ | |
|
28 | $$PWD/abstractbaranimation_p.h |
@@ -27,9 +27,9 Q_DECLARE_METATYPE(QVector<QRectF>) | |||
|
27 | 27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | 28 | |
|
29 | 29 | BarAnimation::BarAnimation(BarChartItem *item) |
|
30 |
: |
|
|
31 | m_item(item) | |
|
30 | :AbstractBarAnimation(item) | |
|
32 | 31 | { |
|
32 | setDuration(ChartAnimationDuration); | |
|
33 | 33 | setEasingCurve(QEasingCurve::OutQuart); |
|
34 | 34 | } |
|
35 | 35 | |
@@ -57,20 +57,6 QVariant BarAnimation::interpolated(const QVariant &from, const QVariant &to, qr | |||
|
57 | 57 | return qVariantFromValue(result); |
|
58 | 58 | } |
|
59 | 59 | |
|
60 | void BarAnimation::updateCurrentValue(const QVariant &value) | |
|
61 | { | |
|
62 | QVector<QRectF> layout = qVariantValue<QVector<QRectF> >(value); | |
|
63 | m_item->setLayout(layout); | |
|
64 | } | |
|
65 | ||
|
66 | void BarAnimation::updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
67 | { | |
|
68 | setDuration(ChartAnimationDuration); | |
|
69 | setKeyValueAt(0.0, qVariantFromValue(oldLayout)); | |
|
70 | setKeyValueAt(1.0, qVariantFromValue(newLayout)); | |
|
71 | QTimer::singleShot(0, this, SLOT(start())); | |
|
72 | } | |
|
73 | ||
|
74 | 60 | #include "moc_baranimation_p.cpp" |
|
75 | 61 | |
|
76 | 62 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -30,16 +30,15 | |||
|
30 | 30 | #ifndef BARANIMATION_P_H |
|
31 | 31 | #define BARANIMATION_P_H |
|
32 | 32 | |
|
33 | #include "abstractbaranimation_p.h" | |
|
33 | 34 | #include "chartanimation_p.h" |
|
34 | 35 | #include "barchartitem_p.h" |
|
35 | 36 | |
|
36 | 37 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
37 | 38 | |
|
38 | 39 | class BarChartItem; |
|
39 | class QBarSet; | |
|
40 | class BarSetAnimation; | |
|
41 | 40 | |
|
42 |
class BarAnimation : public |
|
|
41 | class BarAnimation : public AbstractBarAnimation | |
|
43 | 42 | { |
|
44 | 43 | Q_OBJECT |
|
45 | 44 | |
@@ -49,12 +48,6 public: | |||
|
49 | 48 | |
|
50 | 49 | public: // from QVariantAnimation |
|
51 | 50 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; |
|
52 | virtual void updateCurrentValue(const QVariant &value); | |
|
53 | ||
|
54 | void updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
55 | ||
|
56 | private: | |
|
57 | BarChartItem *m_item; | |
|
58 | 51 | }; |
|
59 | 52 | |
|
60 | 53 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -61,43 +61,6 void ChartAnimator::addAnimation(PieChartItem *item) | |||
|
61 | 61 | item->setAnimator(this); |
|
62 | 62 | } |
|
63 | 63 | |
|
64 | void ChartAnimator::addAnimation(BarChartItem *item) | |
|
65 | { | |
|
66 | // This can handle also GroupedBarChartItem because bars are side by side | |
|
67 | ChartAnimation *animation = m_animations.value(item); | |
|
68 | ||
|
69 | if (!animation) { | |
|
70 | animation = new BarAnimation(item); | |
|
71 | m_animations.insert(item, animation); | |
|
72 | } | |
|
73 | ||
|
74 | item->setAnimator(this); | |
|
75 | } | |
|
76 | ||
|
77 | void ChartAnimator::addAnimation(StackedBarChartItem *item) | |
|
78 | { | |
|
79 | ChartAnimation *animation = m_animations.value(item); | |
|
80 | ||
|
81 | if (!animation) { | |
|
82 | animation = new StackedBarAnimation(item); | |
|
83 | m_animations.insert(item, animation); | |
|
84 | } | |
|
85 | ||
|
86 | item->setAnimator(this); | |
|
87 | } | |
|
88 | ||
|
89 | void ChartAnimator::addAnimation(PercentBarChartItem *item) | |
|
90 | { | |
|
91 | ChartAnimation *animation = m_animations.value(item); | |
|
92 | ||
|
93 | if (!animation) { | |
|
94 | animation = new PercentBarAnimation(item); | |
|
95 | m_animations.insert(item, animation); | |
|
96 | } | |
|
97 | ||
|
98 | item->setAnimator(this); | |
|
99 | } | |
|
100 | ||
|
101 | 64 | void ChartAnimator::removeAnimation(Chart *item) |
|
102 | 65 | { |
|
103 | 66 | item->setAnimator(0); |
@@ -125,44 +88,6 void ChartAnimator::updateAnimation(PieChartItem *item, PieSliceItem *sliceItem, | |||
|
125 | 88 | animation->updateValue(sliceItem, sliceData); |
|
126 | 89 | } |
|
127 | 90 | |
|
128 | void ChartAnimator::updateLayout(BarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
129 | { | |
|
130 | BarAnimation *animation = static_cast<BarAnimation *>(m_animations.value(item)); | |
|
131 | if (animation) { | |
|
132 | m_animations.remove(item); | |
|
133 | animation->deleteLater(); | |
|
134 | animation = 0; | |
|
135 | addAnimation(item); | |
|
136 | } | |
|
137 | animation = static_cast<BarAnimation *>(m_animations.value(item)); | |
|
138 | animation->updateLayout(oldLayout,newLayout); | |
|
139 | } | |
|
140 | ||
|
141 | void ChartAnimator::updateLayout(StackedBarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
142 | { | |
|
143 | StackedBarAnimation *animation = static_cast<StackedBarAnimation *>(m_animations.value(item)); | |
|
144 | if (animation) { | |
|
145 | m_animations.remove(item); | |
|
146 | animation->deleteLater(); | |
|
147 | animation = 0; | |
|
148 | addAnimation(item); | |
|
149 | } | |
|
150 | animation = static_cast<StackedBarAnimation *>(m_animations.value(item)); | |
|
151 | animation->updateLayout(oldLayout,newLayout); | |
|
152 | } | |
|
153 | ||
|
154 | void ChartAnimator::updateLayout(PercentBarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
155 | { | |
|
156 | PercentBarAnimation *animation = static_cast<PercentBarAnimation *>(m_animations.value(item)); | |
|
157 | if (animation) { | |
|
158 | m_animations.remove(item); | |
|
159 | animation->deleteLater(); | |
|
160 | animation = 0; | |
|
161 | addAnimation(item); | |
|
162 | } | |
|
163 | animation = static_cast<PercentBarAnimation *>(m_animations.value(item)); | |
|
164 | animation->updateLayout(oldLayout,newLayout); | |
|
165 | } | |
|
166 | 91 | #include "moc_chartanimator_p.cpp" |
|
167 | 92 | |
|
168 | 93 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -55,19 +55,12 public: | |||
|
55 | 55 | virtual ~ChartAnimator(); |
|
56 | 56 | |
|
57 | 57 | void addAnimation(PieChartItem *item); |
|
58 | void addAnimation(BarChartItem *item); | |
|
59 | void addAnimation(StackedBarChartItem *item); | |
|
60 | void addAnimation(PercentBarChartItem *item); | |
|
61 | 58 | void removeAnimation(Chart *item); |
|
62 | 59 | |
|
63 | 60 | void addAnimation(PieChartItem *item, PieSliceItem *sliceItem, const PieSliceData &sliceData, bool isEmpty); |
|
64 | 61 | void removeAnimation(PieChartItem *item, PieSliceItem *sliceItem); |
|
65 | 62 | void updateAnimation(PieChartItem *item, PieSliceItem *sliceItem, const PieSliceData &sliceData); |
|
66 | 63 | |
|
67 | void updateLayout(BarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
68 | void updateLayout(StackedBarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
69 | void updateLayout(PercentBarChartItem *item, const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
70 | ||
|
71 | 64 | private: |
|
72 | 65 | QMap<Chart *, ChartAnimation *> m_animations; |
|
73 | 66 | }; |
@@ -26,10 +26,10 Q_DECLARE_METATYPE(QVector<QRectF>) | |||
|
26 | 26 | |
|
27 | 27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | 28 | |
|
29 | PercentBarAnimation::PercentBarAnimation(BarChartItem *item) | |
|
30 |
: |
|
|
31 | m_item(item) | |
|
29 | PercentBarAnimation::PercentBarAnimation(PercentBarChartItem *item) | |
|
30 | :AbstractBarAnimation(item) | |
|
32 | 31 | { |
|
32 | setDuration(ChartAnimationDuration); | |
|
33 | 33 | setEasingCurve(QEasingCurve::OutQuart); |
|
34 | 34 | } |
|
35 | 35 | |
@@ -59,20 +59,6 QVariant PercentBarAnimation::interpolated(const QVariant &from, const QVariant | |||
|
59 | 59 | return qVariantFromValue(result); |
|
60 | 60 | } |
|
61 | 61 | |
|
62 | void PercentBarAnimation::updateCurrentValue(const QVariant &value) | |
|
63 | { | |
|
64 | QVector<QRectF> layout = qVariantValue<QVector<QRectF> >(value); | |
|
65 | m_item->setLayout(layout); | |
|
66 | } | |
|
67 | ||
|
68 | void PercentBarAnimation::updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
69 | { | |
|
70 | setDuration(ChartAnimationDuration); | |
|
71 | setKeyValueAt(0.0, qVariantFromValue(oldLayout)); | |
|
72 | setKeyValueAt(1.0, qVariantFromValue(newLayout)); | |
|
73 | QTimer::singleShot(0, this, SLOT(start())); | |
|
74 | } | |
|
75 | ||
|
76 | 62 | #include "moc_percentbaranimation_p.cpp" |
|
77 | 63 | |
|
78 | 64 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -11,6 +11,7 | |||
|
11 | 11 | #define PERCENTBARANIMATION_P_H |
|
12 | 12 | |
|
13 | 13 | #include "chartanimation_p.h" |
|
14 | #include "abstractbaranimation_p.h" | |
|
14 | 15 | #include "barchartitem_p.h" |
|
15 | 16 | |
|
16 | 17 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
@@ -19,23 +20,14 class PercentBarChartItem; | |||
|
19 | 20 | class QBarSet; |
|
20 | 21 | class BarSetAnimation; |
|
21 | 22 | |
|
22 |
class PercentBarAnimation : public |
|
|
23 | class PercentBarAnimation : public AbstractBarAnimation | |
|
23 | 24 | { |
|
24 | 25 | Q_OBJECT |
|
25 | 26 | public: |
|
26 | PercentBarAnimation(BarChartItem *item); | |
|
27 | PercentBarAnimation(PercentBarChartItem *item); | |
|
27 | 28 | ~PercentBarAnimation(); |
|
28 | 29 | |
|
29 | public: | |
|
30 | 30 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; |
|
31 | virtual void updateCurrentValue(const QVariant &value); | |
|
32 | ||
|
33 | void updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
34 | ||
|
35 | private: | |
|
36 | BarChartItem *m_item; | |
|
37 | QHash<QBarSet *, BarSetAnimation *> m_animations; | |
|
38 | ||
|
39 | 31 | }; |
|
40 | 32 | |
|
41 | 33 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -26,9 +26,8 Q_DECLARE_METATYPE(QVector<QRectF>) | |||
|
26 | 26 | |
|
27 | 27 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
28 | 28 | |
|
29 | StackedBarAnimation::StackedBarAnimation(BarChartItem *item) | |
|
30 |
: |
|
|
31 | m_item(item) | |
|
29 | StackedBarAnimation::StackedBarAnimation(StackedBarChartItem *item) | |
|
30 | :AbstractBarAnimation(item) | |
|
32 | 31 | { |
|
33 | 32 | setEasingCurve(QEasingCurve::OutQuart); |
|
34 | 33 | } |
@@ -59,20 +58,6 QVariant StackedBarAnimation::interpolated(const QVariant &from, const QVariant | |||
|
59 | 58 | return qVariantFromValue(result); |
|
60 | 59 | } |
|
61 | 60 | |
|
62 | void StackedBarAnimation::updateCurrentValue(const QVariant &value) | |
|
63 | { | |
|
64 | QVector<QRectF> layout = qVariantValue<QVector<QRectF> >(value); | |
|
65 | m_item->setLayout(layout); | |
|
66 | } | |
|
67 | ||
|
68 | ||
|
69 | void StackedBarAnimation::updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout) | |
|
70 | { | |
|
71 | setDuration(ChartAnimationDuration); | |
|
72 | setKeyValueAt(0.0, qVariantFromValue(oldLayout)); | |
|
73 | setKeyValueAt(1.0, qVariantFromValue(newLayout)); | |
|
74 | QTimer::singleShot(0, this, SLOT(start())); | |
|
75 | } | |
|
76 | 61 | #include "moc_stackedbaranimation_p.cpp" |
|
77 | 62 | |
|
78 | 63 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -12,6 +12,7 | |||
|
12 | 12 | |
|
13 | 13 | #include "chartanimation_p.h" |
|
14 | 14 | #include "barchartitem_p.h" |
|
15 | #include "abstractbaranimation_p.h" | |
|
15 | 16 | |
|
16 | 17 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
17 | 18 | |
@@ -19,23 +20,14 class StackedBarChartItem; | |||
|
19 | 20 | class QBarSet; |
|
20 | 21 | class BarSetAnimation; |
|
21 | 22 | |
|
22 |
class StackedBarAnimation : public |
|
|
23 | class StackedBarAnimation : public AbstractBarAnimation | |
|
23 | 24 | { |
|
24 | 25 | Q_OBJECT |
|
25 | 26 | public: |
|
26 | StackedBarAnimation(BarChartItem *item); | |
|
27 | StackedBarAnimation(StackedBarChartItem *item); | |
|
27 | 28 | ~StackedBarAnimation(); |
|
28 | 29 | |
|
29 | public: | |
|
30 | 30 | virtual QVariant interpolated(const QVariant &from, const QVariant &to, qreal progress) const; |
|
31 | virtual void updateCurrentValue(const QVariant &value); | |
|
32 | ||
|
33 | void updateLayout(const QVector<QRectF> &oldLayout, const QVector<QRectF> &newLayout); | |
|
34 | ||
|
35 | private: | |
|
36 | BarChartItem *m_item; | |
|
37 | QHash<QBarSet *, BarSetAnimation *> m_animations; | |
|
38 | ||
|
39 | 31 | }; |
|
40 | 32 | |
|
41 | 33 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -27,6 +27,7 | |||
|
27 | 27 | #include "qchart.h" |
|
28 | 28 | #include "chartpresenter_p.h" |
|
29 | 29 | #include "chartanimator_p.h" |
|
30 | #include "abstractbaranimation_p.h" | |
|
30 | 31 | #include "chartdataset_p.h" |
|
31 | 32 | #include <QPainter> |
|
32 | 33 | |
@@ -34,6 +35,7 QTCOMMERCIALCHART_BEGIN_NAMESPACE | |||
|
34 | 35 | |
|
35 | 36 | BarChartItem::BarChartItem(QAbstractBarSeries *series, ChartPresenter *presenter) : |
|
36 | 37 | ChartItem(presenter), |
|
38 | m_animation(0), | |
|
37 | 39 | m_series(series) |
|
38 | 40 | { |
|
39 | 41 | setFlag(ItemClipsChildrenToShape); |
@@ -121,14 +123,21 QVector<QRectF> BarChartItem::calculateLayout() | |||
|
121 | 123 | |
|
122 | 124 | void BarChartItem::applyLayout(const QVector<QRectF> &layout) |
|
123 | 125 | { |
|
124 |
if (animat |
|
|
125 |
animat |
|
|
126 | if (m_animation) { | |
|
127 | m_animation->setup(m_layout,layout); | |
|
128 | presenter()->startAnimation(m_animation); | |
|
129 | ||
|
126 | 130 | } else { |
|
127 | 131 | setLayout(layout); |
|
128 | 132 | update(); |
|
129 | 133 | } |
|
130 | 134 | } |
|
131 | 135 | |
|
136 | void BarChartItem::setAnimation(AbstractBarAnimation *animation) | |
|
137 | { | |
|
138 | m_animation = animation; | |
|
139 | } | |
|
140 | ||
|
132 | 141 | void BarChartItem::setLayout(const QVector<QRectF> &layout) |
|
133 | 142 | { |
|
134 | 143 | if (layout.count() != m_bars.count()) |
@@ -41,6 +41,7 QTCOMMERCIALCHART_BEGIN_NAMESPACE | |||
|
41 | 41 | class Bar; |
|
42 | 42 | class QAxisCategories; |
|
43 | 43 | class QChart; |
|
44 | class AbstractBarAnimation; | |
|
44 | 45 | |
|
45 | 46 | class BarChartItem : public ChartItem |
|
46 | 47 | { |
@@ -55,9 +56,11 public: | |||
|
55 | 56 | |
|
56 | 57 | virtual QVector<QRectF> calculateLayout(); |
|
57 | 58 | virtual void applyLayout(const QVector<QRectF> &layout); |
|
59 | virtual void setAnimation(AbstractBarAnimation* animation); | |
|
58 | 60 | void setLayout(const QVector<QRectF> &layout); |
|
59 | 61 | void updateLayout(const QVector<QRectF> &layout); |
|
60 | 62 | |
|
63 | ||
|
61 | 64 | QRectF geometry() const { return m_rect;} |
|
62 | 65 | |
|
63 | 66 | public Q_SLOTS: |
@@ -78,6 +81,8 protected: | |||
|
78 | 81 | QRectF m_rect; |
|
79 | 82 | QVector<QRectF> m_layout; |
|
80 | 83 | |
|
84 | AbstractBarAnimation *m_animation; | |
|
85 | ||
|
81 | 86 | // Not owned. |
|
82 | 87 | QAbstractBarSeries *m_series; |
|
83 | 88 | QList<Bar *> m_bars; |
@@ -97,15 +97,6 QVector<QRectF> PercentBarChartItem::calculateLayout() | |||
|
97 | 97 | return layout; |
|
98 | 98 | } |
|
99 | 99 | |
|
100 | void PercentBarChartItem::applyLayout(const QVector<QRectF> &layout) | |
|
101 | { | |
|
102 | if (animator()) { | |
|
103 | animator()->updateLayout(this, m_layout, layout); | |
|
104 | } else { | |
|
105 | setLayout(layout); | |
|
106 | update(); | |
|
107 | } | |
|
108 | } | |
|
109 | 100 | #include "moc_percentbarchartitem_p.cpp" |
|
110 | 101 | |
|
111 | 102 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -46,7 +46,6 public: | |||
|
46 | 46 | |
|
47 | 47 | private: |
|
48 | 48 | virtual QVector<QRectF> calculateLayout(); |
|
49 | virtual void applyLayout(const QVector<QRectF> &layout); | |
|
50 | 49 | }; |
|
51 | 50 | |
|
52 | 51 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -578,15 +578,9 void QAbstractBarSeriesPrivate::scaleDomain(Domain& domain) | |||
|
578 | 578 | |
|
579 | 579 | Chart* QAbstractBarSeriesPrivate::createGraphics(ChartPresenter* presenter) |
|
580 | 580 | { |
|
581 | Q_Q(QAbstractBarSeries); | |
|
582 | ||
|
583 | BarChartItem* bar = new BarChartItem(q,presenter); | |
|
584 | if(presenter->animationOptions().testFlag(QChart::SeriesAnimations)) { | |
|
585 | presenter->animator()->addAnimation(bar); | |
|
586 | } | |
|
587 | presenter->chartTheme()->decorate(q, presenter->dataSet()->seriesIndex(q)); | |
|
588 | return bar; | |
|
589 | ||
|
581 | Q_UNUSED(presenter); | |
|
582 | qWarning() << "QAbstractBarSeriesPrivate::createGraphics called"; | |
|
583 | return 0; | |
|
590 | 584 | } |
|
591 | 585 | |
|
592 | 586 | QList<LegendMarker*> QAbstractBarSeriesPrivate::createLegendMarker(QLegend* legend) |
@@ -24,6 +24,7 | |||
|
24 | 24 | #include "chartdataset_p.h" |
|
25 | 25 | #include "charttheme_p.h" |
|
26 | 26 | #include "chartanimator_p.h" |
|
27 | #include "baranimation_p.h" | |
|
27 | 28 | #include "qvaluesaxis.h" |
|
28 | 29 | |
|
29 | 30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
@@ -105,13 +106,13 Chart* QBarSeriesPrivate::createGraphics(ChartPresenter* presenter) | |||
|
105 | 106 | |
|
106 | 107 | GroupedBarChartItem* bar = new GroupedBarChartItem(q,presenter); |
|
107 | 108 | if(presenter->animationOptions().testFlag(QChart::SeriesAnimations)) { |
|
108 |
presenter->animator() |
|
|
109 | bar->setAnimator(presenter->animator()); | |
|
110 | bar->setAnimation(new BarAnimation(bar)); | |
|
109 | 111 | } |
|
110 | 112 | presenter->chartTheme()->decorate(q, presenter->dataSet()->seriesIndex(q)); |
|
111 | 113 | return bar; |
|
112 | 114 | } |
|
113 | 115 | |
|
114 | ||
|
115 | 116 | #include "moc_qbarseries.cpp" |
|
116 | 117 | |
|
117 | 118 | QTCOMMERCIALCHART_END_NAMESPACE |
@@ -25,6 +25,7 | |||
|
25 | 25 | #include "charttheme_p.h" |
|
26 | 26 | #include "chartanimator_p.h" |
|
27 | 27 | #include "qvaluesaxis.h" |
|
28 | #include "percentbaranimation_p.h" | |
|
28 | 29 | |
|
29 | 30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
30 | 31 | |
@@ -104,7 +105,8 Chart* QPercentBarSeriesPrivate::createGraphics(ChartPresenter* presenter) | |||
|
104 | 105 | |
|
105 | 106 | PercentBarChartItem* bar = new PercentBarChartItem(q,presenter); |
|
106 | 107 | if(presenter->animationOptions().testFlag(QChart::SeriesAnimations)) { |
|
107 |
presenter->animator() |
|
|
108 | bar->setAnimator(presenter->animator()); | |
|
109 | bar->setAnimation(new PercentBarAnimation(bar)); | |
|
108 | 110 | } |
|
109 | 111 | presenter->chartTheme()->decorate(q, presenter->dataSet()->seriesIndex(q)); |
|
110 | 112 | return bar; |
@@ -25,6 +25,7 | |||
|
25 | 25 | #include "charttheme_p.h" |
|
26 | 26 | #include "chartanimator_p.h" |
|
27 | 27 | #include "qvaluesaxis.h" |
|
28 | #include "stackedbaranimation_p.h" | |
|
28 | 29 | |
|
29 | 30 | QTCOMMERCIALCHART_BEGIN_NAMESPACE |
|
30 | 31 | |
@@ -106,7 +107,8 Chart* QStackedBarSeriesPrivate::createGraphics(ChartPresenter* presenter) | |||
|
106 | 107 | |
|
107 | 108 | StackedBarChartItem* bar = new StackedBarChartItem(q,presenter); |
|
108 | 109 | if(presenter->animationOptions().testFlag(QChart::SeriesAnimations)) { |
|
109 |
presenter->animator() |
|
|
110 | bar->setAnimator(presenter->animator()); | |
|
111 | bar->setAnimation(new StackedBarAnimation(bar)); | |
|
110 | 112 | } |
|
111 | 113 | presenter->chartTheme()->decorate(q, presenter->dataSet()->seriesIndex(q)); |
|
112 | 114 | return bar; |
@@ -90,16 +90,6 QVector<QRectF> StackedBarChartItem::calculateLayout() | |||
|
90 | 90 | return layout; |
|
91 | 91 | } |
|
92 | 92 | |
|
93 | void StackedBarChartItem::applyLayout(const QVector<QRectF> &layout) | |
|
94 | { | |
|
95 | if (animator()) { | |
|
96 | animator()->updateLayout(this, m_layout, layout); | |
|
97 | } else { | |
|
98 | setLayout(layout); | |
|
99 | update(); | |
|
100 | } | |
|
101 | } | |
|
102 | ||
|
103 | 93 | #include "moc_stackedbarchartitem_p.cpp" |
|
104 | 94 | |
|
105 | 95 | QTCOMMERCIALCHART_END_NAMESPACE |
General Comments 0
You need to be logged in to leave comments.
Login now