aboutsummaryrefslogtreecommitdiffstats
path: root/share/qtcreator
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-04-21 08:06:43 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-04-21 10:57:26 +0000
commit3caafb2b8194ab28c5ee9f9772abd6233aa3845d (patch)
tree7bafa729d4faaaa020e75699e48cff843ac8c857 /share/qtcreator
parentdbccc57597169246827c5ec6087ad7316c2ad4e1 (diff)
QmlDesigner: Inspect components for existing states
For each created items we retrieve a list of the names of all existing states. Task-number: QDS-1978 Change-Id: I8e85e439fce3c6204cb8bcf69f6be847cc8dae5c Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'share/qtcreator')
-rw-r--r--share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h1
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp1
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp5
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h1
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp14
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h1
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp8
-rw-r--r--share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.h1
8 files changed, 32 insertions, 0 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h b/share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h
index eb1bd41051..b5cf157a8c 100644
--- a/share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h
+++ b/share/qtcreator/qml/qmlpuppet/interfaces/commondefines.h
@@ -34,6 +34,7 @@ enum InformationName
{
NoName,
NoInformationChange = NoName,
+ AllStates,
Size,
BoundingRect,
Transform,
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
index cfdc513c1b..813057e10b 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/nodeinstanceserver.cpp
@@ -1061,6 +1061,7 @@ static QVector<InformationContainer> createInformationVector(const QList<ServerN
informationVector.append(InformationContainer(instance.instanceId(), PenWidth, instance.penWidth()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredByChildren, instance.isAnchoredByChildren()));
informationVector.append(InformationContainer(instance.instanceId(), IsAnchoredBySibling, instance.isAnchoredBySibling()));
+ informationVector.append(InformationContainer(instance.instanceId(), AllStates, instance.allStates()));
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.fill"), instance.hasAnchor("anchors.fill")));
informationVector.append(InformationContainer(instance.instanceId(), HasAnchor, PropertyName("anchors.centerIn"), instance.hasAnchor("anchors.centerIn")));
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
index 7fabfcf903..87e0cc4d71 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp
@@ -871,6 +871,11 @@ void ObjectNodeInstance::deactivateState()
{
}
+QStringList ObjectNodeInstance::allStates() const
+{
+ return {};
+}
+
void ObjectNodeInstance::populateResetHashes()
{
QmlPrivateGate::registerCustomData(object());
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
index d716c4d755..3026ffefce 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h
@@ -148,6 +148,7 @@ public:
virtual void activateState();
virtual void deactivateState();
+ virtual QStringList allStates() const;
void populateResetHashes();
bool hasValidResetBinding(const PropertyName &propertyName) const;
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
index f697052575..cfa1b1eac0 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.cpp
@@ -232,6 +232,20 @@ QList<QQuickItem *> QuickItemNodeInstance::allItemsRecursive() const
return itemList;
}
+QStringList QuickItemNodeInstance::allStates() const
+{
+ QStringList list;
+
+ QList<QObject*> stateList = DesignerSupport::statesForItem(quickItem());
+ for (QObject *state : stateList) {
+ QQmlProperty property(state, "name");
+ if (property.isValid())
+ list.append(property.read().toString());
+ }
+
+ return list;
+}
+
QRectF QuickItemNodeInstance::contentItemBoundingBox() const
{
if (contentItem()) {
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
index 8aab24178b..f42e45a8ff 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/quickitemnodeinstance.h
@@ -96,6 +96,7 @@ public:
void doComponentComplete() override;
QList<QQuickItem*> allItemsRecursive() const override;
+ QStringList allStates() const override;
protected:
explicit QuickItemNodeInstance(QQuickItem*);
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp
index 483cf581c1..0c9f5721a5 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp
@@ -661,6 +661,14 @@ QList<ServerNodeInstance> ServerNodeInstance::stateInstances() const
return m_nodeInstance->stateInstances();
}
+QStringList ServerNodeInstance::allStates() const
+{
+ if (isValid())
+ return m_nodeInstance->allStates();
+
+ return {};
+}
+
Internal::ObjectNodeInstance::Pointer ServerNodeInstance::internalInstance() const
{
return m_nodeInstance;
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.h
index c85ba9a2b8..ceb3b1e5b1 100644
--- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.h
+++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.h
@@ -164,6 +164,7 @@ public:
QSharedPointer<Internal::ObjectNodeInstance> internalInstance() const;
QList<ServerNodeInstance> stateInstances() const;
+ QStringList allStates() const;
static bool isSubclassOf(QObject *object, const QByteArray &superTypeName);