diff options
-rw-r--r-- | src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index c5ad9244a2..25f792e908 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -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()); |