aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp10
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());