From 55c2393c86ab5ac3d2925f75ecd7510d8db69413 Mon Sep 17 00:00:00 2001 From: Matthias Puchner <github@mpuchner.de> Date: Mon, 26 Jul 2021 10:02:54 +0200 Subject: [PATCH] fill toolbar with actions, not with buttons this fixes #103 (GUI: "More..." button in JobWidget is not working) explanation for changes: filling toolbars with buttons breaks the "more"-button functionality, therefore use the already existing actions to fill the toolbar --- GUI/Views/JobWidgets/JobSelectorActions.h | 3 ++ GUI/Views/JobWidgets/JobSelectorToolBar.cpp | 38 --------------------- GUI/Views/JobWidgets/JobSelectorToolBar.h | 37 -------------------- GUI/Views/JobWidgets/JobSelectorWidget.cpp | 10 ++++-- GUI/Views/JobWidgets/JobSelectorWidget.h | 2 -- 5 files changed, 10 insertions(+), 80 deletions(-) delete mode 100644 GUI/Views/JobWidgets/JobSelectorToolBar.cpp delete mode 100644 GUI/Views/JobWidgets/JobSelectorToolBar.h diff --git a/GUI/Views/JobWidgets/JobSelectorActions.h b/GUI/Views/JobWidgets/JobSelectorActions.h index f2f04bb7cc6..e0df8e2dcf1 100644 --- a/GUI/Views/JobWidgets/JobSelectorActions.h +++ b/GUI/Views/JobWidgets/JobSelectorActions.h @@ -47,8 +47,11 @@ private: bool canRunJob(const QModelIndex& index) const; bool canRemoveJob(const QModelIndex& index) const; +public: QAction* m_runJobAction; QAction* m_removeJobAction; + +private: QItemSelectionModel* m_selectionModel; JobModel* m_jobModel; }; diff --git a/GUI/Views/JobWidgets/JobSelectorToolBar.cpp b/GUI/Views/JobWidgets/JobSelectorToolBar.cpp deleted file mode 100644 index 69727809e27..00000000000 --- a/GUI/Views/JobWidgets/JobSelectorToolBar.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file GUI/Views/JobWidgets/JobSelectorToolBar.cpp -//! @brief Implements class JobSelectorToolBar -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#include "GUI/Views/JobWidgets/JobSelectorToolBar.h" -#include "GUI/Views/JobWidgets/JobSelectorActions.h" -#include <QToolButton> - -JobSelectorToolBar::JobSelectorToolBar(JobSelectorActions* actions, QWidget* parent) - : StyledToolBar(parent), m_runJobButton(new QToolButton), m_removeJobButton(new QToolButton) -{ - setMinimumSize(minimumHeight(), minimumHeight()); - - m_runJobButton->setText("Run"); - m_runJobButton->setIcon(QIcon(":/images/play.svg")); - m_runJobButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - m_runJobButton->setToolTip("Run currently selected job"); - addWidget(m_runJobButton); - - m_removeJobButton->setText("Remove"); - m_removeJobButton->setIcon(QIcon(":/images/delete.svg")); - m_removeJobButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - m_removeJobButton->setToolTip("Remove currently selected job."); - addWidget(m_removeJobButton); - - connect(m_runJobButton, &QToolButton::clicked, actions, &JobSelectorActions::onRunJob); - connect(m_removeJobButton, &QToolButton::clicked, actions, &JobSelectorActions::onRemoveJob); -} diff --git a/GUI/Views/JobWidgets/JobSelectorToolBar.h b/GUI/Views/JobWidgets/JobSelectorToolBar.h deleted file mode 100644 index 39e1e3f703e..00000000000 --- a/GUI/Views/JobWidgets/JobSelectorToolBar.h +++ /dev/null @@ -1,37 +0,0 @@ -// ************************************************************************************************ -// -// BornAgain: simulate and fit reflection and scattering -// -//! @file GUI/Views/JobWidgets/JobSelectorToolBar.h -//! @brief Defines class JobSelectorToolBar -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************************************ - -#ifndef BORNAGAIN_GUI_VIEWS_JOBWIDGETS_JOBSELECTORTOOLBAR_H -#define BORNAGAIN_GUI_VIEWS_JOBWIDGETS_JOBSELECTORTOOLBAR_H - -#include "GUI/Views/CommonWidgets/StyledToolBar.h" - -class QAction; -class QToolButton; -class JobSelectorActions; - -//! Styled tool bar on top of JobSelector with run/remove job buttons. - -class JobSelectorToolBar : public StyledToolBar { - Q_OBJECT - -public: - explicit JobSelectorToolBar(JobSelectorActions* actions, QWidget* parent = nullptr); - -private: - QToolButton* m_runJobButton; - QToolButton* m_removeJobButton; -}; - -#endif // BORNAGAIN_GUI_VIEWS_JOBWIDGETS_JOBSELECTORTOOLBAR_H diff --git a/GUI/Views/JobWidgets/JobSelectorWidget.cpp b/GUI/Views/JobWidgets/JobSelectorWidget.cpp index c05358ac3a0..c2877103a7f 100644 --- a/GUI/Views/JobWidgets/JobSelectorWidget.cpp +++ b/GUI/Views/JobWidgets/JobSelectorWidget.cpp @@ -18,7 +18,6 @@ #include "GUI/Views/JobWidgets/JobListWidget.h" #include "GUI/Views/JobWidgets/JobPropertiesWidget.h" #include "GUI/Views/JobWidgets/JobSelectorActions.h" -#include "GUI/Views/JobWidgets/JobSelectorToolBar.h" #include "GUI/Views/Tools/mainwindow_constants.h" #include <QHBoxLayout> #include <QSplitter> @@ -26,7 +25,6 @@ JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent) : QWidget(parent) , m_jobSelectorActions(new JobSelectorActions(jobModel, this)) - , m_toolBar(new JobSelectorToolBar(m_jobSelectorActions, this)) , m_jobListWidget(new JobListWidget) , m_jobProperties(new JobPropertiesWidget) , m_jobModel(nullptr) @@ -44,11 +42,17 @@ JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent) splitter->addWidget(m_jobProperties); splitter->setChildrenCollapsible(true); + QToolBar* toolBar = new StyledToolBar(this); + toolBar->setMinimumSize(toolBar->minimumHeight(), toolBar->minimumHeight()); + toolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + toolBar->addAction(m_jobSelectorActions->m_runJobAction); + toolBar->addAction(m_jobSelectorActions->m_removeJobAction); + auto mainLayout = new QVBoxLayout; mainLayout->setMargin(0); mainLayout->setSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); - mainLayout->addWidget(m_toolBar); + mainLayout->addWidget(toolBar); mainLayout->addWidget(splitter); setLayout(mainLayout); diff --git a/GUI/Views/JobWidgets/JobSelectorWidget.h b/GUI/Views/JobWidgets/JobSelectorWidget.h index 404dc0c5595..39795eba3c2 100644 --- a/GUI/Views/JobWidgets/JobSelectorWidget.h +++ b/GUI/Views/JobWidgets/JobSelectorWidget.h @@ -19,7 +19,6 @@ class JobModel; class JobItem; -class JobSelectorToolBar; class JobSelectorActions; class JobListWidget; class JobPropertiesWidget; @@ -51,7 +50,6 @@ private slots: private: JobSelectorActions* m_jobSelectorActions; - JobSelectorToolBar* m_toolBar; JobListWidget* m_jobListWidget; JobPropertiesWidget* m_jobProperties; JobModel* m_jobModel; -- GitLab