aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-08-23 17:32:28 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2022-08-24 17:57:55 +0000
commit80922268abef161ed7e32dcc8e64d2b7bc63f1e8 (patch)
tree712481f20c58da231a5acdb9bd2692c879360233
parentf3e9fbd74899c6fa98d95ef82a11eab38b1a66a9 (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.cpp16
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>();
}