QmlDesigner: Create transitions with proper versions

The versions were hard coded which leads to issues.

Task-number: QDS-6760
Change-Id: I94c3599348b996bb700da636cd63e74ea4c02be6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2022-06-22 17:13:25 +02:00
parent 5fa46d6659
commit a0d474f2de

View File

@@ -251,50 +251,54 @@ ModelNode TransitionEditorView::addNewTransition()
if (!idPropertyList.isEmpty()) { if (!idPropertyList.isEmpty()) {
executeInTransaction( executeInTransaction(
" TransitionEditorView::addNewTransition", [&transition, idPropertyList, root, this]() { " TransitionEditorView::addNewTransition", [&transition, idPropertyList, root, this]() {
transition = createModelNode("QtQuick.Transition",
2,
0,
{{
"from",
"*",
},
{
"to",
"*",
}});
transition.setAuxiliaryData("transitionDuration", 2000);
transition.validId();
root.nodeListProperty("transitions").reparentHere(transition);
for (auto it = idPropertyList.cbegin(); it != idPropertyList.cend(); ++it) { const NodeMetaInfo transitionMetaInfo = model()->metaInfo("QtQuick.Transition");
ModelNode parallelAnimation = createModelNode("QtQuick.ParallelAnimation", transition = createModelNode("QtQuick.Transition",
2, transitionMetaInfo.majorVersion(),
12); transitionMetaInfo.minorVersion(),
transition.defaultNodeAbstractProperty().reparentHere(parallelAnimation); {{
for (const QString &property : it.value()) { "from",
ModelNode sequentialAnimation "*",
= createModelNode("QtQuick.SequentialAnimation", 2, 12); },
parallelAnimation.defaultNodeAbstractProperty().reparentHere( {
sequentialAnimation); "to",
"*",
}});
transition.setAuxiliaryData("transitionDuration", 2000);
transition.validId();
root.nodeListProperty("transitions").reparentHere(transition);
ModelNode pauseAnimation = createModelNode("QtQuick.PauseAnimation", for (auto it = idPropertyList.cbegin(); it != idPropertyList.cend(); ++it) {
2, ModelNode parallelAnimation = createModelNode("QtQuick.ParallelAnimation");
12, transition.defaultNodeAbstractProperty().reparentHere(parallelAnimation);
{{"duration", 50}}); for (const QString &property : it.value()) {
sequentialAnimation.defaultNodeAbstractProperty().reparentHere( ModelNode sequentialAnimation
pauseAnimation); = createModelNode("QtQuick.SequentialAnimation");
parallelAnimation.defaultNodeAbstractProperty().reparentHere(
sequentialAnimation);
ModelNode propertyAnimation = createModelNode("QtQuick.PropertyAnimation", const NodeMetaInfo pauseMetaInfo = model()->metaInfo("QtQuick.PauseAnimation");
2,
12, ModelNode pauseAnimation = createModelNode("QtQuick.PauseAnimation",
{{"property", property}, pauseMetaInfo.majorVersion(),
{"duration", 150}}); pauseMetaInfo.minorVersion(),
propertyAnimation.bindingProperty("target").setExpression(it.key()); {{"duration", 50}});
sequentialAnimation.defaultNodeAbstractProperty().reparentHere( sequentialAnimation.defaultNodeAbstractProperty().reparentHere(
propertyAnimation); pauseAnimation);
}
const NodeMetaInfo propertyMetaInfo = model()->metaInfo("QtQuick.PauseAnimation");
ModelNode propertyAnimation = createModelNode("QtQuick.PropertyAnimation",
propertyMetaInfo.majorVersion(),
propertyMetaInfo.minorVersion(),
{{"property", property},
{"duration", 150}});
propertyAnimation.bindingProperty("target").setExpression(it.key());
sequentialAnimation.defaultNodeAbstractProperty().reparentHere(
propertyAnimation);
} }
}
}); });
} else { } else {
QString properties; QString properties;