diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-08-23 17:32:28 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-08-24 17:57:55 +0000 |
commit | 80922268abef161ed7e32dcc8e64d2b7bc63f1e8 (patch) | |
tree | 712481f20c58da231a5acdb9bd2692c879360233 | |
parent | f3e9fbd74899c6fa98d95ef82a11eab38b1a66a9 (diff) |
QmlDesigner: Implement ObjectNodeInstance::stateInstances() for StateGroup
Change-Id: Ia6e239530d399da34ab63253762e3ebd2a79f4db
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp index d574d5f979..e5796a6341 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp @@ -46,6 +46,10 @@ #include <QLibraryInfo> #include <QJSValue> +#include <private/qquickstategroup_p.h> + +#include <qquickitem.h> + static bool isSimpleExpression(const QString &expression) { if (expression.startsWith(QStringLiteral("{"))) @@ -656,8 +660,18 @@ QList<QQuickItem *> ObjectNodeInstance::allItemsRecursive() const return QList<QQuickItem *>(); } -QList<ServerNodeInstance> ObjectNodeInstance::stateInstances() const +QList<ServerNodeInstance> ObjectNodeInstance::stateInstances() const { + if (auto group = qobject_cast<QQuickStateGroup*>(object())) { + QList<ServerNodeInstance> instanceList; + const QList<QQuickState *> stateList = group->states(); + for (QQuickState *state : stateList) { + if (state && nodeInstanceServer()->hasInstanceForObject(state)) + instanceList.append(nodeInstanceServer()->instanceForObject(state)); + } + return instanceList; + } + return QList<ServerNodeInstance>(); } |