diff options
author | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-10-03 14:36:07 +0300 |
---|---|---|
committer | Mahmoud Badri <mahmoud.badri@qt.io> | 2019-10-07 07:15:40 +0000 |
commit | 979d14525c8b81b4cf337154c46b5ca17c6a7478 (patch) | |
tree | d910fe404950890b70969ab02f31ec3808b4da4f /src/plugins/qmldesigner/components/timelineeditor | |
parent | 2c2ffa8273bbf5da041002f64a76dfa223705c29 (diff) |
Make animation conform to playhead snapping
When playhead snapping in on, make animation update based on the snapped
frames (not in between frames). Also the current frame text shows just
the snapped frames values.
Task-number: QDS-1068
Change-Id: I6309975fda3d96ce3bc2ae1582b42b62b340112c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner/components/timelineeditor')
-rw-r--r-- | src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp | 11 | ||||
-rw-r--r-- | src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h | 2 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.cpp index 96d37f395a..19dad57661 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<TimelineKeyframeItem *> TimelineGraphicsScene::selectedKeyframes() const diff --git a/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h b/src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h index ba0c10bcd5..4e33ce362e 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); |