forked from qt-creator/qt-creator
QmlDesigner: Remove all references also to children
If a node is deleted also children are deleted. We have to remove all references to children, too. Change-Id: Ie944b00ffc832fb0fb11ef0380c4b9b30add5757 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
committed by
Thomas Hartmann
parent
033d2c5cc3
commit
cfc732fe8f
@@ -368,6 +368,14 @@ static void removeLayerEnabled(const ModelNode &node)
|
||||
}
|
||||
}
|
||||
|
||||
static void deleteAllReferencesToNodeAndChildren(const ModelNode &node)
|
||||
{
|
||||
BindingProperty::deleteAllReferencesTo(node);
|
||||
const auto subNodes = node.allSubModelNodes();
|
||||
for (const ModelNode &child : subNodes)
|
||||
BindingProperty::deleteAllReferencesTo(child);
|
||||
}
|
||||
|
||||
/*!
|
||||
Deletes this object's node and its dependencies from the model.
|
||||
Everything that belongs to this Object, the ModelNode, and ChangeOperations
|
||||
@@ -406,7 +414,7 @@ void QmlObjectNode::destroy()
|
||||
}
|
||||
|
||||
removeStateOperationsForChildren(modelNode());
|
||||
BindingProperty::deleteAllReferencesTo(modelNode());
|
||||
deleteAllReferencesToNodeAndChildren(modelNode());
|
||||
|
||||
QmlFlowViewNode root(view()->rootModelNode());
|
||||
|
||||
|
Reference in New Issue
Block a user