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;