##// END OF EJS Templates
Fixed animation to work when adding a new series....
Mika Salmela -
r2478:5245fa8e4b16
parent child
Show More
@@ -22,33 +22,32
22 22 #include "boxplotchartitem_p.h"
23 23 #include "boxwhiskersdata_p.h"
24 24 #include "boxwhiskersanimation_p.h"
25 #include <QDebug>
25 26
26 27 QTCOMMERCIALCHART_BEGIN_NAMESPACE
27 28
28 29 BoxPlotAnimation::BoxPlotAnimation(BoxPlotChartItem *item)
29 // : ChartAnimation(item),
30 30 : m_item(item)
31 31 {
32 32 }
33 33
34 //BoxPlotAnimation::BoxPlotAnimation(BoxWhiskers *box)
35 // : ChartAnimation(box),
36 // m_box(box)
37 //{
38 //}
39
40 34 BoxPlotAnimation::~BoxPlotAnimation()
41 35 {
42 36 }
43 37
44 38 void BoxPlotAnimation::addBox(BoxWhiskers *box)
45 39 {
46 BoxWhiskersAnimation *animation = new BoxWhiskersAnimation(box);
47 m_animations.insert(box, animation);
48
49 BoxWhiskersData start;
50 start.m_median = box->m_data.m_median;
51 animation->setup(start, box->m_data);
40 BoxWhiskersAnimation *animation = m_animations.value(box);
41 if (!animation) {
42 animation = new BoxWhiskersAnimation(box);
43 m_animations.insert(box, animation);
44 BoxWhiskersData start;
45 start.m_median = box->m_data.m_median;
46 animation->setup(start, box->m_data);
47 } else {
48 animation->stop();
49 animation->setEndData(box->m_data);
50 }
52 51 }
53 52
54 53 ChartAnimation *BoxPlotAnimation::boxAnimation(BoxWhiskers *box)
@@ -57,7 +56,6 ChartAnimation *BoxPlotAnimation::boxAnimation(BoxWhiskers *box)
57 56 return m_animations.value(box);
58 57 }
59 58
60
61 59 //#include "moc_boxplotanimation_p.cpp"
62 60
63 61 QTCOMMERCIALCHART_END_NAMESPACE
@@ -22,6 +22,7
22 22 #include "boxplotanimation_p.h"
23 23 #include "boxplotchartitem_p.h"
24 24 #include "boxwhiskersdata_p.h"
25 #include <QDebug>
25 26
26 27 Q_DECLARE_METATYPE(QVector<QRectF>)
27 28 Q_DECLARE_METATYPE(QTCOMMERCIALCHART_NAMESPACE::BoxWhiskersData)
@@ -80,7 +81,8 QVariant BoxWhiskersAnimation::interpolated(const QVariant &from, const QVariant
80 81 result.m_minX = endData.m_minX;
81 82 result.m_maxY = endData.m_maxY;
82 83 result.m_minY = endData.m_minY;
83 //result.m_domainSize = endData.m_domainSize;
84 result.m_seriesIndex = endData.m_seriesIndex;
85 result.m_seriesCount = endData.m_seriesCount;
84 86
85 87 return qVariantFromValue(result);
86 88 }
@@ -93,13 +95,18 void BoxWhiskersAnimation::updateCurrentValue(const QVariant &value)
93 95
94 96 void BoxWhiskersAnimation::setup(const BoxWhiskersData &startData, const BoxWhiskersData &endData)
95 97 {
96 if (endData.m_index == 0) {
97 qDebug() << "BoxPlotAnimation::setup m_upperExtreme" << endData.m_upperExtreme;
98 }
99 98 setKeyValueAt(0.0, qVariantFromValue(startData));
100 99 setKeyValueAt(1.0, qVariantFromValue(endData));
101 100 }
102 101
102 void BoxWhiskersAnimation::setEndData(const BoxWhiskersData &endData)
103 {
104 if (state() != QAbstractAnimation::Stopped)
105 stop();
106
107 setEndValue(qVariantFromValue(endData));
108 }
109
103 110 #include "moc_boxwhiskersanimation_p.cpp"
104 111
105 112 QTCOMMERCIALCHART_END_NAMESPACE
@@ -52,6 +52,7 public: // from QVariantAnimation
52 52 virtual void updateCurrentValue(const QVariant &value);
53 53
54 54 void setup(const BoxWhiskersData &startData, const BoxWhiskersData &endData);
55 void setEndData(const BoxWhiskersData &endData);
55 56
56 57 protected:
57 58 BoxPlotChartItem *m_item;
@@ -73,7 +73,6 void BoxWhiskers::setLayout(const BoxWhiskersData &data)
73 73 // if (m_data.m_index == 1)
74 74 // qDebug() << "BoxWhiskers::setLayout";
75 75 updateGeometry();
76 //update(0.0, 0.0, m_data.m_domainSize.width(), m_data.m_domainSize.height());
77 76 update();
78 77 }
79 78
@@ -130,9 +129,6 void BoxWhiskers::updateGeometry()
130 129
131 130 QPainterPath path;
132 131
133 // TODO: Dirty hack
134 if (m_data.m_seriesCount == 0) m_data.m_seriesCount = 1;
135
136 132 qreal columnWidth = 1.0 / m_data.m_seriesCount;
137 133 qreal left = 0.25 * columnWidth + columnWidth * m_data.m_seriesIndex;
138 134 qreal right = 0.75 * columnWidth + columnWidth * m_data.m_seriesIndex;
General Comments 0
You need to be logged in to leave comments. Login now