From 35e36f75b77c6e843e94053a17dc2c5940dfd17f Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Wed, 24 Mar 2010 13:22:12 +0100 Subject: [PATCH] QmlDesigner: Fix crash in TestCore::testRewriterForArrayMagic Qml allows property lists to be written as single properties, i.e. states: State {} However, for the QmlDesigner model states is a list. Take care of this in the texttomodelmerger. Reviewed-by: Erik Verbruggen --- src/plugins/qmldesigner/core/model/texttomodelmerger.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp index 87c31bfad37..efeb8794ba6 100644 --- a/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp +++ b/src/plugins/qmldesigner/core/model/texttomodelmerger.cpp @@ -382,7 +382,12 @@ void TextToModelMerger::syncNode(ModelNode &modelNode, } else { if (isValidPropertyForNode(modelNode, astPropertyName)) { AbstractProperty modelProperty = modelNode.property(astPropertyName); - syncNodeProperty(modelProperty, binding, context, differenceHandler); + if (modelProperty.metaInfo().isListProperty()) { + NodeListProperty listProperty = modelProperty.toNodeListProperty(); + syncNodeListProperty(listProperty, QList<QmlJS::AST::UiObjectMember*>() << member, context, differenceHandler); + } else { + syncNodeProperty(modelProperty, binding, context, differenceHandler); + } modelPropertyNames.remove(astPropertyName); } else { qWarning() << "Skipping invalid node property" << astPropertyName -- GitLab