From 2c18ab313cf4b032ae9b58eb0ccc8745d29f9c6c Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Fri, 23 Feb 2024 12:36:34 +0100 Subject: [PATCH] + ActionFactory::createRemoveAction etc --- GUI/View/Data/DatafilesSelector.cpp | 6 ++--- GUI/View/Job/JobsListing.cpp | 5 ++--- GUI/View/List/SamplesQListView.cpp | 9 +++----- GUI/View/Material/MaterialEditorDialog.cpp | 5 ++--- GUI/View/Setup/FrameActions.cpp | 26 ++++++++++++++++------ GUI/View/Setup/FrameActions.h | 8 +++++++ 6 files changed, 36 insertions(+), 23 deletions(-) diff --git a/GUI/View/Data/DatafilesSelector.cpp b/GUI/View/Data/DatafilesSelector.cpp index 8dc6f0b9544..cd678ed14ca 100644 --- a/GUI/View/Data/DatafilesSelector.cpp +++ b/GUI/View/Data/DatafilesSelector.cpp @@ -27,6 +27,7 @@ #include "GUI/View/Layout/ApplicationSettings.h" #include "GUI/View/Loader/Legacy1dDialog.h" #include "GUI/View/Manager/ProjectManager.h" +#include "GUI/View/Setup/FrameActions.h" #include "GUI/View/Widget/ListItemDelegate.h" #include "GUI/View/Widget/StyledToolbar.h" #include <QBoxLayout> @@ -107,10 +108,7 @@ DatafilesSelector::DatafilesSelector(StackedDataFrames* data_frames) m_rename_data_action->setToolTip("Rename data"); connect(m_rename_data_action, &QAction::triggered, this, &DatafilesSelector::renameCurrentItem); - m_remove_data_action->setText("Remove"); - m_remove_data_action->setIcon(QIcon(":/images/delete.svg")); - m_remove_data_action->setIconText("Remove"); - m_remove_data_action->setToolTip("Remove selected data"); + m_remove_data_action = ActionFactory::createRemoveAction("data file"); connect(m_remove_data_action, &QAction::triggered, this, &DatafilesSelector::removeCurrentItem); // m_qview->setAttribute(Qt::WA_MacShowFocusRect, false); // TODO/Mac: needed? diff --git a/GUI/View/Job/JobsListing.cpp b/GUI/View/Job/JobsListing.cpp index 81d2d2a697b..5733cfbc78a 100644 --- a/GUI/View/Job/JobsListing.cpp +++ b/GUI/View/Job/JobsListing.cpp @@ -21,6 +21,7 @@ #include "GUI/Support/Data/JobStatus.h" #include "GUI/View/Job/JobProgressDelegate.h" #include "GUI/View/Job/JobsQModel.h" +#include "GUI/View/Setup/FrameActions.h" #include "GUI/View/Widget/StyledToolbar.h" #include <QVBoxLayout> @@ -65,9 +66,7 @@ JobsListing::JobsListing(QWidget* parent, Qt::WindowFlags f) connect(m_cancel_action, &QAction::triggered, this, &JobsListing::onCancel); addAction(m_cancel_action); - m_remove_action = new QAction("Remove", this); - m_remove_action->setIcon(QIcon(":/images/delete.svg")); - m_remove_action->setToolTip("Remove currently selected jobs"); + m_remove_action = ActionFactory::createRemoveAction("job"); connect(m_remove_action, &QAction::triggered, this, &JobsListing::onRemove); addAction(m_remove_action); diff --git a/GUI/View/List/SamplesQListView.cpp b/GUI/View/List/SamplesQListView.cpp index d5970f22b1a..1f8b5f8e74f 100644 --- a/GUI/View/List/SamplesQListView.cpp +++ b/GUI/View/List/SamplesQListView.cpp @@ -19,6 +19,7 @@ #include "GUI/Model/Sample/SamplesSet.h" #include "GUI/View/Layout/ApplicationSettings.h" #include "GUI/View/List/SamplesQModel.h" +#include "GUI/View/Setup/FrameActions.h" #include "GUI/View/Widget/ListItemDelegate.h" #include <QAction> #include <QMenu> @@ -91,9 +92,7 @@ void SamplesQListView::copySample(SampleItem* item) QAction* SamplesQListView::createRemoveAction(QObject* parent, SampleItem* item) { - auto* removeAction = new QAction("Remove", parent); - removeAction->setIcon(QIcon(":/images/delete.svg")); - removeAction->setToolTip("Remove this sample"); + QAction* removeAction = ActionFactory::createRemoveAction("sample", parent); connect(removeAction, &QAction::triggered, [this, item] { removeSample(item); }); return removeAction; @@ -101,9 +100,7 @@ QAction* SamplesQListView::createRemoveAction(QObject* parent, SampleItem* item) QAction* SamplesQListView::createCopyAction(QObject* parent, SampleItem* item) { - auto* copyAction = new QAction("Clone", parent); - copyAction->setIcon(QIcon(":/images/content-copy.svg")); - copyAction->setToolTip("Clone this sample"); + auto* copyAction = ActionFactory::createCopyAction("sample", parent); connect(copyAction, &QAction::triggered, [this, item] { copySample(item); }); return copyAction; diff --git a/GUI/View/Material/MaterialEditorDialog.cpp b/GUI/View/Material/MaterialEditorDialog.cpp index 7998702279c..6a67fcaa214 100644 --- a/GUI/View/Material/MaterialEditorDialog.cpp +++ b/GUI/View/Material/MaterialEditorDialog.cpp @@ -21,6 +21,7 @@ #include "GUI/View/Layout/ApplicationSettings.h" #include "GUI/View/Material/MaterialsQModel.h" #include "GUI/View/Numeric/DoubleSpinBox.h" +#include "GUI/View/Setup/FrameActions.h" #include "GUI/View/Widget/StyledToolbar.h" #include <QAction> #include <QColorDialog> @@ -213,9 +214,7 @@ MaterialEditorDialog::MaterialEditorDialog(SampleItem* sample, const QString& id addSldMaterialAction->setToolTip("Add new material"); connect(addSldMaterialAction, &QAction::triggered, this, &MaterialEditorDialog::addSldMaterial); - m_remove_material_action = new QAction("Remove"); - m_remove_material_action->setIcon(QIcon(":/images/delete.svg")); - m_remove_material_action->setToolTip("Remove selected material"); + m_remove_material_action = ActionFactory::createRemoveAction("material"); connect(m_remove_material_action, &QAction::triggered, this, &MaterialEditorDialog::removeCurrentMaterial); diff --git a/GUI/View/Setup/FrameActions.cpp b/GUI/View/Setup/FrameActions.cpp index 6b71a1ce6bc..a08225d2ab7 100644 --- a/GUI/View/Setup/FrameActions.cpp +++ b/GUI/View/Setup/FrameActions.cpp @@ -14,6 +14,23 @@ #include "GUI/View/Setup/FrameActions.h" +QAction* ActionFactory::createCopyAction(const QString& type, QObject* parent) +{ + auto* result = new QAction("Copy", parent); + result->setIcon(QIcon(":/images/content-copy.svg")); + result->setToolTip("Clone current " + type); + return result; +} + +QAction* ActionFactory::createRemoveAction(const QString& type, QObject* parent) +{ + auto* result = new QAction("Remove", parent); + result->setIcon(QIcon(":/images/delete.svg")); + result->setToolTip("Remove current " + type); + return result; +} + + FrameActions* gActions; //<! Global pointer to single instance. FrameActions::FrameActions() @@ -75,13 +92,8 @@ FrameActions::FrameActions() new_depthprobe_instrument->setIcon(QIcon(":/images/shape-square-plus.svg")); new_depthprobe_instrument->setToolTip("Add new depth probe instrument with default settings"); - remove_instrument = new QAction("Remove"); - remove_instrument->setIcon(QIcon(":/images/delete.svg")); - remove_instrument->setToolTip("Remove selected instrument"); - - copy_instrument = new QAction("Copy"); - copy_instrument->setIcon(QIcon(":/images/content-copy.svg")); - copy_instrument->setToolTip("Make a copy of the selected instrument"); + remove_instrument = ActionFactory::createRemoveAction("instrument"); + copy_instrument = ActionFactory::createCopyAction("instrument"); store_in_library_instrument = new QAction("Store in library"); store_in_library_instrument->setIcon(QIcon(":/images/library.svg")); diff --git a/GUI/View/Setup/FrameActions.h b/GUI/View/Setup/FrameActions.h index e3f7f90579a..e2cf29951fb 100644 --- a/GUI/View/Setup/FrameActions.h +++ b/GUI/View/Setup/FrameActions.h @@ -16,6 +16,14 @@ #define BORNAGAIN_GUI_VIEW_SETUP_FRAMEACTIONS_H #include <QAction> +#include <QString> + +namespace ActionFactory { + +QAction* createCopyAction(const QString& type, QObject* parent = nullptr); +QAction* createRemoveAction(const QString& type, QObject* parent = nullptr); + +} // namespace ActionFactory //! Actions for use in GUI top-level frames. Accessible through global gActions. -- GitLab