From 3f785f30fdb976993a52aa7390ec08679313d946 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 23 Jul 2021 23:38:24 -0700 Subject: [PATCH] nodeview: ensure node is cleanly removed at all times --- app/widget/nodeview/nodeview.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index 5369fd453..6b5d740e6 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -1041,6 +1041,13 @@ void NodeView::OpenSelectedNodeInViewer() void NodeView::RemoveNode(Node *node) { + for (const Node::OutputConnection &oc : node->output_connections()) { + scene_.RemoveEdge(oc.first, oc.second); + } + for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) { + scene_.RemoveEdge(it->second, it->first); + } + positions_.remove(scene_.item_map().value(node)); scene_.RemoveNode(node); } @@ -1100,14 +1107,7 @@ void NodeView::RemoveNodePosition(Node *node, Node *relative) } if (!found) { - for (const Node::OutputConnection &oc : node->output_connections()) { - scene_.RemoveEdge(oc.first, oc.second); - } - for (auto it=node->input_connections().cbegin(); it!=node->input_connections().cend(); it++) { - scene_.RemoveEdge(it->second, it->first); - } - positions_.remove(item); - scene_.RemoveNode(node); + RemoveNode(node); } }