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