From 50b29146f3942c760ac2de45f633f79241b86d74 Mon Sep 17 00:00:00 2001 From: itsmattkc <34096995+itsmattkc@users.noreply.github.com> Date: Wed, 5 Jan 2022 11:37:17 -0800 Subject: [PATCH] nodeview: clear edges first --- app/widget/nodeview/nodeviewcontext.cpp | 7 +++++++ app/widget/nodeview/nodeviewcontext.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/app/widget/nodeview/nodeviewcontext.cpp b/app/widget/nodeview/nodeviewcontext.cpp index c7a4d27e6..7d2cd0b3f 100644 --- a/app/widget/nodeview/nodeviewcontext.cpp +++ b/app/widget/nodeview/nodeviewcontext.cpp @@ -44,6 +44,13 @@ NodeViewContext::NodeViewContext(Node *context, QGraphicsItem *item) : connect(context_, &Node::NodeRemovedFromContext, this, &NodeViewContext::RemoveChild, Qt::DirectConnection); } +NodeViewContext::~NodeViewContext() +{ + // Delete edges before items, because the edge constructor references the items + qDeleteAll(edges_); + edges_.clear(); +} + void NodeViewContext::AddChild(Node *node) { if (!context_) { diff --git a/app/widget/nodeview/nodeviewcontext.h b/app/widget/nodeview/nodeviewcontext.h index c62019672..b71aab9b2 100644 --- a/app/widget/nodeview/nodeviewcontext.h +++ b/app/widget/nodeview/nodeviewcontext.h @@ -17,6 +17,8 @@ class NodeViewContext : public QObject, public QGraphicsRectItem public: NodeViewContext(Node *context, QGraphicsItem *item = nullptr); + virtual ~NodeViewContext() override; + Node *GetContext() const { return context_;