diff options
author | Henning Gruendl <henning.gruendl@qt.io> | 2022-09-22 17:43:15 +0200 |
---|---|---|
committer | Henning Gründl <henning.gruendl@qt.io> | 2022-09-22 20:24:56 +0000 |
commit | 754be28e365e74d5462139eae418b0d7b7ed7af5 (patch) | |
tree | 1b8a0594b72ca05ecf62856a23b699e1661351fb /share/qtcreator/qml/qmlpuppet/qml2puppet/instances | |
parent | e28810b50c196cf1fd4035685f882ff02a504b09 (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/qmlpuppet/qml2puppet/instances')
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.cpp | 16 | ||||
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/qmlstatenodeinstance.h | 4 |
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); |