diff options
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp | 23 | ||||
-rw-r--r-- | share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h | 1 |
2 files changed, 22 insertions, 2 deletions
diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp index 83382fb198..2d2edeee4a 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.cpp @@ -571,11 +571,30 @@ QVariant ObjectNodeInstance::property(const PropertyName &name) const return property.read(); } +void ObjectNodeInstance::ensureVector3DDotProperties(PropertyNameList &list) const +{ + const PropertyNameList properties = { "rotation", "scale", "pivot" }; + for (const auto &property : properties) { + if (list.contains(property) && instanceType(property) == "QVector3D") { + const PropertyNameList dotProperties = { "x", "y", "z" }; + for (const auto &dotProperty : dotProperties) { + const PropertyName dotPropertyName = property + "." + dotProperty; + if (!list.contains(dotPropertyName)) + list.append(dotPropertyName); + } + } + } +} + PropertyNameList ObjectNodeInstance::propertyNames() const { + PropertyNameList list; if (isValid()) - return QmlPrivateGate::allPropertyNames(object()); - return PropertyNameList(); + list = QmlPrivateGate::allPropertyNames(object()); + + ensureVector3DDotProperties(list); + + return list; } QString ObjectNodeInstance::instanceType(const PropertyName &name) const diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h index ced76dee58..d716c4d755 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/objectnodeinstance.h @@ -209,6 +209,7 @@ protected: static QVariant enumationValue(const Enumeration &enumeration); void initializePropertyWatcher(const ObjectNodeInstance::Pointer &objectNodeInstance); + void ensureVector3DDotProperties(PropertyNameList &list) const; private: QString m_id; |