forked from qt-creator/qt-creator
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:
@@ -382,7 +382,12 @@ void TextToModelMerger::syncNode(ModelNode &modelNode,
|
|||||||
} else {
|
} else {
|
||||||
if (isValidPropertyForNode(modelNode, astPropertyName)) {
|
if (isValidPropertyForNode(modelNode, astPropertyName)) {
|
||||||
AbstractProperty modelProperty = modelNode.property(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);
|
syncNodeProperty(modelProperty, binding, context, differenceHandler);
|
||||||
|
}
|
||||||
modelPropertyNames.remove(astPropertyName);
|
modelPropertyNames.remove(astPropertyName);
|
||||||
} else {
|
} else {
|
||||||
qWarning() << "Skipping invalid node property" << astPropertyName
|
qWarning() << "Skipping invalid node property" << astPropertyName
|
||||||
|
|||||||
Reference in New Issue
Block a user