From 0e6b6c39fd5bd087b19b9898b4305a82dcf9a656 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Fri, 23 Feb 2024 10:49:28 +0100 Subject: [PATCH] rm remaining action to toolbar --- GUI/View/List/SamplesQListView.cpp | 20 -------------------- GUI/View/List/SamplesQListView.h | 5 ----- GUI/View/Views/SampleView.cpp | 25 +++++++++++++++++++++---- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/GUI/View/List/SamplesQListView.cpp b/GUI/View/List/SamplesQListView.cpp index 1ca1fb7352b..6cbf2d8fd20 100644 --- a/GUI/View/List/SamplesQListView.cpp +++ b/GUI/View/List/SamplesQListView.cpp @@ -14,7 +14,6 @@ #include "GUI/View/List/SamplesQListView.h" #include "Base/Util/SysUtil.h" -#include "GUI/Model/FromCore/GUIExamplesFactory.h" #include "GUI/Model/Project/ProjectDocument.h" #include "GUI/Model/Sample/SampleItem.h" #include "GUI/Model/Sample/SamplesSet.h" @@ -27,7 +26,6 @@ SamplesQListView::SamplesQListView() : m_model(new SamplesQModel(this)) - , m_choose_from_library_action(new QAction(this)) { setMaximumWidth(200); setVerticalScrollMode(QAbstractItemView::ScrollPerPixel); @@ -44,24 +42,6 @@ SamplesQListView::SamplesQListView() connect(this, &QWidget::customContextMenuRequested, this, &SamplesQListView::showContextMenu); - m_choose_from_library_action->setText("Choose from sample examples"); - m_choose_from_library_action->setIcon(QIcon(":/images/library.svg")); - m_choose_from_library_action->setIconText("Examples"); - m_choose_from_library_action->setToolTip("Choose from sample examples"); - - auto* menu = new QMenu(this); - m_choose_from_library_action->setMenu(menu); - - for (const auto& exampleName : GUI::ExamplesFactory::exampleNames()) { - QString title, description; - std::tie(title, description) = GUI::ExamplesFactory::exampleInfo(exampleName); - auto icon = QIcon(":/images/sample_layers2.png"); - auto* action = menu->addAction(icon, title); - action->setToolTip(description); - connect(action, &QAction::triggered, [this, exampleName, title, description] { - createSampleFromLibrary(exampleName, title, description); - }); - } } void SamplesQListView::createNewSample() diff --git a/GUI/View/List/SamplesQListView.h b/GUI/View/List/SamplesQListView.h index 8ad5c179b2f..61beb0196e8 100644 --- a/GUI/View/List/SamplesQListView.h +++ b/GUI/View/List/SamplesQListView.h @@ -26,8 +26,6 @@ class SamplesQListView : public QListView { public: SamplesQListView(); - QAction* chooseFromLibraryAction() { return m_choose_from_library_action; } - void createNewSample(); void createSampleFromLibrary(const QString& classname, const QString& title, const QString& description); @@ -35,7 +33,6 @@ public: void onCurrentChanged(const QModelIndex& index); void removeSample(SampleItem* item); void copySample(SampleItem* item); - signals: void currentSampleChanged(SampleItem* current); @@ -46,8 +43,6 @@ private: void showContextMenu(const QPoint& pos); SamplesQModel* m_model; - QAction* m_import_sample_action; - QAction* m_choose_from_library_action; }; #endif // BORNAGAIN_GUI_VIEW_LIST_SAMPLESQLISTVIEW_H diff --git a/GUI/View/Views/SampleView.cpp b/GUI/View/Views/SampleView.cpp index dd5d3253061..b04d4431f15 100644 --- a/GUI/View/Views/SampleView.cpp +++ b/GUI/View/Views/SampleView.cpp @@ -14,6 +14,7 @@ #include "GUI/View/Views/SampleView.h" #include "Base/Util/Vec.h" +#include "GUI/Model/FromCore/GUIExamplesFactory.h" #include "GUI/Model/Project/ProjectDocument.h" #include "GUI/Model/Sample/ItemWithParticles.h" #include "GUI/Model/Sample/LayerItem.h" @@ -31,6 +32,7 @@ #include <QBoxLayout> #include <QCheckBox> #include <QDockWidget> +#include <QMenu> #include <QMessageBox> #include <QSettings> #include <QSplitter> @@ -111,12 +113,27 @@ SampleView::SampleView() &SamplesQListView::importSampleFromPython); #endif - //... Finish - - toolbar->addAction(m_listing->chooseFromLibraryAction()); + auto* choose_from_library_action = new QAction("Examples", this); + toolbar->addAction(choose_from_library_action); if (auto* btn = dynamic_cast<QToolButton*>( - toolbar->widgetForAction(m_listing->chooseFromLibraryAction()))) + toolbar->widgetForAction(choose_from_library_action))) btn->setPopupMode(QToolButton::InstantPopup); + choose_from_library_action->setIcon(QIcon(":/images/library.svg")); + choose_from_library_action->setToolTip("Choose from sample examples"); + auto* import_menu = new QMenu(this); + choose_from_library_action->setMenu(import_menu); + for (const auto& exampleName : GUI::ExamplesFactory::exampleNames()) { + QString title, description; + std::tie(title, description) = GUI::ExamplesFactory::exampleInfo(exampleName); + auto icon = QIcon(":/images/sample_layers2.png"); + auto* action = import_menu->addAction(icon, title); + action->setToolTip(description); + connect(action, &QAction::triggered, [this, exampleName, title, description] { + m_listing->createSampleFromLibrary(exampleName, title, description); + }); + } + + //... Finish connect(m_listing, &SamplesQListView::currentSampleChanged, editor, &SampleEditor::setCurrentSample); -- GitLab