diff --git a/GUI/View/Canvas/ProjectionsEditorCanvas.cpp b/GUI/View/Canvas/ProjectionsEditorCanvas.cpp index d931d9f040f952eb8a857961e7d23d08913733b5..79fcd816cc6007d66cb06986d5a78029d2a28a33 100644 --- a/GUI/View/Canvas/ProjectionsEditorCanvas.cpp +++ b/GUI/View/Canvas/ProjectionsEditorCanvas.cpp @@ -77,10 +77,19 @@ void ProjectionsEditorCanvas::updateCanvas(Data2DItem* data2DItem) m_data2DItem = data2DItem; - setConnected(true); + auto* cm = m_scene->colorMap(); + ASSERT(cm); + connect(cm->eventHelper(), &PlotEventHelper::enteringPlot, this, + &ProjectionsEditorCanvas::onEnteringColorMap, Qt::UniqueConnection); + connect(cm->eventHelper(), &PlotEventHelper::leavingPlot, this, + &ProjectionsEditorCanvas::onLeavingColorMap, Qt::UniqueConnection); + connect(cm->eventHelper(), &PlotEventHelper::positionChanged, this, + &ProjectionsEditorCanvas::onPositionChanged, Qt::UniqueConnection); + connect(cm, &ColorMap::marginsChanged, this, &ProjectionsEditorCanvas::marginsChanged, + Qt::UniqueConnection); m_statusLabel->reset(); - m_statusLabel->addPlot(m_scene->colorMap()); + m_statusLabel->addPlot(cm); onLeavingColorMap(); m_scene->onActivityChanged(m_currentActivity); @@ -88,7 +97,16 @@ void ProjectionsEditorCanvas::updateCanvas(Data2DItem* data2DItem) void ProjectionsEditorCanvas::resetCanvas() { - setConnected(false); + auto* cm = m_scene->colorMap(); + ASSERT(cm); + disconnect(cm->eventHelper(), &PlotEventHelper::enteringPlot, this, + &ProjectionsEditorCanvas::onEnteringColorMap); + disconnect(cm->eventHelper(), &PlotEventHelper::leavingPlot, this, + &ProjectionsEditorCanvas::onLeavingColorMap); + disconnect(cm->eventHelper(), &PlotEventHelper::positionChanged, this, + &ProjectionsEditorCanvas::onPositionChanged); + disconnect(cm, &ColorMap::marginsChanged, this, &ProjectionsEditorCanvas::marginsChanged); + m_data2DItem = nullptr; m_scene->dissociateItems(); } @@ -141,31 +159,3 @@ void ProjectionsEditorCanvas::setProjectionsCanvasMode(MaskFlags::MaskMode mask_ m_scene->onActivityChanged(mask_mode); onLeavingColorMap(); } - -void ProjectionsEditorCanvas::setConnected(bool isConnected) -{ - auto* cm = m_scene->colorMap(); - if (!cm) - return; - - if (isConnected) { - connect(cm->eventHelper(), &PlotEventHelper::enteringPlot, this, - &ProjectionsEditorCanvas::onEnteringColorMap, Qt::UniqueConnection); - connect(cm->eventHelper(), &PlotEventHelper::leavingPlot, this, - &ProjectionsEditorCanvas::onLeavingColorMap, Qt::UniqueConnection); - connect(cm->eventHelper(), &PlotEventHelper::positionChanged, this, - &ProjectionsEditorCanvas::onPositionChanged, Qt::UniqueConnection); - connect(cm, &ColorMap::marginsChanged, this, &ProjectionsEditorCanvas::marginsChanged, - Qt::UniqueConnection); - } - - else { - disconnect(cm->eventHelper(), &PlotEventHelper::enteringPlot, this, - &ProjectionsEditorCanvas::onEnteringColorMap); - disconnect(cm->eventHelper(), &PlotEventHelper::leavingPlot, this, - &ProjectionsEditorCanvas::onLeavingColorMap); - disconnect(cm->eventHelper(), &PlotEventHelper::positionChanged, this, - &ProjectionsEditorCanvas::onPositionChanged); - disconnect(cm, &ColorMap::marginsChanged, this, &ProjectionsEditorCanvas::marginsChanged); - } -} diff --git a/GUI/View/Canvas/ProjectionsEditorCanvas.h b/GUI/View/Canvas/ProjectionsEditorCanvas.h index acb8d0c1f7cec7cb0f3b88e2e906e7b5b500499b..bdb181fa83ca9bfc5c564941507de92b72d98ec4 100644 --- a/GUI/View/Canvas/ProjectionsEditorCanvas.h +++ b/GUI/View/Canvas/ProjectionsEditorCanvas.h @@ -57,8 +57,6 @@ private slots: void onPositionChanged(double x, double y); private: - void setConnected(bool isConnected); - MaskGraphicsScene* m_scene; MaskGraphicsView* m_view; PlotStatusLabel* m_statusLabel;