From 96bfa8e29f30856ff0737976747711669e5c3077 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 3 May 2024 11:29:42 +0200 Subject: [PATCH] QmlDesigner: Support for ExtendedSceneEnvironment.GlowBlendMode This is the first nested enum scope. Therefore we have to add support for nested enum scopes. In a subsequent patch, Enumeration has to be adjusted. This patch is minimizing the risk for QDS 4.5. Task-number: QDS-12645 Change-Id: I6ddfa89f3a3038eac8a7ce73c8c593191fa05b84 Reviewed-by: Miikka Heikkinen --- .../propertyeditor/propertyeditorvalue.cpp | 2 +- .../designercore/model/texttomodelmerger.cpp | 37 +++++++++++-------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp index 70686f31ae9..fbceb5dfea3 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp @@ -143,7 +143,7 @@ void PropertyEditorValue::setValue(const QVariant &value) QString PropertyEditorValue::enumeration() const { - return m_value.value().nameToString(); + return m_value.value().nameToString().split('.').last(); } QString PropertyEditorValue::expression() const diff --git a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp index 1c1aba5feb9..b66270dca12 100644 --- a/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/texttomodelmerger.cpp @@ -94,21 +94,23 @@ bool isGlobalQtEnums(QStringView value) bool isKnownEnumScopes(QStringView value) { - static constexpr auto list = Utils::to_array({u"TextInput", - u"TextEdit", - u"Material", - u"Universal", - u"Font", - u"Shape", - u"ShapePath", - u"AbstractButton", - u"Text", - u"ShaderEffectSource", - u"Grid", - u"ItemLayer", - u"ImageLayer", - u"SpriteLayer", - u"Light"}); + static constexpr auto list = Utils::to_array( + {u"TextInput", + u"TextEdit", + u"Material", + u"Universal", + u"Font", + u"Shape", + u"ShapePath", + u"AbstractButton", + u"Text", + u"ShaderEffectSource", + u"Grid", + u"ItemLayer", + u"ImageLayer", + u"SpriteLayer", + u"Light", + u"ExtendedSceneEnvironment.GlowBlendMode"}); return std::find(std::begin(list), std::end(list), QmlDesigner::ModelUtils::toStdStringView(value)) != std::end(list); @@ -559,6 +561,11 @@ public: //Check for known enum scopes used globally if (isKnownEnumScopes(astValueList.constFirst())) return QVariant::fromValue(Enumeration(astValue)); + } else if (astValueList.size() == 3) { + QString enumName = astValueList.constFirst() + '.' + astValueList.at(1); + if (isKnownEnumScopes(enumName)) + return QVariant::fromValue( + Enumeration(enumName.toUtf8(), astValueList.constLast().toUtf8())); } auto eStmt = AST::cast(rhs);