aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2019-04-29 16:39:55 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2019-04-30 12:37:27 +0000
commitdb9b1590c4d866504ee129e07339751f69128071 (patch)
tree180585095e8c814f88716178e802d41360bf4288
parentc881391ce3cde8978bd13ca166cc13b5068b1901 (diff)
Refresh timeline when keyframe is changed
Task-number: QDS-231 Change-Id: Ic7be286d7245254f5491c40bbc208c76ea17690f Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r--src/imports/timeline/qquickkeyframe.cpp2
-rw-r--r--src/imports/timeline/qquicktimeline.cpp11
-rw-r--r--src/imports/timeline/qquicktimeline_p.h2
3 files changed, 12 insertions, 3 deletions
diff --git a/src/imports/timeline/qquickkeyframe.cpp b/src/imports/timeline/qquickkeyframe.cpp
index fc050f3..a8c72c4 100644
--- a/src/imports/timeline/qquickkeyframe.cpp
+++ b/src/imports/timeline/qquickkeyframe.cpp
@@ -264,7 +264,7 @@ void QQuickKeyframeGroup::reset()
auto *timeline = qobject_cast<QQuickTimeline*>(parent());
if (timeline)
- setProperty(timeline->currentFrame());
+ timeline->reevaulate();
}
void QQuickKeyframeGroup::setupKeyframes()
diff --git a/src/imports/timeline/qquicktimeline.cpp b/src/imports/timeline/qquicktimeline.cpp
index 938952d..ec1d561 100644
--- a/src/imports/timeline/qquicktimeline.cpp
+++ b/src/imports/timeline/qquicktimeline.cpp
@@ -234,11 +234,18 @@ void QQuickTimeline::setCurrentFrame(qreal frame)
return;
d->currentFrame = frame;
+ reevaulate();
+
+ emit currentFrameChanged();
+}
+
+void QQuickTimeline::reevaulate()
+{
+ Q_D(QQuickTimeline);
+
if (d->componentComplete && d->enabled)
for (auto keyFrames : d->keyframes)
keyFrames->setProperty(d->currentFrame);
-
- emit currentFrameChanged();
}
void QQuickTimeline::init()
diff --git a/src/imports/timeline/qquicktimeline_p.h b/src/imports/timeline/qquicktimeline_p.h
index 85f5b93..e73d0e0 100644
--- a/src/imports/timeline/qquicktimeline_p.h
+++ b/src/imports/timeline/qquicktimeline_p.h
@@ -84,6 +84,8 @@ public:
qreal currentFrame() const;
void setCurrentFrame(qreal);
+ void reevaulate();
+
void init();
void reset();