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