diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp index 96d37f395a2..19dad57661f 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp @@ -221,7 +221,8 @@ qreal TimelineGraphicsScene::snap(qreal frame, bool snapToPlayhead) return playheadFrame; } -void TimelineGraphicsScene::setCurrenFrame(const QmlTimeline &timeline, qreal frame) +// set the playhead frame and return the updated frame in case of snapping +qreal TimelineGraphicsScene::setCurrenFrame(const QmlTimeline &timeline, qreal frame) { if (timeline.isValid()) { if (QApplication::keyboardModifiers() & Qt::ShiftModifier) // playhead snapping @@ -232,6 +233,9 @@ void TimelineGraphicsScene::setCurrenFrame(const QmlTimeline &timeline, qreal fr } invalidateCurrentValues(); + emitStatusBarPlayheadFrameChanged(frame); + + return frame; } void TimelineGraphicsScene::setCurrentFrame(int frame) @@ -246,8 +250,6 @@ void TimelineGraphicsScene::setCurrentFrame(int frame) } invalidateCurrentValues(); - - emitStatusBarPlayheadFrameChanged(frame); } void TimelineGraphicsScene::setStartFrame(int frame) @@ -367,11 +369,10 @@ void TimelineGraphicsScene::commitCurrentFrame(qreal frame) QmlTimeline timeline(timelineModelNode()); if (timeline.isValid()) { + frame = setCurrenFrame(timeline, qRound(frame)); timeline.modelNode().setAuxiliaryData("currentFrame@NodeInstance", qRound(frame)); - setCurrenFrame(timeline, qRound(frame)); invalidateCurrentValues(); } - emitStatusBarPlayheadFrameChanged(int(frame)); } QList TimelineGraphicsScene::selectedKeyframes() const diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h index ba0c10bcd56..4e33ce362ee 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h +++ b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h @@ -73,7 +73,7 @@ public: void setWidth(int width); void invalidateLayout(); - void setCurrenFrame(const QmlTimeline &timeline, qreal frame); + qreal setCurrenFrame(const QmlTimeline &timeline, qreal frame); void setCurrentFrame(int frame); void setStartFrame(int frame); void setEndFrame(int frame);