From b31ab101fc682c1993f6dad022616fc73590232a Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Tue, 16 Jul 2024 17:54:16 +0200 Subject: [PATCH] mv job properties display from JobEditor to JobsPanel --- GUI/View/Job/JobEditor.cpp | 13 ------------- GUI/View/Job/JobEditor.h | 5 ----- GUI/View/Job/JobsPanel.cpp | 14 +++++++++++++- GUI/View/Job/JobsPanel.h | 6 +++++- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/GUI/View/Job/JobEditor.cpp b/GUI/View/Job/JobEditor.cpp index f0a8d77492d..b6aadf47832 100644 --- a/GUI/View/Job/JobEditor.cpp +++ b/GUI/View/Job/JobEditor.cpp @@ -16,15 +16,11 @@ #include "GUI/Model/Job/BatchInfo.h" #include "GUI/Model/Job/JobItem.h" #include "GUI/Model/Job/JobStatus.h" -#include "GUI/View/Job/JobparQModel.h" -#include <QHeaderView> #include <QLabel> #include <QVBoxLayout> JobEditor::JobEditor(QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f) - , m_properties_view(new QTreeView(this)) - , m_properties_model(new JobparQModel(this)) , m_comments_editor(new QTextEdit(this)) , m_job_item(nullptr) { @@ -38,14 +34,6 @@ JobEditor::JobEditor(QWidget* parent, Qt::WindowFlags f) layout->addWidget(new QLabel("Messages")); layout->addWidget(m_comments_editor); - layout->addWidget(new QLabel("Properties")); - layout->addWidget(m_properties_view); - - m_properties_view->setRootIsDecorated(false); - m_properties_view->setAlternatingRowColors(true); - m_properties_view->setModel(m_properties_model); - m_properties_view->header()->setSectionResizeMode(QHeaderView::ResizeToContents); - connect(m_comments_editor, &QTextEdit::textChanged, this, &JobEditor::onCommentsEdited); setMinimumWidth(10); @@ -65,7 +53,6 @@ void JobEditor::setJobItem(JobItem* jobItem) disconnect(m_job_item->batchInfo()); } m_job_item = jobItem; - m_properties_model->setJobItem(m_job_item); if (m_job_item) { const bool ok = isFailed(m_job_item->batchInfo()->status()); m_comments_editor->setTextColor(ok ? Qt::black : Qt::red); diff --git a/GUI/View/Job/JobEditor.h b/GUI/View/Job/JobEditor.h index 74638b16fe9..be9407748b9 100644 --- a/GUI/View/Job/JobEditor.h +++ b/GUI/View/Job/JobEditor.h @@ -16,11 +16,8 @@ #define BORNAGAIN_GUI_VIEW_JOB_JOBEDITOR_H #include <QTextEdit> -#include <QTreeView> -#include <QWidget> class JobItem; -class JobparQModel; //! Holds tabs for properties view and comments editor. @@ -35,8 +32,6 @@ private slots: void onCommentsEdited(); private: - QTreeView* m_properties_view; - JobparQModel* m_properties_model; QTextEdit* m_comments_editor; JobItem* m_job_item; }; diff --git a/GUI/View/Job/JobsPanel.cpp b/GUI/View/Job/JobsPanel.cpp index 2a25ce37d4f..18c81552743 100644 --- a/GUI/View/Job/JobsPanel.cpp +++ b/GUI/View/Job/JobsPanel.cpp @@ -16,7 +16,9 @@ #include "Base/Util/Assert.h" #include "GUI/View/Base/mainwindow_constants.h" #include "GUI/View/Job/JobEditor.h" +#include "GUI/View/Job/JobparQModel.h" #include "GUI/View/Job/JobsListing.h" +#include <QHeaderView> #include <QSettings> #include <QVBoxLayout> @@ -45,6 +47,8 @@ QVector<int> qVariantToList(const QVariant& var) JobsPanel::JobsPanel(QWidget* parent) : QWidget(parent) , m_splitter(new QSplitter(Qt::Vertical, this)) + , m_properties_view(new QTreeView(this)) + , m_properties_model(new JobparQModel(this)) , m_job_editor(new JobEditor(this)) { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Expanding); @@ -69,6 +73,12 @@ JobsPanel::JobsPanel(QWidget* parent) m_splitter->setCollapsible(1, false); m_splitter->setStretchFactor(1, 0); + m_properties_view->setRootIsDecorated(false); + m_properties_view->setAlternatingRowColors(true); + m_properties_view->setModel(m_properties_model); + m_properties_view->header()->setSectionResizeMode(QHeaderView::ResizeToContents); + m_splitter->addWidget(m_properties_view); + connect(m_listing, &JobsListing::selectedJobsChanged, this, &JobsPanel::onSelectedJobsChanged); onSelectedJobsChanged(selectedJobItems()); @@ -102,7 +112,9 @@ void JobsPanel::makeJobItemSelected(JobItem* item) void JobsPanel::onSelectedJobsChanged(const QVector<JobItem*>& jobs) { - m_job_editor->setJobItem(jobs.empty() ? nullptr : jobs.front()); + JobItem* new_job = jobs.empty() ? nullptr : jobs.front(); + m_properties_model->setJobItem(new_job); + m_job_editor->setJobItem(new_job); emit selectedJobsChanged(); } diff --git a/GUI/View/Job/JobsPanel.h b/GUI/View/Job/JobsPanel.h index 7021878f429..493ee1740f8 100644 --- a/GUI/View/Job/JobsPanel.h +++ b/GUI/View/Job/JobsPanel.h @@ -16,10 +16,11 @@ #define BORNAGAIN_GUI_VIEW_JOB_JOBSPANEL_H #include <QSplitter> -#include <QWidget> +#include <QTreeView> class JobEditor; class JobItem; +class JobparQModel; class JobsListing; //! A panel with a JobsListing on top and a JobEditor an bottom. @@ -47,7 +48,10 @@ private: void saveSettings(); QSplitter* m_splitter; + JobsListing* m_listing; + QTreeView* m_properties_view; + JobparQModel* m_properties_model; JobEditor* m_job_editor; }; -- GitLab