From d84bbdb876aff758603e149bfa284ee05e999a35 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 15 Apr 2020 19:29:50 +0200 Subject: [PATCH] QmlDesigner: Delete dangling transitions when deleting FlowTarget Change-Id: Ic2bf68cd19ced976c5337b02bd9b1889c055f182 Reviewed-by: Tim Jenssen --- .../qmldesigner/designercore/model/qmlobjectnode.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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()