@@ -26,8 +26,15 @@ Item {
27 property int animDuration: 10
27 property int animDuration: 10
31+ objectName: "infographicPrivate"
29− property bool __useDotAnimation: true
32+ property bool useDotAnimation: true
30− property int __circleModifier: __useDotAnimation ? 1 : 2
33+ property int circleModifier: useDotAnimation ? 1 : 2
34+ property bool animating: dotHideAnimTimer.running
35+ || dotShowAnimTimer.running
36+ || circleChangeAnimTimer.running
32 Connections {
39 Connections {
33 target: model
40 target: model
@@ -46,7 +53,7 @@ Item {
46 dotHideAnimTimer.stop()
53 dotHideAnimTimer.stop()
47 notification.hideAnim.stop()
54 notification.hideAnim.stop()
49− if (__useDotAnimation) {
56+ if (d.useDotAnimation) {
50 dotShowAnimTimer.startFromBeginning()
57 dotShowAnimTimer.startFromBeginning()
52 notification.showAnim.start()
59 notification.showAnim.start()
@@ -57,7 +64,7 @@ Item {
57 circleChangeAnimTimer.stop()
64 circleChangeAnimTimer.stop()
58 notification.showAnim.stop()
65 notification.showAnim.stop()
60− if (__useDotAnimation) {
67+ if (d.useDotAnimation) {
61 dotHideAnimTimer.startFromBeginning()
68 dotHideAnimTimer.startFromBeginning()
63 circleChangeAnimTimer.startFromBeginning()
70 circleChangeAnimTimer.startFromBeginning()
@@ -148,21 +155,21 @@ Item {
148 property: "opacity"
155 property: "opacity"
149 to: pastCircle.circleOpacity
156 to: pastCircle.circleOpacity
150 easing.type: Easing.OutCurve
157 easing.type: Easing.OutCurve
151− duration: circleChangeAnimTimer.interval * __circleModifier
158+ duration: circleChangeAnimTimer.interval * d.circleModifier
153 PropertyAnimation {
160 PropertyAnimation {
154 target: pastCircle
161 target: pastCircle
155 property: "scale"
162 property: "scale"
156 to: modelData
163 to: modelData
157 easing.type: Easing.OutCurve
164 easing.type: Easing.OutCurve
158− duration: circleChangeAnimTimer.interval * __circleModifier
165+ duration: circleChangeAnimTimer.interval * d.circleModifier
160 ColorAnimation {
167 ColorAnimation {
161 target: pastCircle
168 target: pastCircle
162 property: "color"
169 property: "color"
163 to: Gradient.threeColorByIndex(index, count, infographic.model.secondColor)
170 to: Gradient.threeColorByIndex(index, count, infographic.model.secondColor)
164 easing.type: Easing.OutCurve
171 easing.type: Easing.OutCurve
165− duration: circleChangeAnimTimer.interval * __circleModifier
172+ duration: circleChangeAnimTimer.interval * d.circleModifier
@@ -209,21 +216,21 @@ Item {
209 property: "opacity"
216 property: "opacity"
210 to: presentCircle.circleOpacity
217 to: presentCircle.circleOpacity
211 easing.type: Easing.OutCurve
218 easing.type: Easing.OutCurve
212− duration: circleChangeAnimTimer.interval * __circleModifier
219+ duration: circleChangeAnimTimer.interval * d.circleModifier
214 PropertyAnimation {
221 PropertyAnimation {
215 target: presentCircle
222 target: presentCircle
216 property: "scale"
223 property: "scale"
217 to: modelData
224 to: modelData
218 easing.type: Easing.OutCurve
225 easing.type: Easing.OutCurve
219− duration: circleChangeAnimTimer.interval * __circleModifier
226+ duration: circleChangeAnimTimer.interval * d.circleModifier
221 ColorAnimation {
228 ColorAnimation {
222 target: presentCircle
229 target: presentCircle
223 property: "color"
230 property: "color"
224 to: Gradient.threeColorByIndex(index, infographic.model.currentDay, infographic.model.firstColor)
231 to: Gradient.threeColorByIndex(index, infographic.model.currentDay, infographic.model.firstColor)
225 easing.type: Easing.OutCurve
232 easing.type: Easing.OutCurve
226− duration: circleChangeAnimTimer.interval * __circleModifier
233+ duration: circleChangeAnimTimer.interval * d.circleModifier
@@ -385,7 +392,7 @@ Item {
385 from: notification.baseOpacity
392 from: notification.baseOpacity
387 duration: notification.duration * dots.count
394 duration: notification.duration * dots.count
388− onStopped: if (!__useDotAnimation) infographic.model.readyForDataChange()
395+ onStopped: if (!d.useDotAnimation) infographic.model.readyForDataChange()
@@ -394,10 +401,8 @@ Item {
394 anchors.fill: dataCircle
401 anchors.fill: dataCircle
396 onDoubleClicked: {
403 onDoubleClicked: {
397− if (!dotHideAnimTimer.running &&
404+ if (!d.animating) {
398− !dotShowAnimTimer.running &&
405+ d.useDotAnimation = false
399− !circleChangeAnimTimer.running) {
400− __useDotAnimation = false
401 infographic.model.nextDataSource()
406 infographic.model.nextDataSource()