diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-04-09 16:49:17 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-04-20 17:08:47 +0000 |
commit | eb82d396e36d472918dd326199f9a89f54a42b22 (patch) | |
tree | b372c098fb09c20049cd2060c78a8538dc62a621 | |
parent | 2f99a87a3f9c9125bb898a88b263c5251be5eb23 (diff) |
QmlDesigner: Add ModelNodeToArray() to BindingProperty
Change-Id: I98761ee607882f24bff89c3745af2f6f35587c1d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/designercore/include/bindingproperty.h | 1 | ||||
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/bindingproperty.cpp | 32 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/plugins/qmldesigner/designercore/include/bindingproperty.h b/src/plugins/qmldesigner/designercore/include/bindingproperty.h index a530cb203f..b8f60efbd8 100644 --- a/src/plugins/qmldesigner/designercore/include/bindingproperty.h +++ b/src/plugins/qmldesigner/designercore/include/bindingproperty.h @@ -49,6 +49,7 @@ public: AbstractProperty resolveToProperty() const; bool isList() const; QList<ModelNode> resolveToModelNodeList() const; + void addModelNodeToArray(const ModelNode &modelNode); bool isAliasExport() const; diff --git a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp index ebd3c7c709..1f1c1df58f 100644 --- a/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp +++ b/src/plugins/qmldesigner/designercore/model/bindingproperty.cpp @@ -199,6 +199,38 @@ QList<ModelNode> BindingProperty::resolveToModelNodeList() const return returnList; } +void BindingProperty::addModelNodeToArray(const ModelNode &modelNode) +{ + if (!isValid()) + throw InvalidModelNodeException(__LINE__, __FUNCTION__, __FILE__); + + if (isBindingProperty()) { + QStringList simplifiedList; + if (isList()) { + QString string = expression(); + string.chop(1); + string.remove(0, 1); + QStringList simplifiedList = commaSeparatedSimplifiedStringList(string); + ModelNode node = modelNode; + simplifiedList.append(node.validId()); + setExpression('[' + simplifiedList.join(',') + ']'); + } else { + ModelNode currentNode = resolveToModelNode(); + if (currentNode.isValid()) + simplifiedList.append(currentNode.validId()); + } + ModelNode node = modelNode; + simplifiedList.append(node.validId()); + setExpression('[' + simplifiedList.join(',') + ']'); + } else if (exists()) { + throw InvalidArgumentException(__LINE__, __FUNCTION__, __FILE__, name()); + } else { + ModelNode node = modelNode; + setExpression('[' + node.validId() + ']'); + } + +} + bool BindingProperty::isAliasExport() const { if (!isValid()) |