From 97c8f8a56c840c4c704697c871d97ffb6a36fb26 Mon Sep 17 00:00:00 2001
From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de>
Date: Thu, 9 Nov 2023 18:17:57 +0100
Subject: [PATCH] decouple MaskGraphicsProxy from SceneAdaptor

---
 GUI/View/Mask/MaskGraphicsProxy.cpp | 16 +---------------
 GUI/View/Mask/MaskGraphicsProxy.h   |  3 ---
 GUI/View/Mask/MaskGraphicsScene.cpp |  8 ++------
 3 files changed, 3 insertions(+), 24 deletions(-)

diff --git a/GUI/View/Mask/MaskGraphicsProxy.cpp b/GUI/View/Mask/MaskGraphicsProxy.cpp
index 89e0996185e..38ff13894b3 100644
--- a/GUI/View/Mask/MaskGraphicsProxy.cpp
+++ b/GUI/View/Mask/MaskGraphicsProxy.cpp
@@ -15,24 +15,17 @@
 #include "GUI/View/Mask/MaskGraphicsProxy.h"
 #include "GUI/Model/Data/Data2DItem.h"
 #include "GUI/View/PlotUtil/ColorMap.h"
-#include "GUI/View/Shape/SceneAdaptor.h"
 #include <QGraphicsSceneMouseEvent>
 
 MaskGraphicsProxy::MaskGraphicsProxy()
     : m_colorMap(new ColorMap)
-    , m_sceneAdaptor(nullptr)
     , m_send_signals_to_colormap(false)
 {
     resize(1200, 1000);
     setInZoomMode(true);
 }
 
-MaskGraphicsProxy::~MaskGraphicsProxy()
-{
-    // no need to delete m_colorMap, base QGraphicsProxyWidget will take care about it
-    if (m_sceneAdaptor)
-        m_sceneAdaptor->setColorMapPlot(nullptr);
-}
+MaskGraphicsProxy::~MaskGraphicsProxy() = default;
 
 void MaskGraphicsProxy::itemToMGProxy(Data2DItem* item)
 {
@@ -41,13 +34,6 @@ void MaskGraphicsProxy::itemToMGProxy(Data2DItem* item)
         setWidget(m_colorMap);
 }
 
-void MaskGraphicsProxy::setSceneAdaptor(SceneAdaptor* sceneAdaptor)
-{
-    m_sceneAdaptor = sceneAdaptor;
-    if (m_sceneAdaptor)
-        m_sceneAdaptor->setColorMapPlot(m_colorMap);
-}
-
 //! Sets widget to zoom mode, when signals (zoom wheel, mouse clicks) are send down to
 //! ColorMap plot. In non-zoom mode, widget doesn't react on clicks.
 void MaskGraphicsProxy::setInZoomMode(bool value)
diff --git a/GUI/View/Mask/MaskGraphicsProxy.h b/GUI/View/Mask/MaskGraphicsProxy.h
index 875784694ba..74e5512770d 100644
--- a/GUI/View/Mask/MaskGraphicsProxy.h
+++ b/GUI/View/Mask/MaskGraphicsProxy.h
@@ -20,7 +20,6 @@
 
 class ColorMap;
 class Data2DItem;
-class SceneAdaptor;
 
 //! Graphics proxy to place QWidget inside QGraphicsScene, used by MaskEditorCanvas.
 
@@ -33,7 +32,6 @@ public:
     int type() const override { return MaskType::MASKGRAPHICSPROXY; }
 
     void itemToMGProxy(Data2DItem* item);
-    void setSceneAdaptor(SceneAdaptor* sceneAdaptor);
     void setInZoomMode(bool value);
 
     ColorMap* colorMap() { return m_colorMap; }
@@ -45,7 +43,6 @@ private:
     void wheelEvent(QGraphicsSceneWheelEvent* event) override;
 
     ColorMap* m_colorMap;
-    SceneAdaptor* m_sceneAdaptor;
     bool m_send_signals_to_colormap;
 };
 
diff --git a/GUI/View/Mask/MaskGraphicsScene.cpp b/GUI/View/Mask/MaskGraphicsScene.cpp
index 0fbe467db14..a220302471a 100644
--- a/GUI/View/Mask/MaskGraphicsScene.cpp
+++ b/GUI/View/Mask/MaskGraphicsScene.cpp
@@ -39,11 +39,7 @@ MaskGraphicsScene::MaskGraphicsScene(QObject* parent)
             &MaskGraphicsScene::onSceneSelectionChanged, Qt::UniqueConnection);
 }
 
-MaskGraphicsScene::~MaskGraphicsScene()
-{
-    if (m_proxy)
-        m_proxy->setSceneAdaptor(nullptr);
-}
+MaskGraphicsScene::~MaskGraphicsScene() = default;
 
 void MaskGraphicsScene::setAssociatedItems(Data2DItem* data2DItem,
                                            MaskContainerItem* maskContainerItem)
@@ -370,7 +366,7 @@ void MaskGraphicsScene::updateProxyWidget()
     m_proxy = new MaskGraphicsProxy; // TODO: check if m_proxy is released at the end
     m_proxy->setParent(this);
     m_proxy->itemToMGProxy(m_data2DItem);
-    m_proxy->setSceneAdaptor(m_adaptor.data());
+    m_adaptor->setColorMapPlot(m_proxy->colorMap());
     addItem(m_proxy);
 }
 
-- 
GitLab