diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2017-11-14 12:26:16 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2017-11-14 14:54:32 +0000 |
commit | dbe7ea7d8868b624c55c758a8c3c580e75c57172 (patch) | |
tree | 594bdf961ddbcfc2c5e778c9b4929882c6376bb8 /src | |
parent | 6b5192bd529dca15ffd4b13f28f32592c60cefc2 (diff) |
QmlDesigner: Add enablers for frame scaling, moving
Change-Id: I24777f47f2f3826a21c7f5dd9984372b1738d2e3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src')
4 files changed, 38 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframes.h b/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframes.h index 06d3565fa2..52228e6ba9 100644 --- a/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframes.h +++ b/src/plugins/qmldesigner/designercore/include/qmltimelinekeyframes.h @@ -65,6 +65,9 @@ public: static bool isValidKeyframe(const ModelNode &node); static QmlTimelineFrames keyframesForKeyframe(const ModelNode &node); + + void moveAllFrames(qreal offset); + void scaleAllFrames(qreal factor); }; } //QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/include/qmltimelinemutator.h b/src/plugins/qmldesigner/designercore/include/qmltimelinemutator.h index 1d184fcce1..291381fece 100644 --- a/src/plugins/qmldesigner/designercore/include/qmltimelinemutator.h +++ b/src/plugins/qmldesigner/designercore/include/qmltimelinemutator.h @@ -57,6 +57,9 @@ public: qreal minActualFrame(const ModelNode &target) const; qreal maxActualFrame(const ModelNode &target) const; + void moveAllFrames(const ModelNode &target, qreal offset); + void scaleAllFrames(const ModelNode &target, qreal factor); + QList<ModelNode> allTargets() const; QList<QmlTimelineFrames> framesForTarget(const ModelNode &target) const; void destroyFramesForTarget(const ModelNode &target); diff --git a/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframes.cpp b/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframes.cpp index b2cab942d3..784a9f8bf8 100644 --- a/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframes.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmltimelinekeyframes.cpp @@ -182,4 +182,23 @@ QmlTimelineFrames QmlTimelineFrames::keyframesForKeyframe(const ModelNode &node) return QmlTimelineFrames(); } +void QmlTimelineFrames::moveAllFrames(qreal offset) +{ + for (const ModelNode &childNode : modelNode().defaultNodeListProperty().toModelNodeList()) { + auto property = childNode.variantProperty("frame"); + if (property.isValid()) + property.setValue(property.value().toReal() + offset); + } +} + +void QmlTimelineFrames::scaleAllFrames(qreal factor) +{ + for (const ModelNode &childNode : modelNode().defaultNodeListProperty().toModelNodeList()) { + auto property = childNode.variantProperty("frame"); + + if (property.isValid()) + property.setValue(property.value().toReal() * factor); + } +} + } // QmlDesigner diff --git a/src/plugins/qmldesigner/designercore/model/qmltimelinemutator.cpp b/src/plugins/qmldesigner/designercore/model/qmltimelinemutator.cpp index ec6c2c6b02..07fc0004d2 100644 --- a/src/plugins/qmldesigner/designercore/model/qmltimelinemutator.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmltimelinemutator.cpp @@ -156,6 +156,19 @@ qreal QmlTimelineMutator::maxActualFrame(const ModelNode &target) const return max; } +void QmlTimelineMutator::moveAllFrames(const ModelNode &target, qreal offset) +{ + for (QmlTimelineFrames &frames : framesForTarget(target)) + frames.moveAllFrames(offset); + +} + +void QmlTimelineMutator::scaleAllFrames(const ModelNode &target, qreal factor) +{ + for (QmlTimelineFrames &frames : framesForTarget(target)) + frames.scaleAllFrames(factor); +} + QList<ModelNode> QmlTimelineMutator::allTargets() const { QList<ModelNode> result; |