diff options
-rw-r--r-- | src/imports/timeline/qquickkeyframe.cpp | 2 | ||||
-rw-r--r-- | src/imports/timeline/qquicktimeline.cpp | 11 | ||||
-rw-r--r-- | 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<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(); |