aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2017-11-14 12:26:16 +0100
committerThomas Hartmann <thomas.hartmann@qt.io>2017-11-14 14:54:32 +0000
commitdbe7ea7d8868b624c55c758a8c3c580e75c57172 (patch)
tree594bdf961ddbcfc2c5e778c9b4929882c6376bb8 /src
parent6b5192bd529dca15ffd4b13f28f32592c60cefc2 (diff)
QmlDesigner: Add enablers for frame scaling, moving
Change-Id: I24777f47f2f3826a21c7f5dd9984372b1738d2e3 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/qmldesigner/designercore/include/qmltimelinekeyframes.h3
-rw-r--r--src/plugins/qmldesigner/designercore/include/qmltimelinemutator.h3
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmltimelinekeyframes.cpp19
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmltimelinemutator.cpp13
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;