QmlDesigner Fix regression

There was code model based code for this check that was
hard to understand and accidentally removed.

We simply check if the property does exist.

Change-Id: I7fc0b414af526f15f0bf35006f6aee151506f660
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Thomas Hartmann
2024-04-10 19:57:45 +02:00
parent 912082e6a8
commit ab6bd28b22

View File

@@ -1161,7 +1161,8 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
if (auto array = AST::cast<AST::UiArrayBinding *>(member)) { if (auto array = AST::cast<AST::UiArrayBinding *>(member)) {
const QString astPropertyName = toString(array->qualifiedId); const QString astPropertyName = toString(array->qualifiedId);
if (isPropertyChangesType(typeName) || isConnectionsType(typeName)) { if (isPropertyChangesType(typeName) || isConnectionsType(typeName)
|| modelNode.metaInfo().hasProperty(astPropertyName.toUtf8())) {
AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8());
QList<AST::UiObjectMember *> arrayMembers; QList<AST::UiObjectMember *> arrayMembers;
for (AST::UiArrayMemberList *iter = array->members; iter; iter = iter->next) for (AST::UiArrayMemberList *iter = array->members; iter; iter = iter->next)
@@ -1379,9 +1380,9 @@ QmlDesigner::PropertyName TextToModelMerger::syncScriptBinding(ModelNode &modelN
} }
if (isLiteralValue(script)) { if (isLiteralValue(script)) {
if (isPropertyChangesType(modelNode.type()) if (isPropertyChangesType(modelNode.type()) || isConnectionsType(modelNode.type())
|| isConnectionsType(modelNode.type()) || isListElementType(modelNode.type())
|| isListElementType(modelNode.type())) { || modelNode.metaInfo().hasProperty(astPropertyName.toUtf8())) {
AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8()); AbstractProperty modelProperty = modelNode.property(astPropertyName.toUtf8());
QVariant variantValue = parsePropertyScriptBinding(script); QVariant variantValue = parsePropertyScriptBinding(script);
if (!variantValue.isValid()) if (!variantValue.isValid())