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
This commit is contained in:
Kai Koehne
2010-03-24 13:22:12 +01:00
parent f956b52e0e
commit 35e36f75b7

View File

@@ -382,7 +382,12 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
} else {
if (isValidPropertyForNode(modelNode, astPropertyName)) {
AbstractProperty modelProperty = modelNode.property(astPropertyName);
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