QmlDesigner: Use QmlTimeline::insertKeyframe in TimelineView

Change-Id: I22df18aba407b9c49a3aceb46169fd90efe73942
Reviewed-by: Knud Dollereder <knud.dollereder@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2021-04-20 16:23:06 +02:00
parent 1077ceefd8
commit 8ae81f5a40

View File

@@ -430,23 +430,11 @@ void TimelineView::customNotification(const AbstractView * /*view*/,
void TimelineView::insertKeyframe(const ModelNode &target, const PropertyName &propertyName) void TimelineView::insertKeyframe(const ModelNode &target, const PropertyName &propertyName)
{ {
QmlTimeline timeline = widget()->graphicsScene()->currentTimeline(); QmlTimeline timeline = currentTimeline();
ModelNode targetNode = target;
if (timeline.isValid() && targetNode.isValid()
&& QmlObjectNode::isValidQmlObjectNode(targetNode)) {
executeInTransaction("TimelineView::insertKeyframe", [=, &timeline, &targetNode]() {
targetNode.validId();
QmlTimelineKeyframeGroup timelineFrames( if (timeline.isValid() && target.isValid() && QmlObjectNode::isValidQmlObjectNode(target)) {
timeline.keyframeGroup(targetNode, propertyName)); executeInTransaction("TimelineView::insertKeyframe", [=, &timeline, &target]() {
timeline.insertKeyframe(target, propertyName);
QTC_ASSERT(timelineFrames.isValid(), return );
const qreal frame
= timeline.modelNode().auxiliaryData("currentFrame@NodeInstance").toReal();
const QVariant value = QmlObjectNode(targetNode).instanceValue(propertyName);
timelineFrames.setValue(value, frame);
}); });
} }
} }