diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp index 6b3806213ee47d76cef71e6031e2a5a3c849e5ff..cb5a12f19143cfe07ab423ebda835291ea169990 100644 --- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp +++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.cpp @@ -66,6 +66,12 @@ DistributionWidget::DistributionWidget(QWidget *parent) connect(m_plot, SIGNAL(mouseMove(QMouseEvent *)), this, SLOT(onMouseMove(QMouseEvent *))); } +DistributionWidget::~DistributionWidget() +{ + if(m_item) + m_item->mapper()->unsubscribe(this); +} + void DistributionWidget::setItem(DistributionItem *item) { if (m_item == item) { @@ -88,6 +94,11 @@ void DistributionWidget::setItem(DistributionItem *item) plotItem(); }, this); + m_item->mapper()->setOnItemDestroy( + [this](SessionItem *) { + m_item = 0; + }, this); + } } diff --git a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h index e4551d370351741d0e56c6818a469d54cf62cc3f..c128c7e3b36f73aec9a028a6493f8191ae24b955 100644 --- a/GUI/coregui/Views/InfoWidgets/DistributionWidget.h +++ b/GUI/coregui/Views/InfoWidgets/DistributionWidget.h @@ -37,6 +37,7 @@ class DistributionWidget : public QWidget public: DistributionWidget(QWidget *parent = 0); + ~DistributionWidget(); void setItem(DistributionItem *item); void plotItem();