QmlDesigner: Add ModelNodeToArray() to BindingProperty

Change-Id: I98761ee607882f24bff89c3745af2f6f35587c1d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Thomas Hartmann
2020-04-09 16:49:17 +02:00
parent 2f99a87a3f
commit eb82d396e3
2 changed files with 33 additions and 0 deletions

View File

@@ -49,6 +49,7 @@ public:
AbstractProperty resolveToProperty() const;
bool isList() const;
QList<ModelNode> resolveToModelNodeList() const;
void addModelNodeToArray(const ModelNode &modelNode);
bool isAliasExport() const;

View File

@@ -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())