aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2020-04-15 19:29:50 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2020-04-24 10:33:11 +0000
commitd84bbdb876aff758603e149bfa284ee05e999a35 (patch)
treec56af097fb811c5d895a5356101e882fb80e9a63 /src/plugins/qmldesigner
parent85597f85b0141d71afc604f6bb46a341f2cf8de0 (diff)
QmlDesigner: Delete dangling transitions when deleting FlowTarget
Change-Id: Ic2bf68cd19ced976c5337b02bd9b1889c055f182 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/plugins/qmldesigner')
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp
index e811ca071e..2597aacf7b 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()