From fa8b15679553a981664674941ac68ca50c3309b1 Mon Sep 17 00:00:00 2001 From: Przemyslaw Lewandowski Date: Tue, 24 Sep 2024 16:01:28 +0200 Subject: [PATCH] AssetImporter: Fix design system bindings for newly created types Change-Id: I576db008bc309ee5715cc2247f9f3f06d81c0818 Reviewed-by: Thomas Hartmann --- .../libs/designercore/rewriter/texttomodelmerger.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/libs/designercore/rewriter/texttomodelmerger.cpp b/src/plugins/qmldesigner/libs/designercore/rewriter/texttomodelmerger.cpp index b91434d78d2..b61330aa5ec 100644 --- a/src/plugins/qmldesigner/libs/designercore/rewriter/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/libs/designercore/rewriter/texttomodelmerger.cpp @@ -1432,6 +1432,9 @@ QmlDesigner::PropertyName TextToModelMerger::syncScriptBinding(ModelNode &modelN prefix, script->qualifiedId, astValue); + // Can happen if the type was just created and was not fully processed yet + const bool newlyCreatedTypeCase = !modelNode.metaInfo().properties().size(); + if (enumValue.isValid()) { // It is a qualified enum: AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); syncVariantProperty(modelProperty, enumValue, TypeName(), differenceHandler); // TODO: parse type @@ -1439,7 +1442,8 @@ QmlDesigner::PropertyName TextToModelMerger::syncScriptBinding(ModelNode &modelN } else { // Not an enum, so: if (isPropertyChangesType(modelNode.type()) || isConnectionsType(modelNode.type()) || isSupportedAttachedProperties(astPropertyName) - || modelNode.metaInfo().hasProperty(astPropertyName.toUtf8())) { + || modelNode.metaInfo().hasProperty(astPropertyName.toUtf8()) + || newlyCreatedTypeCase) { AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); syncExpressionProperty(modelProperty, astValue, TypeName(), differenceHandler); // TODO: parse type return astPropertyName.toUtf8();