@@ -25,13 +25,13 Q_DECLARE_METATYPE(QVector<qreal>) | |||
|
25 | 25 | QT_CHARTS_BEGIN_NAMESPACE |
|
26 | 26 | |
|
27 | 27 | |
|
28 | AxisAnimation::AxisAnimation(ChartAxisElement *axis) | |
|
28 | AxisAnimation::AxisAnimation(ChartAxisElement *axis, int duration, QEasingCurve &curve) | |
|
29 | 29 | : ChartAnimation(axis), |
|
30 | 30 | m_axis(axis), |
|
31 | 31 | m_type(DefaultAnimation) |
|
32 | 32 | { |
|
33 |
setDuration( |
|
|
34 |
setEasingCurve( |
|
|
33 | setDuration(duration); | |
|
34 | setEasingCurve(curve); | |
|
35 | 35 | } |
|
36 | 36 | |
|
37 | 37 | AxisAnimation::~AxisAnimation() |
@@ -39,7 +39,7 class AxisAnimation: public ChartAnimation | |||
|
39 | 39 | { |
|
40 | 40 | public: |
|
41 | 41 | enum Animation { DefaultAnimation, ZoomOutAnimation, ZoomInAnimation, MoveForwardAnimation, MoveBackwordAnimation}; |
|
42 | AxisAnimation(ChartAxisElement *axis); | |
|
42 | AxisAnimation(ChartAxisElement *axis, int duration, QEasingCurve &curve); | |
|
43 | 43 | ~AxisAnimation(); |
|
44 | 44 | void setAnimationType(Animation type); |
|
45 | 45 | void setAnimationPoint(const QPointF &point); |
@@ -23,12 +23,12 Q_DECLARE_METATYPE(QVector<QRectF>) | |||
|
23 | 23 | |
|
24 | 24 | QT_CHARTS_BEGIN_NAMESPACE |
|
25 | 25 | |
|
26 | BarAnimation::BarAnimation(AbstractBarChartItem *item) | |
|
26 | BarAnimation::BarAnimation(AbstractBarChartItem *item, int duration, QEasingCurve &curve) | |
|
27 | 27 | : ChartAnimation(item), |
|
28 | 28 | m_item(item) |
|
29 | 29 | { |
|
30 |
setDuration( |
|
|
31 |
setEasingCurve( |
|
|
30 | setDuration(duration); | |
|
31 | setEasingCurve(curve); | |
|
32 | 32 | } |
|
33 | 33 | |
|
34 | 34 | BarAnimation::~BarAnimation() |
@@ -39,7 +39,7 class BarAnimation : public ChartAnimation | |||
|
39 | 39 | Q_OBJECT |
|
40 | 40 | |
|
41 | 41 | public: |
|
42 | BarAnimation(AbstractBarChartItem *item); | |
|
42 | BarAnimation(AbstractBarChartItem *item, int duration, QEasingCurve &curve); | |
|
43 | 43 | ~BarAnimation(); |
|
44 | 44 | |
|
45 | 45 | public: // from QVariantAnimation |
@@ -23,9 +23,11 | |||
|
23 | 23 | |
|
24 | 24 | QT_CHARTS_BEGIN_NAMESPACE |
|
25 | 25 | |
|
26 | BoxPlotAnimation::BoxPlotAnimation(BoxPlotChartItem *item) | |
|
26 | BoxPlotAnimation::BoxPlotAnimation(BoxPlotChartItem *item, int duration, QEasingCurve &curve) | |
|
27 | 27 | : QObject(item), |
|
28 | m_item(item) | |
|
28 | m_item(item), | |
|
29 | m_animationDuration(duration), | |
|
30 | m_animationCurve(curve) | |
|
29 | 31 | { |
|
30 | 32 | } |
|
31 | 33 | |
@@ -37,7 +39,7 void BoxPlotAnimation::addBox(BoxWhiskers *box) | |||
|
37 | 39 | { |
|
38 | 40 | BoxWhiskersAnimation *animation = m_animations.value(box); |
|
39 | 41 | if (!animation) { |
|
40 | animation = new BoxWhiskersAnimation(box, this); | |
|
42 | animation = new BoxWhiskersAnimation(box, this, m_animationDuration, m_animationCurve); | |
|
41 | 43 | m_animations.insert(box, animation); |
|
42 | 44 | BoxWhiskersData start; |
|
43 | 45 | start.m_lowerExtreme = box->m_data.m_median; |
@@ -46,6 +48,7 void BoxPlotAnimation::addBox(BoxWhiskers *box) | |||
|
46 | 48 | start.m_upperQuartile = box->m_data.m_median; |
|
47 | 49 | start.m_upperExtreme = box->m_data.m_median; |
|
48 | 50 | animation->setup(start, box->m_data); |
|
51 | ||
|
49 | 52 | } else { |
|
50 | 53 | animation->stop(); |
|
51 | 54 | animation->setEndData(box->m_data); |
@@ -41,7 +41,7 class BoxPlotAnimation : public QObject | |||
|
41 | 41 | { |
|
42 | 42 | Q_OBJECT |
|
43 | 43 | public: |
|
44 | BoxPlotAnimation(BoxPlotChartItem *item); | |
|
44 | BoxPlotAnimation(BoxPlotChartItem *item, int duration, QEasingCurve &curve); | |
|
45 | 45 | ~BoxPlotAnimation(); |
|
46 | 46 | |
|
47 | 47 | void addBox(BoxWhiskers *box); |
@@ -55,6 +55,8 public: | |||
|
55 | 55 | protected: |
|
56 | 56 | BoxPlotChartItem *m_item; |
|
57 | 57 | QHash<BoxWhiskers *, BoxWhiskersAnimation *> m_animations; |
|
58 | int m_animationDuration; | |
|
59 | QEasingCurve m_animationCurve; | |
|
58 | 60 | }; |
|
59 | 61 | |
|
60 | 62 | QT_CHARTS_END_NAMESPACE |
@@ -27,14 +27,15 Q_DECLARE_METATYPE(qreal) | |||
|
27 | 27 | |
|
28 | 28 | QT_CHARTS_BEGIN_NAMESPACE |
|
29 | 29 | |
|
30 |
BoxWhiskersAnimation::BoxWhiskersAnimation(BoxWhiskers *box, BoxPlotAnimation *boxPlotAnimation |
|
|
30 | BoxWhiskersAnimation::BoxWhiskersAnimation(BoxWhiskers *box, BoxPlotAnimation *boxPlotAnimation, | |
|
31 | int duration, QEasingCurve &curve) | |
|
31 | 32 | : ChartAnimation(box), |
|
32 | 33 | m_box(box), |
|
33 | 34 | m_changeAnimation(false), |
|
34 | 35 | m_boxPlotAnimation(boxPlotAnimation) |
|
35 | 36 | { |
|
36 |
setDuration( |
|
|
37 |
setEasingCurve( |
|
|
37 | setDuration(duration); | |
|
38 | setEasingCurve(curve); | |
|
38 | 39 | } |
|
39 | 40 | |
|
40 | 41 | BoxWhiskersAnimation::~BoxWhiskersAnimation() |
@@ -42,7 +42,8 class BoxWhiskersAnimation : public ChartAnimation | |||
|
42 | 42 | Q_OBJECT |
|
43 | 43 | |
|
44 | 44 | public: |
|
45 |
BoxWhiskersAnimation(BoxWhiskers *box, BoxPlotAnimation *boxPlotAnimation |
|
|
45 | BoxWhiskersAnimation(BoxWhiskers *box, BoxPlotAnimation *boxPlotAnimation, int duration, | |
|
46 | QEasingCurve &curve); | |
|
46 | 47 | ~BoxWhiskersAnimation(); |
|
47 | 48 | |
|
48 | 49 | public: // from QVariantAnimation |
@@ -22,9 +22,11 | |||
|
22 | 22 | |
|
23 | 23 | QT_CHARTS_BEGIN_NAMESPACE |
|
24 | 24 | |
|
25 | PieAnimation::PieAnimation(PieChartItem *item) | |
|
25 | PieAnimation::PieAnimation(PieChartItem *item, int duration, QEasingCurve &curve) | |
|
26 | 26 | : ChartAnimation(item), |
|
27 | m_item(item) | |
|
27 | m_item(item), | |
|
28 | m_animationDuration(duration), | |
|
29 | m_animationCurve(curve) | |
|
28 | 30 | { |
|
29 | 31 | } |
|
30 | 32 | |
@@ -37,14 +39,14 ChartAnimation *PieAnimation::updateValue(PieSliceItem *sliceItem, const PieSlic | |||
|
37 | 39 | PieSliceAnimation *animation = m_animations.value(sliceItem); |
|
38 | 40 | if (!animation) { |
|
39 | 41 | animation = new PieSliceAnimation(sliceItem); |
|
42 | animation->setDuration(m_animationDuration); | |
|
43 | animation->setEasingCurve(m_animationCurve); | |
|
40 | 44 | m_animations.insert(sliceItem, animation); |
|
41 | 45 | } else { |
|
42 | 46 | animation->stop(); |
|
43 | 47 | } |
|
44 | 48 | |
|
45 | 49 | animation->updateValue(sliceData); |
|
46 | animation->setDuration(ChartAnimationDuration); | |
|
47 | animation->setEasingCurve(QEasingCurve::OutQuart); | |
|
48 | 50 | |
|
49 | 51 | return animation; |
|
50 | 52 | } |
@@ -52,6 +54,8 ChartAnimation *PieAnimation::updateValue(PieSliceItem *sliceItem, const PieSlic | |||
|
52 | 54 | ChartAnimation *PieAnimation::addSlice(PieSliceItem *sliceItem, const PieSliceData &sliceData, bool startupAnimation) |
|
53 | 55 | { |
|
54 | 56 | PieSliceAnimation *animation = new PieSliceAnimation(sliceItem); |
|
57 | animation->setDuration(m_animationDuration); | |
|
58 | animation->setEasingCurve(m_animationCurve); | |
|
55 | 59 | m_animations.insert(sliceItem, animation); |
|
56 | 60 | |
|
57 | 61 | PieSliceData startValue = sliceData; |
@@ -66,8 +70,6 ChartAnimation *PieAnimation::addSlice(PieSliceItem *sliceItem, const PieSliceDa | |||
|
66 | 70 | startValue.m_radius = sliceData.m_holeRadius; |
|
67 | 71 | |
|
68 | 72 | animation->setValue(startValue, sliceData); |
|
69 | animation->setDuration(ChartAnimationDuration); | |
|
70 | animation->setEasingCurve(QEasingCurve::OutQuart); | |
|
71 | 73 | |
|
72 | 74 | return animation; |
|
73 | 75 | } |
@@ -88,8 +90,6 ChartAnimation *PieAnimation::removeSlice(PieSliceItem *sliceItem) | |||
|
88 | 90 | endValue.m_isLabelVisible = false; |
|
89 | 91 | |
|
90 | 92 | animation->updateValue(endValue); |
|
91 | animation->setDuration(ChartAnimationDuration); | |
|
92 | animation->setEasingCurve(QEasingCurve::OutQuart); | |
|
93 | 93 | |
|
94 | 94 | // PieSliceItem is the parent of PieSliceAnimation so the animation will be deleted as well.. |
|
95 | 95 | connect(animation, SIGNAL(finished()), sliceItem, SLOT(deleteLater())); |
@@ -41,7 +41,7 class PieAnimation : public ChartAnimation | |||
|
41 | 41 | Q_OBJECT |
|
42 | 42 | |
|
43 | 43 | public: |
|
44 | PieAnimation(PieChartItem *item); | |
|
44 | PieAnimation(PieChartItem *item, int duration, QEasingCurve &curve); | |
|
45 | 45 | ~PieAnimation(); |
|
46 | 46 | ChartAnimation *updateValue(PieSliceItem *sliceItem, const PieSliceData &newValue); |
|
47 | 47 | ChartAnimation *addSlice(PieSliceItem *sliceItem, const PieSliceData &endValue, bool startupAnimation); |
@@ -53,6 +53,8 public: // from QVariantAnimation | |||
|
53 | 53 | private: |
|
54 | 54 | PieChartItem *m_item; |
|
55 | 55 | QHash<PieSliceItem *, PieSliceAnimation *> m_animations; |
|
56 | int m_animationDuration; | |
|
57 | QEasingCurve m_animationCurve; | |
|
56 | 58 | }; |
|
57 | 59 | |
|
58 | 60 | QT_CHARTS_END_NAMESPACE |
@@ -22,8 +22,8 | |||
|
22 | 22 | |
|
23 | 23 | QT_CHARTS_BEGIN_NAMESPACE |
|
24 | 24 | |
|
25 | ScatterAnimation::ScatterAnimation(ScatterChartItem *item) | |
|
26 | : XYAnimation(item) | |
|
25 | ScatterAnimation::ScatterAnimation(ScatterChartItem *item, int duration, QEasingCurve &curve) | |
|
26 | : XYAnimation(item, duration, curve) | |
|
27 | 27 | { |
|
28 | 28 | } |
|
29 | 29 |
@@ -36,7 +36,7 class ScatterChartItem; | |||
|
36 | 36 | class ScatterAnimation : public XYAnimation |
|
37 | 37 | { |
|
38 | 38 | public: |
|
39 | ScatterAnimation(ScatterChartItem *item); | |
|
39 | ScatterAnimation(ScatterChartItem *item, int duration, QEasingCurve &curve); | |
|
40 | 40 | ~ScatterAnimation(); |
|
41 | 41 | |
|
42 | 42 | protected: |
@@ -25,8 +25,8 Q_DECLARE_METATYPE(SplineVector) | |||
|
25 | 25 | |
|
26 | 26 | QT_CHARTS_BEGIN_NAMESPACE |
|
27 | 27 | |
|
28 | SplineAnimation::SplineAnimation(SplineChartItem *item) | |
|
29 | : XYAnimation(item), | |
|
28 | SplineAnimation::SplineAnimation(SplineChartItem *item, int duration, QEasingCurve &curve) | |
|
29 | : XYAnimation(item, duration, curve), | |
|
30 | 30 | m_item(item), |
|
31 | 31 | m_valid(false) |
|
32 | 32 | { |
@@ -39,7 +39,7 class SplineChartItem; | |||
|
39 | 39 | class SplineAnimation : public XYAnimation |
|
40 | 40 | { |
|
41 | 41 | public: |
|
42 | SplineAnimation(SplineChartItem *item); | |
|
42 | SplineAnimation(SplineChartItem *item, int duration, QEasingCurve &curve); | |
|
43 | 43 | ~SplineAnimation(); |
|
44 | 44 | void setup(QVector<QPointF> &oldPoints, QVector<QPointF> &newPoints, QVector<QPointF> &oldContorlPoints, QVector<QPointF> &newControlPoints, int index = -1); |
|
45 | 45 |
@@ -24,15 +24,15 Q_DECLARE_METATYPE(QVector<QPointF>) | |||
|
24 | 24 | |
|
25 | 25 | QT_CHARTS_BEGIN_NAMESPACE |
|
26 | 26 | |
|
27 | XYAnimation::XYAnimation(XYChart *item) | |
|
27 | XYAnimation::XYAnimation(XYChart *item, int duration, QEasingCurve &curve) | |
|
28 | 28 | : ChartAnimation(item), |
|
29 | 29 | m_type(NewAnimation), |
|
30 | 30 | m_dirty(false), |
|
31 | 31 | m_index(-1), |
|
32 | 32 | m_item(item) |
|
33 | 33 | { |
|
34 |
setDuration( |
|
|
35 |
setEasingCurve( |
|
|
34 | setDuration(duration); | |
|
35 | setEasingCurve(curve); | |
|
36 | 36 | } |
|
37 | 37 | |
|
38 | 38 | XYAnimation::~XYAnimation() |
@@ -40,7 +40,7 class XYAnimation : public ChartAnimation | |||
|
40 | 40 | protected: |
|
41 | 41 | enum Animation { AddPointAnimation, RemovePointAnimation, ReplacePointAnimation, NewAnimation }; |
|
42 | 42 | public: |
|
43 | XYAnimation(XYChart *item); | |
|
43 | XYAnimation(XYChart *item, int duration, QEasingCurve &curve); | |
|
44 | 44 | ~XYAnimation(); |
|
45 | 45 | void setup(const QVector<QPointF> &oldPoints, const QVector<QPointF> &newPoints, int index = -1); |
|
46 | 46 | Animation animationType() const { return m_type; }; |
@@ -620,7 +620,8 void QAreaSeriesPrivate::initializeGraphics(QGraphicsItem* parent) | |||
|
620 | 620 | m_item.reset(area); |
|
621 | 621 | QAbstractSeriesPrivate::initializeGraphics(parent); |
|
622 | 622 | } |
|
623 |
void QAreaSeriesPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
623 | void QAreaSeriesPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
624 | QEasingCurve &curve) | |
|
624 | 625 | { |
|
625 | 626 | Q_Q(QAreaSeries); |
|
626 | 627 | AreaChartItem *area = static_cast<AreaChartItem *>(m_item.data()); |
@@ -631,16 +632,18 void QAreaSeriesPrivate::initializeAnimations(QChart::AnimationOptions options) | |||
|
631 | 632 | area->lowerLineItem()->animation()->stopAndDestroyLater(); |
|
632 | 633 | |
|
633 | 634 | if (options.testFlag(QChart::SeriesAnimations)) { |
|
634 |
area->upperLineItem()->setAnimation(new XYAnimation(area->upperLineItem() |
|
|
635 | area->upperLineItem()->setAnimation(new XYAnimation(area->upperLineItem(), duration, | |
|
636 | curve)); | |
|
635 | 637 | if (q->lowerSeries()) |
|
636 |
area->lowerLineItem()->setAnimation(new XYAnimation(area->lowerLineItem() |
|
|
638 | area->lowerLineItem()->setAnimation(new XYAnimation(area->lowerLineItem(), duration, | |
|
639 | curve)); | |
|
637 | 640 | } else { |
|
638 | 641 | if (q->upperSeries()) |
|
639 | 642 | area->upperLineItem()->setAnimation(0); |
|
640 | 643 | if (q->lowerSeries()) |
|
641 | 644 | area->lowerLineItem()->setAnimation(0); |
|
642 | 645 | } |
|
643 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
646 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
644 | 647 | } |
|
645 | 648 | |
|
646 | 649 | QList<QLegendMarker*> QAreaSeriesPrivate::createLegendMarkers(QLegend* legend) |
@@ -46,7 +46,8 public: | |||
|
46 | 46 | void initializeAxes(); |
|
47 | 47 | void initializeGraphics(QGraphicsItem* parent); |
|
48 | 48 | void initializeTheme(int index, ChartTheme* theme, bool forced = false); |
|
49 |
void initializeAnimations(QChart::AnimationOptions options |
|
|
49 | void initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
50 | QEasingCurve &curve); | |
|
50 | 51 | |
|
51 | 52 | QList<QLegendMarker *> createLegendMarkers(QLegend *legend); |
|
52 | 53 |
@@ -1018,7 +1018,8 void QAbstractAxisPrivate::initializeGraphics(QGraphicsItem* parent) | |||
|
1018 | 1018 | Q_UNUSED(parent); |
|
1019 | 1019 | } |
|
1020 | 1020 | |
|
1021 |
void QAbstractAxisPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
1021 | void QAbstractAxisPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
1022 | QEasingCurve &curve) | |
|
1022 | 1023 | { |
|
1023 | 1024 | ChartAxisElement *axis = m_item.data(); |
|
1024 | 1025 | Q_ASSERT(axis); |
@@ -1026,7 +1027,7 void QAbstractAxisPrivate::initializeAnimations(QChart::AnimationOptions options | |||
|
1026 | 1027 | axis->animation()->stopAndDestroyLater(); |
|
1027 | 1028 | |
|
1028 | 1029 | if (options.testFlag(QChart::GridAxisAnimations)) |
|
1029 | axis->setAnimation(new AxisAnimation(axis)); | |
|
1030 | axis->setAnimation(new AxisAnimation(axis, duration, curve)); | |
|
1030 | 1031 | else |
|
1031 | 1032 | axis->setAnimation(0); |
|
1032 | 1033 | } |
@@ -61,7 +61,8 public: | |||
|
61 | 61 | virtual void initializeDomain(AbstractDomain *domain) = 0; |
|
62 | 62 | virtual void initializeGraphics(QGraphicsItem *parent) = 0; |
|
63 | 63 | virtual void initializeTheme(ChartTheme* theme, bool forced = false); |
|
64 |
virtual void initializeAnimations(QChart::AnimationOptions options |
|
|
64 | virtual void initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
65 | QEasingCurve &curve); | |
|
65 | 66 | |
|
66 | 67 | //interface for manipulating range form base class |
|
67 | 68 | virtual void setMin(const QVariant &min) = 0; |
@@ -1072,7 +1072,8 void QAbstractBarSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bo | |||
|
1072 | 1072 | emit updatedBars(); |
|
1073 | 1073 | } |
|
1074 | 1074 | |
|
1075 |
void QAbstractBarSeriesPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
1075 | void QAbstractBarSeriesPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
1076 | QEasingCurve &curve) | |
|
1076 | 1077 | { |
|
1077 | 1078 | AbstractBarChartItem *bar = static_cast<AbstractBarChartItem *>(m_item.data()); |
|
1078 | 1079 | Q_ASSERT(bar); |
@@ -1080,10 +1081,10 void QAbstractBarSeriesPrivate::initializeAnimations(QChart::AnimationOptions op | |||
|
1080 | 1081 | bar->animation()->stopAndDestroyLater(); |
|
1081 | 1082 | |
|
1082 | 1083 | if (options.testFlag(QChart::SeriesAnimations)) |
|
1083 | bar->setAnimation(new BarAnimation(bar)); | |
|
1084 | bar->setAnimation(new BarAnimation(bar, duration, curve)); | |
|
1084 | 1085 | else |
|
1085 | 1086 | bar->setAnimation(0); |
|
1086 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
1087 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
1087 | 1088 | } |
|
1088 | 1089 | |
|
1089 | 1090 | #include "moc_qabstractbarseries.cpp" |
@@ -54,7 +54,7 public: | |||
|
54 | 54 | |
|
55 | 55 | void initializeDomain(); |
|
56 | 56 | void initializeAxes(); |
|
57 | void initializeAnimations(QChart::AnimationOptions options); | |
|
57 | void initializeAnimations(QChart::AnimationOptions options, int duration, QEasingCurve &curve); | |
|
58 | 58 | void initializeTheme(int index, ChartTheme* theme, bool forced = false); |
|
59 | 59 | |
|
60 | 60 | QList<QLegendMarker*> createLegendMarkers(QLegend *legend); |
@@ -485,7 +485,8 void QBoxPlotSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool f | |||
|
485 | 485 | } |
|
486 | 486 | } |
|
487 | 487 | |
|
488 |
void QBoxPlotSeriesPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
488 | void QBoxPlotSeriesPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
489 | QEasingCurve &curve) | |
|
489 | 490 | { |
|
490 | 491 | BoxPlotChartItem *item = static_cast<BoxPlotChartItem *>(m_item.data()); |
|
491 | 492 | Q_ASSERT(item); |
@@ -493,12 +494,15 void QBoxPlotSeriesPrivate::initializeAnimations(QChart::AnimationOptions option | |||
|
493 | 494 | item->animation()->stopAndDestroyLater(); |
|
494 | 495 | |
|
495 | 496 | if (options.testFlag(QChart::SeriesAnimations)) |
|
496 | m_animation = new BoxPlotAnimation(item); | |
|
497 | m_animation = new BoxPlotAnimation(item, duration, curve); | |
|
497 | 498 | else |
|
498 | 499 | m_animation = 0; |
|
499 | 500 | item->setAnimation(m_animation); |
|
500 | 501 | |
|
501 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
502 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
503 | ||
|
504 | // Make BoxPlotChartItem to instantiate box & whisker items | |
|
505 | item->handleDataStructureChanged(); | |
|
502 | 506 | } |
|
503 | 507 | |
|
504 | 508 | QList<QLegendMarker*> QBoxPlotSeriesPrivate::createLegendMarkers(QLegend *legend) |
@@ -48,7 +48,7 public: | |||
|
48 | 48 | void initializeGraphics(QGraphicsItem *parent); |
|
49 | 49 | void initializeDomain(); |
|
50 | 50 | void initializeAxes(); |
|
51 | void initializeAnimations(QChart::AnimationOptions options); | |
|
51 | void initializeAnimations(QChart::AnimationOptions options, int duration, QEasingCurve &curve); | |
|
52 | 52 | void initializeTheme(int index, ChartTheme *theme, bool forced = false); |
|
53 | 53 | |
|
54 | 54 | QList<QLegendMarker*> createLegendMarkers(QLegend *legend); |
@@ -39,6 +39,8 ChartPresenter::ChartPresenter(QChart *chart, QChart::ChartType type) | |||
|
39 | 39 | : QObject(chart), |
|
40 | 40 | m_chart(chart), |
|
41 | 41 | m_options(QChart::NoAnimation), |
|
42 | m_animationDuration(ChartAnimationDuration), | |
|
43 | m_animationCurve(QEasingCurve::OutQuart), | |
|
42 | 44 | m_state(ShowState), |
|
43 | 45 | m_background(0), |
|
44 | 46 | m_plotAreaBackground(0), |
@@ -77,7 +79,7 QRectF ChartPresenter::geometry() const | |||
|
77 | 79 | void ChartPresenter::handleAxisAdded(QAbstractAxis *axis) |
|
78 | 80 | { |
|
79 | 81 | axis->d_ptr->initializeGraphics(rootItem()); |
|
80 | axis->d_ptr->initializeAnimations(m_options); | |
|
82 | axis->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
81 | 83 | ChartAxisElement *item = axis->d_ptr->axisItem(); |
|
82 | 84 | item->setPresenter(this); |
|
83 | 85 | item->setThemeManager(m_chart->d_ptr->m_themeManager); |
@@ -101,7 +103,7 void ChartPresenter::handleAxisRemoved(QAbstractAxis *axis) | |||
|
101 | 103 | void ChartPresenter::handleSeriesAdded(QAbstractSeries *series) |
|
102 | 104 | { |
|
103 | 105 | series->d_ptr->initializeGraphics(rootItem()); |
|
104 | series->d_ptr->initializeAnimations(m_options); | |
|
106 | series->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
105 | 107 | series->d_ptr->setPresenter(this); |
|
106 | 108 | ChartItem *chart = series->d_ptr->chartItem(); |
|
107 | 109 | chart->setPresenter(this); |
@@ -134,16 +136,41 void ChartPresenter::setAnimationOptions(QChart::AnimationOptions options) | |||
|
134 | 136 | m_options = options; |
|
135 | 137 | if (options.testFlag(QChart::SeriesAnimations) != oldOptions.testFlag(QChart::SeriesAnimations)) { |
|
136 | 138 | foreach (QAbstractSeries *series, m_series) |
|
137 |
series->d_ptr->initializeAnimations(m_options |
|
|
139 | series->d_ptr->initializeAnimations(m_options, m_animationDuration, | |
|
140 | m_animationCurve); | |
|
138 | 141 | } |
|
139 | 142 | if (options.testFlag(QChart::GridAxisAnimations) != oldOptions.testFlag(QChart::GridAxisAnimations)) { |
|
140 | 143 | foreach (QAbstractAxis *axis, m_axes) |
|
141 | axis->d_ptr->initializeAnimations(m_options); | |
|
144 | axis->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
142 | 145 | } |
|
143 | 146 | m_layout->invalidate(); // So that existing animations don't just stop halfway |
|
144 | 147 | } |
|
145 | 148 | } |
|
146 | 149 | |
|
150 | void ChartPresenter::setAnimationDuration(int msecs) | |
|
151 | { | |
|
152 | if (m_animationDuration != msecs) { | |
|
153 | m_animationDuration = msecs; | |
|
154 | foreach (QAbstractSeries *series, m_series) | |
|
155 | series->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
156 | foreach (QAbstractAxis *axis, m_axes) | |
|
157 | axis->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
158 | m_layout->invalidate(); // So that existing animations don't just stop halfway | |
|
159 | } | |
|
160 | } | |
|
161 | ||
|
162 | void ChartPresenter::setAnimationEasingCurve(const QEasingCurve &curve) | |
|
163 | { | |
|
164 | if (m_animationCurve != curve) { | |
|
165 | m_animationCurve = curve; | |
|
166 | foreach (QAbstractSeries *series, m_series) | |
|
167 | series->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
168 | foreach (QAbstractAxis *axis, m_axes) | |
|
169 | axis->d_ptr->initializeAnimations(m_options, m_animationDuration, m_animationCurve); | |
|
170 | m_layout->invalidate(); // So that existing animations don't just stop halfway | |
|
171 | } | |
|
172 | } | |
|
173 | ||
|
147 | 174 | void ChartPresenter::setState(State state,QPointF point) |
|
148 | 175 | { |
|
149 | 176 | m_state=state; |
@@ -137,6 +137,10 public: | |||
|
137 | 137 | |
|
138 | 138 | void setAnimationOptions(QChart::AnimationOptions options); |
|
139 | 139 | QChart::AnimationOptions animationOptions() const; |
|
140 | void setAnimationDuration(int msecs); | |
|
141 | int animationDuration() const { return m_animationDuration; } | |
|
142 | void setAnimationEasingCurve(const QEasingCurve &curve); | |
|
143 | QEasingCurve animationEasingCurve() const { return m_animationCurve; } | |
|
140 | 144 | |
|
141 | 145 | void startAnimation(ChartAnimation *animation); |
|
142 | 146 | |
@@ -177,6 +181,8 private: | |||
|
177 | 181 | QList<QAbstractSeries *> m_series; |
|
178 | 182 | QList<QAbstractAxis *> m_axes; |
|
179 | 183 | QChart::AnimationOptions m_options; |
|
184 | int m_animationDuration; | |
|
185 | QEasingCurve m_animationCurve; | |
|
180 | 186 | State m_state; |
|
181 | 187 | QPointF m_statePoint; |
|
182 | 188 | AbstractChartLayout *m_layout; |
@@ -932,7 +932,8 void QPieSeriesPrivate::initializeGraphics(QGraphicsItem* parent) | |||
|
932 | 932 | QAbstractSeriesPrivate::initializeGraphics(parent); |
|
933 | 933 | } |
|
934 | 934 | |
|
935 |
void QPieSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
935 | void QPieSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options, | |
|
936 | int duration, QEasingCurve &curve) | |
|
936 | 937 | { |
|
937 | 938 | PieChartItem *item = static_cast<PieChartItem *>(m_item.data()); |
|
938 | 939 | Q_ASSERT(item); |
@@ -940,10 +941,10 void QPieSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions | |||
|
940 | 941 | item->animation()->stopAndDestroyLater(); |
|
941 | 942 | |
|
942 | 943 | if (options.testFlag(QChart::SeriesAnimations)) |
|
943 | item->setAnimation(new PieAnimation(item)); | |
|
944 | item->setAnimation(new PieAnimation(item, duration, curve)); | |
|
944 | 945 | else |
|
945 | 946 | item->setAnimation(0); |
|
946 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
947 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
947 | 948 | } |
|
948 | 949 | |
|
949 | 950 | QList<QLegendMarker*> QPieSeriesPrivate::createLegendMarkers(QLegend* legend) |
@@ -45,7 +45,8 public: | |||
|
45 | 45 | void initializeDomain(); |
|
46 | 46 | void initializeAxes(); |
|
47 | 47 | void initializeGraphics(QGraphicsItem* parent); |
|
48 |
void initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
48 | void initializeAnimations(QtCharts::QChart::AnimationOptions options, int duration, | |
|
49 | QEasingCurve &curve); | |
|
49 | 50 | void initializeTheme(int index, ChartTheme* theme, bool forced = false); |
|
50 | 51 | |
|
51 | 52 | QList<QLegendMarker *> createLegendMarkers(QLegend *legend); |
@@ -312,9 +312,12 void QAbstractSeriesPrivate::initializeGraphics(QGraphicsItem* parent) | |||
|
312 | 312 | QObject::connect(m_domain.data(), SIGNAL(updated()),m_item.data(), SLOT(handleDomainUpdated())); |
|
313 | 313 | } |
|
314 | 314 | |
|
315 |
void QAbstractSeriesPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
315 | void QAbstractSeriesPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
316 | QEasingCurve &curve) | |
|
316 | 317 | { |
|
317 | 318 | Q_UNUSED(options); |
|
319 | Q_UNUSED(duration); | |
|
320 | Q_UNUSED(curve); | |
|
318 | 321 | } |
|
319 | 322 | |
|
320 | 323 | bool QAbstractSeriesPrivate::reverseXAxis() |
@@ -61,7 +61,8 public: | |||
|
61 | 61 | virtual void initializeAxes() = 0; |
|
62 | 62 | virtual void initializeTheme(int index, ChartTheme* theme, bool forced = false) = 0; |
|
63 | 63 | virtual void initializeGraphics(QGraphicsItem* parent) = 0; |
|
64 |
virtual void initializeAnimations(QChart::AnimationOptions options |
|
|
64 | virtual void initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
65 | QEasingCurve &curve) = 0; | |
|
65 | 66 | |
|
66 | 67 | virtual QList<QLegendMarker*> createLegendMarkers(QLegend* legend) = 0; |
|
67 | 68 |
@@ -85,6 +85,16 QT_CHARTS_BEGIN_NAMESPACE | |||
|
85 | 85 | */ |
|
86 | 86 | |
|
87 | 87 | /*! |
|
88 | \property QChart::animationDuration | |
|
89 | The duration of the animation for the chart. | |
|
90 | */ | |
|
91 | ||
|
92 | /*! | |
|
93 | \property QChart::animationEasingCurve | |
|
94 | The easing curve of the animation for the chart. | |
|
95 | */ | |
|
96 | ||
|
97 | /*! | |
|
88 | 98 | \property QChart::backgroundVisible |
|
89 | 99 | Specifies whether the chart background is visible or not. |
|
90 | 100 | \sa setBackgroundBrush(), setBackgroundPen(), plotAreaBackgroundVisible |
@@ -595,6 +605,26 QChart::AnimationOptions QChart::animationOptions() const | |||
|
595 | 605 | return d_ptr->m_presenter->animationOptions(); |
|
596 | 606 | } |
|
597 | 607 | |
|
608 | void QChart::setAnimationDuration(int msecs) | |
|
609 | { | |
|
610 | d_ptr->m_presenter->setAnimationDuration(msecs); | |
|
611 | } | |
|
612 | ||
|
613 | int QChart::animationDuration() const | |
|
614 | { | |
|
615 | return d_ptr->m_presenter->animationDuration(); | |
|
616 | } | |
|
617 | ||
|
618 | void QChart::setAnimationEasingCurve(const QEasingCurve &curve) | |
|
619 | { | |
|
620 | d_ptr->m_presenter->setAnimationEasingCurve(curve); | |
|
621 | } | |
|
622 | ||
|
623 | QEasingCurve QChart::animationEasingCurve() const | |
|
624 | { | |
|
625 | return d_ptr->m_presenter->animationEasingCurve(); | |
|
626 | } | |
|
627 | ||
|
598 | 628 | /*! |
|
599 | 629 | Scrolls the visible area of the chart by the distance defined in the \a dx and \a dy. |
|
600 | 630 |
@@ -45,6 +45,8 class QT_CHARTS_EXPORT QChart : public QGraphicsWidget | |||
|
45 | 45 | Q_PROPERTY(bool dropShadowEnabled READ isDropShadowEnabled WRITE setDropShadowEnabled) |
|
46 | 46 | Q_PROPERTY(qreal backgroundRoundness READ backgroundRoundness WRITE setBackgroundRoundness) |
|
47 | 47 | Q_PROPERTY(QChart::AnimationOptions animationOptions READ animationOptions WRITE setAnimationOptions) |
|
48 | Q_PROPERTY(int animationDuration READ animationDuration WRITE setAnimationDuration) | |
|
49 | Q_PROPERTY(QEasingCurve animationEasingCurve READ animationEasingCurve WRITE setAnimationEasingCurve) | |
|
48 | 50 | Q_PROPERTY(QMargins margins READ margins WRITE setMargins) |
|
49 | 51 | Q_PROPERTY(QChart::ChartType chartType READ chartType) |
|
50 | 52 | Q_PROPERTY(bool plotAreaBackgroundVisible READ isPlotAreaBackgroundVisible WRITE setPlotAreaBackgroundVisible) |
@@ -125,8 +127,13 public: | |||
|
125 | 127 | bool isDropShadowEnabled() const; |
|
126 | 128 | void setBackgroundRoundness(qreal diameter); |
|
127 | 129 | qreal backgroundRoundness() const; |
|
130 | ||
|
128 | 131 | void setAnimationOptions(AnimationOptions options); |
|
129 | 132 | AnimationOptions animationOptions() const; |
|
133 | void setAnimationDuration(int msecs); | |
|
134 | int animationDuration() const; | |
|
135 | void setAnimationEasingCurve(const QEasingCurve &curve); | |
|
136 | QEasingCurve animationEasingCurve() const; | |
|
130 | 137 | |
|
131 | 138 | void zoomIn(); |
|
132 | 139 | void zoomOut(); |
@@ -311,7 +311,8 void QScatterSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool f | |||
|
311 | 311 | } |
|
312 | 312 | } |
|
313 | 313 | |
|
314 |
void QScatterSeriesPrivate::initializeAnimations(QChart::AnimationOptions options |
|
|
314 | void QScatterSeriesPrivate::initializeAnimations(QChart::AnimationOptions options, int duration, | |
|
315 | QEasingCurve &curve) | |
|
315 | 316 | { |
|
316 | 317 | ScatterChartItem *item = static_cast<ScatterChartItem *>(m_item.data()); |
|
317 | 318 | Q_ASSERT(item); |
@@ -320,11 +321,11 void QScatterSeriesPrivate::initializeAnimations(QChart::AnimationOptions option | |||
|
320 | 321 | item->animation()->stopAndDestroyLater(); |
|
321 | 322 | |
|
322 | 323 | if (options.testFlag(QChart::SeriesAnimations)) |
|
323 | item->setAnimation(new ScatterAnimation(item)); | |
|
324 | item->setAnimation(new ScatterAnimation(item, duration, curve)); | |
|
324 | 325 | else |
|
325 | 326 | item->setAnimation(0); |
|
326 | 327 | |
|
327 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
328 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
328 | 329 | } |
|
329 | 330 | |
|
330 | 331 | #include "moc_qscatterseries.cpp" |
@@ -38,7 +38,8 public: | |||
|
38 | 38 | QScatterSeriesPrivate(QScatterSeries *q); |
|
39 | 39 | void initializeGraphics(QGraphicsItem* parent); |
|
40 | 40 | void initializeTheme(int index, ChartTheme* theme, bool forced = false); |
|
41 |
void initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
41 | void initializeAnimations(QtCharts::QChart::AnimationOptions options, int duration, | |
|
42 | QEasingCurve &curve); | |
|
42 | 43 | |
|
43 | 44 | private: |
|
44 | 45 | QScatterSeries::MarkerShape m_shape; |
@@ -143,7 +143,8 void QSplineSeriesPrivate::initializeTheme(int index, ChartTheme* theme, bool fo | |||
|
143 | 143 | } |
|
144 | 144 | } |
|
145 | 145 | |
|
146 |
void QSplineSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
146 | void QSplineSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options, | |
|
147 | int duration, QEasingCurve &curve) | |
|
147 | 148 | { |
|
148 | 149 | SplineChartItem *item = static_cast<SplineChartItem *>(m_item.data()); |
|
149 | 150 | Q_ASSERT(item); |
@@ -151,10 +152,10 void QSplineSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptio | |||
|
151 | 152 | item->animation()->stopAndDestroyLater(); |
|
152 | 153 | |
|
153 | 154 | if (options.testFlag(QChart::SeriesAnimations)) |
|
154 | item->setAnimation(new SplineAnimation(item)); | |
|
155 | item->setAnimation(new SplineAnimation(item, duration, curve)); | |
|
155 | 156 | else |
|
156 | 157 | item->setAnimation(0); |
|
157 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
158 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
158 | 159 | } |
|
159 | 160 | |
|
160 | 161 | #include "moc_qsplineseries.cpp" |
@@ -41,7 +41,8 public: | |||
|
41 | 41 | |
|
42 | 42 | void initializeTheme(int index, ChartTheme* theme, bool forced = false); |
|
43 | 43 | void initializeGraphics(QGraphicsItem* parent); |
|
44 |
void initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
44 | void initializeAnimations(QtCharts::QChart::AnimationOptions options, int duration, | |
|
45 | QEasingCurve &curve); | |
|
45 | 46 | |
|
46 | 47 | private: |
|
47 | 48 | Q_DECLARE_PUBLIC(QSplineSeries) |
@@ -830,7 +830,8 QAbstractAxis* QXYSeriesPrivate::createDefaultAxis(Qt::Orientation orientation) | |||
|
830 | 830 | return new QValueAxis; |
|
831 | 831 | } |
|
832 | 832 | |
|
833 |
void QXYSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
833 | void QXYSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions options, | |
|
834 | int duration, QEasingCurve &curve) | |
|
834 | 835 | { |
|
835 | 836 | XYChart *item = static_cast<XYChart *>(m_item.data()); |
|
836 | 837 | Q_ASSERT(item); |
@@ -838,10 +839,10 void QXYSeriesPrivate::initializeAnimations(QtCharts::QChart::AnimationOptions o | |||
|
838 | 839 | item->animation()->stopAndDestroyLater(); |
|
839 | 840 | |
|
840 | 841 | if (options.testFlag(QChart::SeriesAnimations)) |
|
841 | item->setAnimation(new XYAnimation(item)); | |
|
842 | item->setAnimation(new XYAnimation(item, duration, curve)); | |
|
842 | 843 | else |
|
843 | 844 | item->setAnimation(0); |
|
844 | QAbstractSeriesPrivate::initializeAnimations(options); | |
|
845 | QAbstractSeriesPrivate::initializeAnimations(options, duration, curve); | |
|
845 | 846 | } |
|
846 | 847 | |
|
847 | 848 | void QXYSeriesPrivate::drawSeriesPointLabels(QPainter *painter, const QVector<QPointF> &points, |
@@ -44,7 +44,8 public: | |||
|
44 | 44 | |
|
45 | 45 | void initializeDomain(); |
|
46 | 46 | void initializeAxes(); |
|
47 |
void initializeAnimations(QtCharts::QChart::AnimationOptions options |
|
|
47 | void initializeAnimations(QtCharts::QChart::AnimationOptions options, int duration, | |
|
48 | QEasingCurve &curve); | |
|
48 | 49 | |
|
49 | 50 | QList<QLegendMarker*> createLegendMarkers(QLegend* legend); |
|
50 | 51 |
@@ -81,6 +81,15 QT_CHARTS_BEGIN_NAMESPACE | |||
|
81 | 81 | */ |
|
82 | 82 | |
|
83 | 83 | /*! |
|
84 | \qmlproperty int ChartView::animationDuration | |
|
85 | The duration of the animation for the chart. | |
|
86 | */ | |
|
87 | ||
|
88 | /*! | |
|
89 | \qmlproperty easing ChartView::animationEasingCurve | |
|
90 | The easing curve of the animation for the chart. | |
|
91 | ||
|
92 | /*! | |
|
84 | 93 | \qmlproperty Font ChartView::titleFont |
|
85 | 94 | The title font of the chart. |
|
86 | 95 | |
@@ -673,6 +682,32 DeclarativeChart::Animation DeclarativeChart::animationOptions() | |||
|
673 | 682 | return DeclarativeChart::NoAnimation; |
|
674 | 683 | } |
|
675 | 684 | |
|
685 | void DeclarativeChart::setAnimationDuration(int msecs) | |
|
686 | { | |
|
687 | if (msecs != m_chart->animationDuration()) { | |
|
688 | m_chart->setAnimationDuration(msecs); | |
|
689 | emit animationDurationChanged(msecs); | |
|
690 | } | |
|
691 | } | |
|
692 | ||
|
693 | int DeclarativeChart::animationDuration() const | |
|
694 | { | |
|
695 | return m_chart->animationDuration(); | |
|
696 | } | |
|
697 | ||
|
698 | void DeclarativeChart::setAnimationEasingCurve(const QEasingCurve &curve) | |
|
699 | { | |
|
700 | if (curve != m_chart->animationEasingCurve()) { | |
|
701 | m_chart->setAnimationEasingCurve(curve); | |
|
702 | emit animationEasingCurveChanged(curve); | |
|
703 | } | |
|
704 | } | |
|
705 | ||
|
706 | QEasingCurve DeclarativeChart::animationEasingCurve() const | |
|
707 | { | |
|
708 | return m_chart->animationEasingCurve(); | |
|
709 | } | |
|
710 | ||
|
676 | 711 | void DeclarativeChart::setTitle(QString title) |
|
677 | 712 | { |
|
678 | 713 | if (title != m_chart->title()) |
@@ -39,6 +39,8 class DeclarativeChart : public QQuickPaintedItem | |||
|
39 | 39 | Q_OBJECT |
|
40 | 40 | Q_PROPERTY(Theme theme READ theme WRITE setTheme) |
|
41 | 41 | Q_PROPERTY(Animation animationOptions READ animationOptions WRITE setAnimationOptions) |
|
42 | Q_PROPERTY(int animationDuration READ animationDuration WRITE setAnimationDuration NOTIFY animationDurationChanged REVISION 5) | |
|
43 | Q_PROPERTY(QEasingCurve animationEasingCurve READ animationEasingCurve WRITE setAnimationEasingCurve NOTIFY animationEasingCurveChanged REVISION 5) | |
|
42 | 44 | Q_PROPERTY(QString title READ title WRITE setTitle) |
|
43 | 45 | Q_PROPERTY(QFont titleFont READ titleFont WRITE setTitleFont) |
|
44 | 46 | Q_PROPERTY(QColor titleColor READ titleColor WRITE setTitleColor NOTIFY titleColorChanged) |
@@ -116,6 +118,10 public: | |||
|
116 | 118 | DeclarativeChart::Theme theme(); |
|
117 | 119 | void setAnimationOptions(DeclarativeChart::Animation animations); |
|
118 | 120 | DeclarativeChart::Animation animationOptions(); |
|
121 | void setAnimationDuration(int msecs); | |
|
122 | int animationDuration() const; | |
|
123 | void setAnimationEasingCurve(const QEasingCurve &curve); | |
|
124 | QEasingCurve animationEasingCurve() const; | |
|
119 | 125 | void setTitle(QString title); |
|
120 | 126 | QString title(); |
|
121 | 127 | QLegend *legend(); |
@@ -190,6 +196,8 Q_SIGNALS: | |||
|
190 | 196 | Q_REVISION(3) void backgroundRoundnessChanged(qreal diameter); |
|
191 | 197 | Q_REVISION(4) void localizeNumbersChanged(); |
|
192 | 198 | Q_REVISION(4) void localeChanged(); |
|
199 | Q_REVISION(5) void animationDurationChanged(int msecs); | |
|
200 | Q_REVISION(5) void animationEasingCurveChanged(QEasingCurve curve); | |
|
193 | 201 | |
|
194 | 202 | private Q_SLOTS: |
|
195 | 203 | void changeMargins(int top, int bottom, int left, int right); |
@@ -994,6 +994,8 Module { | |||
|
994 | 994 | Property { name: "axes"; revision: 2; type: "QAbstractAxis"; isList: true; isReadonly: true } |
|
995 | 995 | Property { name: "localizeNumbers"; revision: 4; type: "bool" } |
|
996 | 996 | Property { name: "locale"; revision: 4; type: "QLocale" } |
|
997 | Property { name: "animationDuration"; revision: 5; type: "int" } | |
|
998 | Property { name: "animationEasingCurve"; revision: 5; type: "QEasingCurve" } | |
|
997 | 999 | Signal { name: "axisLabelsChanged" } |
|
998 | 1000 | Signal { |
|
999 | 1001 | name: "titleColorChanged" |
@@ -1024,6 +1026,16 Module { | |||
|
1024 | 1026 | } |
|
1025 | 1027 | Signal { name: "localizeNumbersChanged"; revision: 4 } |
|
1026 | 1028 | Signal { name: "localeChanged"; revision: 4 } |
|
1029 | Signal { | |
|
1030 | name: "animationDurationChanged" | |
|
1031 | revision: 5 | |
|
1032 | Parameter { name: "msecs"; type: "int" } | |
|
1033 | } | |
|
1034 | Signal { | |
|
1035 | name: "animationEasingCurveChanged" | |
|
1036 | revision: 5 | |
|
1037 | Parameter { name: "curve"; type: "QEasingCurve" } | |
|
1038 | } | |
|
1027 | 1039 | Method { |
|
1028 | 1040 | name: "series" |
|
1029 | 1041 | type: "QAbstractSeries*" |
@@ -59,6 +59,9 private slots: | |||
|
59 | 59 | void addSeries(); |
|
60 | 60 | void animationOptions_data(); |
|
61 | 61 | void animationOptions(); |
|
62 | void animationDuration(); | |
|
63 | void animationCurve_data(); | |
|
64 | void animationCurve(); | |
|
62 | 65 | void axisX_data(); |
|
63 | 66 | void axisX(); |
|
64 | 67 | void axisY_data(); |
@@ -160,6 +163,8 void tst_QChart::qchart() | |||
|
160 | 163 | QVERIFY(m_chart->legend()->isVisible()); |
|
161 | 164 | |
|
162 | 165 | QCOMPARE(m_chart->animationOptions(), QChart::NoAnimation); |
|
166 | QCOMPARE(m_chart->animationDuration(), 1000); | |
|
167 | QCOMPARE(m_chart->animationEasingCurve(), QEasingCurve(QEasingCurve::OutQuart)); | |
|
163 | 168 | QVERIFY(!m_chart->axisX()); |
|
164 | 169 | QVERIFY(!m_chart->axisY()); |
|
165 | 170 | QVERIFY(m_chart->backgroundBrush()!=QBrush()); |
@@ -258,6 +263,30 void tst_QChart::animationOptions() | |||
|
258 | 263 | QCOMPARE(m_chart->animationOptions(), animationOptions); |
|
259 | 264 | } |
|
260 | 265 | |
|
266 | void tst_QChart::animationDuration() | |
|
267 | { | |
|
268 | createTestData(); | |
|
269 | m_chart->setAnimationDuration(2000); | |
|
270 | QVERIFY(m_chart->animationDuration() == 2000); | |
|
271 | } | |
|
272 | ||
|
273 | void tst_QChart::animationCurve_data() | |
|
274 | { | |
|
275 | QTest::addColumn<QEasingCurve>("animationCurve"); | |
|
276 | QTest::newRow("Linear") << QEasingCurve(QEasingCurve::Linear); | |
|
277 | QTest::newRow("InCubic") << QEasingCurve(QEasingCurve::InCubic); | |
|
278 | QTest::newRow("OutSine") << QEasingCurve(QEasingCurve::OutSine); | |
|
279 | QTest::newRow("OutInBack") << QEasingCurve(QEasingCurve::OutInBack); | |
|
280 | } | |
|
281 | ||
|
282 | void tst_QChart::animationCurve() | |
|
283 | { | |
|
284 | createTestData(); | |
|
285 | QFETCH(QEasingCurve, animationCurve); | |
|
286 | m_chart->setAnimationEasingCurve(animationCurve); | |
|
287 | QCOMPARE(m_chart->animationEasingCurve(), animationCurve); | |
|
288 | } | |
|
289 | ||
|
261 | 290 | void tst_QChart::axisX_data() |
|
262 | 291 | { |
|
263 | 292 |
@@ -31,6 +31,8 Rectangle { | |||
|
31 | 31 | |
|
32 | 32 | function test_chartViewProperties() { |
|
33 | 33 | compare(chartView.animationOptions, ChartView.NoAnimation, "ChartView.animationOptions"); |
|
34 | compare(chartView.animationDuration, 1000, "ChartView.animationDuration"); | |
|
35 | compare(chartView.animationEasingCurve.type, Easing.OutQuart, "ChartView.animationEasingCurve"); | |
|
34 | 36 | verify(chartView.backgroundColor != undefined); |
|
35 | 37 | verify(chartView.margins.bottom > 0, "ChartView.margins.bottom"); |
|
36 | 38 | verify(chartView.margins.top > 0, "ChartView.margins.top"); |
@@ -17,7 +17,7 | |||
|
17 | 17 | ****************************************************************************/ |
|
18 | 18 | |
|
19 | 19 | import QtQuick 2.0 |
|
20 |
import QtCharts 2. |
|
|
20 | import QtCharts 2.1 | |
|
21 | 21 | |
|
22 | 22 | ChartView { |
|
23 | 23 | id: chartView |
@@ -45,7 +45,11 ChartView { | |||
|
45 | 45 | onBackgroundRoundnessChanged: console.log("chart.onBackgroundRoundnessChanged: " + diameter); |
|
46 | 46 | onSeriesAdded: console.log("chart.onSeriesAdded: " + series.name); |
|
47 | 47 | onSeriesRemoved: console.log("chart.onSeriesRemoved: " + series.name); |
|
48 |
onPlotAreaColorChanged: console.log("chart. |
|
|
48 | onPlotAreaColorChanged: console.log("chart.onPlotAreaColorChanged: " + chart.plotAreaColor); | |
|
49 | onAnimationDurationChanged: console.log("chart.onAnimationDurationChanged: " | |
|
50 | + chart.animationDuration); | |
|
51 | onAnimationEasingCurveChanged: console.log("chart.onAnimationEasingCurveChanged: " | |
|
52 | + chart.animationEasingCurve.type); | |
|
49 | 53 | |
|
50 | 54 | legend.onVisibleChanged: console.log("legend.onVisibleChanged: " + chart.legend.visible); |
|
51 | 55 | legend.onBackgroundVisibleChanged: console.log("legend.onBackgroundVisibleChanged: " + visible); |
@@ -21,8 +21,16 import QtQuick 2.0 | |||
|
21 | 21 | Flow { |
|
22 | 22 | anchors.fill: parent |
|
23 | 23 | property variant chart |
|
24 | property variant easingTypes: [Easing.Linear, Easing.InCubic, Easing.OutSine, Easing.OutInBack] | |
|
25 | property int easingTypeIndex: 0 | |
|
24 | 26 | flow: Flow.TopToBottom |
|
25 | 27 | spacing: 5 |
|
28 | ||
|
29 | function nextEasingType() { | |
|
30 | easingTypeIndex++; | |
|
31 | return easingTypes[easingTypeIndex % easingTypes.length]; | |
|
32 | } | |
|
33 | ||
|
26 | 34 | Button { |
|
27 | 35 | text: "visible" |
|
28 | 36 | onClicked: chart.visible = !chart.visible; |
@@ -44,6 +52,18 Flow { | |||
|
44 | 52 | onClicked: chart.animationOptions--; |
|
45 | 53 | } |
|
46 | 54 | Button { |
|
55 | text: "animation duration +" | |
|
56 | onClicked: chart.animationDuration = chart.animationDuration + 1000; | |
|
57 | } | |
|
58 | Button { | |
|
59 | text: "animation duration -" | |
|
60 | onClicked: chart.animationDuration = chart.animationDuration - 1000; | |
|
61 | } | |
|
62 | Button { | |
|
63 | text: "animation curve" | |
|
64 | onClicked: chart.animationEasingCurve.type = nextEasingType(); | |
|
65 | } | |
|
66 | Button { | |
|
47 | 67 | text: "background color" |
|
48 | 68 | onClicked: chart.backgroundColor = main.nextColor(); |
|
49 | 69 | } |
General Comments 0
You need to be logged in to leave comments.
Login now