diff --git a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp index 7ccd6a9bc11ec18dbb106f2a9dcf3fbede4c6fbd..2caf80028f74fe5197bed8dd64c7fdbdc0ffacb7 100644 --- a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp @@ -112,13 +112,13 @@ static ModelNode resolveBinding(const QString &binding, ModelNode currentNode, A else return ModelNode(); //binding not valid } else if (currentNode.hasProperty(element.toUtf8())) { - if (currentNode.property(element.toUtf8()).isNodeProperty()) { + if (currentNode.property(element.toUtf8()).isNodeProperty()) currentNode = currentNode.nodeProperty(element.toUtf8()).modelNode(); - } else { + else if (view->hasId(element)) currentNode = view->modelNodeForId(element); //id - if (!currentNode.isValid()) - return ModelNode(); //binding not valid - } + else + return ModelNode(); //binding not valid + } else { currentNode = view->modelNodeForId(element); //id } @@ -192,9 +192,8 @@ QList<ModelNode> BindingProperty::resolveToModelNodeList() const string.remove(0, 1); QStringList simplifiedList = commaSeparatedSimplifiedStringList(string); foreach (const QString &nodeId, simplifiedList) { - ModelNode modelNode = view()->modelNodeForId(nodeId); - if (modelNode.isValid()) - returnList.append(modelNode); + if (view()->hasId(nodeId)) + returnList.append(view()->modelNodeForId(nodeId)); } } return returnList;