aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator/qml
diff options
context:
space:
mode:
authorHenning Gruendl <henning.gruendl@qt.io>2022-09-22 17:43:15 +0200
committerHenning Gründl <henning.gruendl@qt.io>2022-09-22 20:24:56 +0000
commit754be28e365e74d5462139eae418b0d7b7ed7af5 (patch)
tree1b8a0594b72ca05ecf62856a23b699e1661351fb /share/qtcreator/qml
parente28810b50c196cf1fd4035685f882ff02a504b09 (diff)
QmlDesigner: Fix state shown after reordering
Fix an issue which caused the wrong state to be shown in the form editor after reordering the states in the state editor. Task-number: QDS-7753 Change-Id: I220bb5b11beb4f9bfc6a85069a688c9ff2984d8f Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'share/qtcreator/qml')
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp16
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h4
2 files changed, 20 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
index 9b00f3c43a..bc28b7076b 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp
@@ -118,5 +118,21 @@ bool QmlStateNodeInstance::resetStateProperty(const ObjectNodeInstance::Pointer
return QmlPrivateGate::States::resetStateProperty(object(), target->object(), propertyName, resetValue);
}
+void QmlStateNodeInstance::reparent(const ObjectNodeInstance::Pointer &oldParentInstance,
+ const PropertyName &oldParentProperty,
+ const ObjectNodeInstance::Pointer &newParentInstance,
+ const PropertyName &newParentProperty)
+{
+ ServerNodeInstance oldState = nodeInstanceServer()->activeStateInstance();
+
+ ObjectNodeInstance::reparent(oldParentInstance,
+ oldParentProperty,
+ newParentInstance,
+ newParentProperty);
+
+ if (oldState.isValid())
+ oldState.activateState();
+}
+
} // namespace Internal
} // namespace QmlDesigner
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h
index 9870223fa7..800acfcad3 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h
@@ -49,6 +49,10 @@ public:
bool updateStateBinding(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QString &expression) override;
bool resetStateProperty(const ObjectNodeInstance::Pointer &target, const PropertyName &propertyName, const QVariant &resetValue) override;
+ void reparent(const ObjectNodeInstance::Pointer &oldParentInstance,
+ const PropertyName &oldParentProperty,
+ const ObjectNodeInstance::Pointer &newParentInstance,
+ const PropertyName &newParentProperty) override;
protected:
QmlStateNodeInstance(QObject *object);