diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index e811ca071ea..2597aacf7b0 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -381,11 +381,19 @@ void QmlObjectNode::destroy() timeline.destroyKeyframesForTarget(subNode); } - if (QmlFlowActionAreaNode::isValidQmlFlowActionAreaNode(modelNode())) - QmlFlowActionAreaNode(modelNode()).destroyTarget(); + bool wasFlowEditorTarget = false; + if (QmlFlowTargetNode::isFlowEditorTarget(modelNode())) { + QmlFlowTargetNode(modelNode()).destroyTargets(); + wasFlowEditorTarget = true; + } removeStateOperationsForChildren(modelNode()); + QmlFlowViewNode root(view()->rootModelNode()); + modelNode().destroy(); + + if (wasFlowEditorTarget && root.isValid()) + root.removeDanglingTransitions(); } void QmlObjectNode::ensureAliasExport()