diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-04-15 19:29:50 +0200 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2020-04-24 10:33:11 +0000 |
commit | d84bbdb876aff758603e149bfa284ee05e999a35 (patch) | |
tree | c56af097fb811c5d895a5356101e882fb80e9a63 /src/plugins/qmldesigner | |
parent | 85597f85b0141d71afc604f6bb46a341f2cf8de0 (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.cpp | 12 |
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() |