aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/components/timelineeditor
diff options
context:
space:
mode:
authorMahmoud Badri <mahmoud.badri@qt.io>2019-10-03 14:36:07 +0300
committerMahmoud Badri <mahmoud.badri@qt.io>2019-10-07 07:15:40 +0000
commit979d14525c8b81b4cf337154c46b5ca17c6a7478 (patch)
treed910fe404950890b70969ab02f31ec3808b4da4f /src/plugins/qmldesigner/components/timelineeditor
parent2c2ffa8273bbf5da041002f64a76dfa223705c29 (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.cpp11
-rw-r--r--src/plugins/qmldesigner/components/timelineeditor/timelinegraphicsscene.h2
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);