aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 d574d5f9792..e5796a63410 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>();
}