From 3e8df63159b568137d3a51ab1cc285797a26695d Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Mon, 18 Nov 2024 18:10:40 +0100
Subject: [PATCH] mask tools only for experimental data

---
 GUI/View/Frame/Plot2DFrame.cpp   |   2 +-
 GUI/View/Setup/Data2DToolbar.cpp | 165 ++++++++++++++++---------------
 GUI/View/Setup/Data2DToolbar.h   |   2 +-
 3 files changed, 86 insertions(+), 83 deletions(-)

diff --git a/GUI/View/Frame/Plot2DFrame.cpp b/GUI/View/Frame/Plot2DFrame.cpp
index feb0da103a8..abebef9cfbc 100644
--- a/GUI/View/Frame/Plot2DFrame.cpp
+++ b/GUI/View/Frame/Plot2DFrame.cpp
@@ -73,7 +73,7 @@ Plot2DFrame::Plot2DFrame(std::unique_ptr<DataSource>&& data_source)
     panels->addTab(prjns_panel, "Prjns");
     panels->setTabToolTip(tabIndex++, "Projections panel");
 
-    auto* toolbar = new Data2DToolbar;
+    auto* toolbar = new Data2DToolbar(m_data_source->isFromData());
     layout->addWidget(toolbar);
 
     //... Connections
diff --git a/GUI/View/Setup/Data2DToolbar.cpp b/GUI/View/Setup/Data2DToolbar.cpp
index 52d329d02df..813a815fb03 100644
--- a/GUI/View/Setup/Data2DToolbar.cpp
+++ b/GUI/View/Setup/Data2DToolbar.cpp
@@ -18,7 +18,7 @@
 #include <QLabel>
 #include <QToolButton>
 
-Data2DToolbar::Data2DToolbar()
+Data2DToolbar::Data2DToolbar(bool mask_tools)
     : m_activity_button_group(new QButtonGroup)
 {
     //... Frame tools
@@ -71,86 +71,89 @@ Data2DToolbar::Data2DToolbar()
 
     addSeparator();
 
-    //... Shape creation tools
-
-    auto* roi_button = new QToolButton;
-    roi_button->setIcon(QIcon(":/images/mask/roi.svg"));
-    roi_button->setToolTip("Create region of interest");
-    roi_button->setCheckable(true);
-    m_activity_button_group->addButton(roi_button, Canvas2DMode::ROI);
-    addWidget(roi_button);
-
-    //    auto* maskAll_button = new QToolButton;
-    //    maskAll_button->setIcon(QIcon(":/images/mask/maskall.svg"));
-    //    maskAll_button->setToolTip("Create masked area covering whole detector plane\n"
-    //                              "Will be placed beneath all masks. Only one instance is
-    //                              allowed.");
-    //    maskAll_button->setCheckable(true);
-    //    m_activity_button_group->addButton(maskAll_button, Canvas2DMode::MASKALL);
-    //    addWidget(maskAll_button);
-
-    auto* rectangle_button = new QToolButton;
-    rectangle_button->setIcon(QIcon(":/images/mask/rectangle.svg"));
-    rectangle_button->setToolTip("Create rectangle mask");
-    rectangle_button->setCheckable(true);
-    m_activity_button_group->addButton(rectangle_button, Canvas2DMode::RECTANGLE);
-    addWidget(rectangle_button);
-
-    auto* polygon_button = new QToolButton;
-    polygon_button->setIcon(QIcon(":/images/mask/polygon.svg"));
-    polygon_button->setToolTip("Create polygon mask");
-    m_activity_button_group->addButton(polygon_button, Canvas2DMode::POLYGON);
-    polygon_button->setCheckable(true);
-    addWidget(polygon_button);
-
-    auto* ellipse_button = new QToolButton;
-    ellipse_button->setIcon(QIcon(":/images/mask/ellipse.svg"));
-    ellipse_button->setToolTip("Create ellipse mask");
-    ellipse_button->setCheckable(true);
-    m_activity_button_group->addButton(ellipse_button, Canvas2DMode::ELLIPSE);
-    addWidget(ellipse_button);
-
-    auto* horizontal_mask_button = new QToolButton;
-    horizontal_mask_button->setIcon(QIcon(":/images/mask/horizontalline.svg"));
-    horizontal_mask_button->setToolTip("Create horizontal line mask");
-    horizontal_mask_button->setCheckable(true);
-    m_activity_button_group->addButton(horizontal_mask_button, Canvas2DMode::HORIZONTAL_MASK);
-    addWidget(horizontal_mask_button);
-
-    auto* vertical_mask_button = new QToolButton;
-    vertical_mask_button->setIcon(QIcon(":/images/mask/verticalline.svg"));
-    vertical_mask_button->setToolTip("Create vertical line mask");
-    vertical_mask_button->setCheckable(true);
-    m_activity_button_group->addButton(vertical_mask_button, Canvas2DMode::VERTICAL_MASK);
-    addWidget(vertical_mask_button);
-
-    connect(m_activity_button_group, &QButtonGroup::idClicked,
-            [this] { emit activityChanged(currentActivity()); });
-
-    addSeparator();
-
-    //... Modifier and inspector tools
-
-    auto* raise_button = new QToolButton;
-    addWidget(raise_button);
-    raise_button->setDefaultAction(actions()->raise_mask);
-
-    auto* lower_button = new QToolButton;
-    addWidget(lower_button);
-    lower_button->setDefaultAction(actions()->lower_mask);
-
-    addSeparator();
-
-    auto* mask_display_button = new QToolButton;
-    mask_display_button->setIcon(QIcon(":/images/mask/lightbulb.svg"));
-    mask_display_button->setToolTip("Press and hold to see mask results.");
-    addWidget(mask_display_button);
-
-    connect(mask_display_button, &QToolButton::pressed, [this] { emit requestMaskDisplay(true); });
-    connect(mask_display_button, &QToolButton::released,
-            [this] { emit requestMaskDisplay(false); });
-
-    addSeparator();
+    if (mask_tools) {
+        //... Shape creation tools
+
+        auto* roi_button = new QToolButton;
+        roi_button->setIcon(QIcon(":/images/mask/roi.svg"));
+        roi_button->setToolTip("Create region of interest");
+        roi_button->setCheckable(true);
+        m_activity_button_group->addButton(roi_button, Canvas2DMode::ROI);
+        addWidget(roi_button);
+
+        //    auto* maskAll_button = new QToolButton;
+        //    maskAll_button->setIcon(QIcon(":/images/mask/maskall.svg"));
+        //    maskAll_button->setToolTip("Create masked area covering whole detector plane\n"
+        //                              "Will be placed beneath all masks. Only one instance is
+        //                              allowed.");
+        //    maskAll_button->setCheckable(true);
+        //    m_activity_button_group->addButton(maskAll_button, Canvas2DMode::MASKALL);
+        //    addWidget(maskAll_button);
+
+        auto* rectangle_button = new QToolButton;
+        rectangle_button->setIcon(QIcon(":/images/mask/rectangle.svg"));
+        rectangle_button->setToolTip("Create rectangle mask");
+        rectangle_button->setCheckable(true);
+        m_activity_button_group->addButton(rectangle_button, Canvas2DMode::RECTANGLE);
+        addWidget(rectangle_button);
+
+        auto* polygon_button = new QToolButton;
+        polygon_button->setIcon(QIcon(":/images/mask/polygon.svg"));
+        polygon_button->setToolTip("Create polygon mask");
+        m_activity_button_group->addButton(polygon_button, Canvas2DMode::POLYGON);
+        polygon_button->setCheckable(true);
+        addWidget(polygon_button);
+
+        auto* ellipse_button = new QToolButton;
+        ellipse_button->setIcon(QIcon(":/images/mask/ellipse.svg"));
+        ellipse_button->setToolTip("Create ellipse mask");
+        ellipse_button->setCheckable(true);
+        m_activity_button_group->addButton(ellipse_button, Canvas2DMode::ELLIPSE);
+        addWidget(ellipse_button);
+
+        auto* horizontal_mask_button = new QToolButton;
+        horizontal_mask_button->setIcon(QIcon(":/images/mask/horizontalline.svg"));
+        horizontal_mask_button->setToolTip("Create horizontal line mask");
+        horizontal_mask_button->setCheckable(true);
+        m_activity_button_group->addButton(horizontal_mask_button, Canvas2DMode::HORIZONTAL_MASK);
+        addWidget(horizontal_mask_button);
+
+        auto* vertical_mask_button = new QToolButton;
+        vertical_mask_button->setIcon(QIcon(":/images/mask/verticalline.svg"));
+        vertical_mask_button->setToolTip("Create vertical line mask");
+        vertical_mask_button->setCheckable(true);
+        m_activity_button_group->addButton(vertical_mask_button, Canvas2DMode::VERTICAL_MASK);
+        addWidget(vertical_mask_button);
+
+        connect(m_activity_button_group, &QButtonGroup::idClicked,
+                [this] { emit activityChanged(currentActivity()); });
+
+        addSeparator();
+
+        //... Modifier and inspector tools
+
+        auto* raise_button = new QToolButton;
+        addWidget(raise_button);
+        raise_button->setDefaultAction(actions()->raise_mask);
+
+        auto* lower_button = new QToolButton;
+        addWidget(lower_button);
+        lower_button->setDefaultAction(actions()->lower_mask);
+
+        addSeparator();
+
+        auto* mask_display_button = new QToolButton;
+        mask_display_button->setIcon(QIcon(":/images/mask/lightbulb.svg"));
+        mask_display_button->setToolTip("Press and hold to see mask results.");
+        addWidget(mask_display_button);
+
+        connect(mask_display_button, &QToolButton::pressed,
+                [this] { emit requestMaskDisplay(true); });
+        connect(mask_display_button, &QToolButton::released,
+                [this] { emit requestMaskDisplay(false); });
+
+        addSeparator();
+    }
 
     auto* plot2D_button = new QToolButton;
     plot2D_button->setDefaultAction(actions()->save_plot);
diff --git a/GUI/View/Setup/Data2DToolbar.h b/GUI/View/Setup/Data2DToolbar.h
index d70c7566304..5394a23b5e0 100644
--- a/GUI/View/Setup/Data2DToolbar.h
+++ b/GUI/View/Setup/Data2DToolbar.h
@@ -26,7 +26,7 @@ class FrameActions;
 class Data2DToolbar : public DataToolbar {
     Q_OBJECT
 public:
-    Data2DToolbar();
+    Data2DToolbar(bool mask_tools);
 
 public slots:
     void onChangeActivityRequest(Canvas2DMode::Flag mode);
-- 
GitLab