From db9b1590c4d866504ee129e07339751f69128071 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 29 Apr 2019 16:39:55 +0200 Subject: Refresh timeline when keyframe is changed Task-number: QDS-231 Change-Id: Ic7be286d7245254f5491c40bbc208c76ea17690f Reviewed-by: Tim Jenssen --- src/imports/timeline/qquickkeyframe.cpp | 2 +- src/imports/timeline/qquicktimeline.cpp | 11 +++++++++-- src/imports/timeline/qquicktimeline_p.h | 2 ++ 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(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(); -- cgit v1.2.3