From 1077ceefd84a4ef1e279d70b7a25ad9eb3ee56ac Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 20 Apr 2021 16:18:21 +0200 Subject: [PATCH] QmlDesigner: Add insertKeyframe to QmlTimeline Change-Id: I405cab4ece5420098ee9d5b3ce823d2b4c1d9339 Reviewed-by: Knud Dollereder Reviewed-by: Thomas Hartmann --- .../qmldesigner/designercore/include/qmltimeline.h | 2 ++ .../qmldesigner/designercore/model/qmltimeline.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/plugins/qmldesigner/designercore/include/qmltimeline.h b/src/plugins/qmldesigner/designercore/include/qmltimeline.h index 59342bcb044..1d9bb4b718f 100644 --- a/src/plugins/qmldesigner/designercore/include/qmltimeline.h +++ b/src/plugins/qmldesigner/designercore/include/qmltimeline.h @@ -74,6 +74,8 @@ public: bool hasKeyframeGroup(const ModelNode &node, const PropertyName &propertyName) const; bool hasKeyframeGroupForTarget(const ModelNode &node) const; + void insertKeyframe(const ModelNode &target, const PropertyName &propertyName); + private: void addKeyframeGroupIfNotExists(const ModelNode &node, const PropertyName &propertyName); QList allKeyframeGroups() const; diff --git a/src/plugins/qmldesigner/designercore/model/qmltimeline.cpp b/src/plugins/qmldesigner/designercore/model/qmltimeline.cpp index 68738b06de4..d84f3387411 100644 --- a/src/plugins/qmldesigner/designercore/model/qmltimeline.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmltimeline.cpp @@ -294,6 +294,19 @@ bool QmlTimeline::hasKeyframeGroupForTarget(const ModelNode &node) const return false; } +void QmlTimeline::insertKeyframe(const ModelNode &target, const PropertyName &propertyName) +{ + ModelNode targetNode = target; + QmlTimelineKeyframeGroup timelineFrames(keyframeGroup(targetNode, propertyName)); + + QTC_ASSERT(timelineFrames.isValid(), return ); + + const qreal frame = modelNode().auxiliaryData("currentFrame@NodeInstance").toReal(); + const QVariant value = QmlObjectNode(targetNode).instanceValue(propertyName); + + timelineFrames.setValue(value, frame); +} + QList QmlTimeline::allKeyframeGroups() const { QList returnList;