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_;