From fd2c7db691618050742e28aed358385552bc75a0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 20 May 2024 12:32:36 +0300 Subject: [PATCH] QmlDesigner: Use correct Enumeration type for instance values Puppet used to return just string for enumeration types. Now it will use Enumeration type properly. Change-Id: I602891e34c03cb659ee0a8e4571b39b6e24f9e1c Reviewed-by: Thomas Hartmann Reviewed-by: Qt CI Patch Build Bot --- .../qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp | 5 +++-- .../qml2puppet/qml2puppet/instances/objectnodeinstance.cpp | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp index f3227e386cc..0f7133b1ff5 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/nodeinstanceserver.cpp @@ -1187,8 +1187,9 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand static bool supportedVariantType(int type) { - return type < int(QVariant::UserType) && type != QMetaType::QObjectStar - && type != QMetaType::QModelIndex && type != QMetaType::VoidStar; + return (type < int(QVariant::UserType) && type != QMetaType::QObjectStar + && type != QMetaType::QModelIndex && type != QMetaType::VoidStar) + || type == QMetaType::fromType().id(); } ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList &instanceList) const diff --git a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp index 453a30395f1..2ad26c42866 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/objectnodeinstance.cpp @@ -619,7 +619,8 @@ QVariant ObjectNodeInstance::property(const PropertyName &name) const QQmlProperty property(object(), QString::fromUtf8(name), context()); if (property.property().isEnumType()) { QVariant value = property.read(); - return property.property().enumerator().valueToKey(value.toInt()); + QMetaEnum me = property.property().enumerator(); + return QVariant::fromValue(Enumeration(me.scope(), me.valueToKey(value.toInt()))); } if (property.propertyType() == QVariant::Url) {