diff --git a/GUI/View/Fit/FitActivityPanel.cpp b/GUI/View/Fit/FitActivityPanel.cpp index 3a8430563029d23a973ae1da1314a01b72928a6a..c7e8b394d4af3c4b12d5c840df1d517bbcbfbe0e 100644 --- a/GUI/View/Fit/FitActivityPanel.cpp +++ b/GUI/View/Fit/FitActivityPanel.cpp @@ -37,7 +37,6 @@ FitActivityPanel::FitActivityPanel(QWidget* parent) setObjectName("FitActivityPanel"); setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding); - auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); diff --git a/GUI/View/Fit/JobRealTimeWidget.h b/GUI/View/Fit/JobRealTimeWidget.h index cd704f08396bfd3b7e60b5a87fd5458e04ec72c5..dba671e8233ad57327d957d066134e8f4076d93a 100644 --- a/GUI/View/Fit/JobRealTimeWidget.h +++ b/GUI/View/Fit/JobRealTimeWidget.h @@ -40,8 +40,8 @@ private: void readSettings(); void writeSettings(); - int m_panelWidth; ItemStackPresenter<ParameterTuningWidget>* m_stackedWidget; + int m_panelWidth; }; #endif // BORNAGAIN_GUI_VIEW_FIT_JOBREALTIMEWIDGET_H diff --git a/GUI/View/Job/JobListView.cpp b/GUI/View/Job/JobListView.cpp index 1b5719aae76bae79a78441068613f2ba864e83be..d143fcc4692df162bfdc7a901e91c232485dda01 100644 --- a/GUI/View/Job/JobListView.cpp +++ b/GUI/View/Job/JobListView.cpp @@ -51,8 +51,6 @@ bool row_ascending(const QModelIndex& idx1, const QModelIndex& idx2) JobListView::JobListView(JobModel* jobs, QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f) { - setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); - auto* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); @@ -103,6 +101,8 @@ JobListView::JobListView(JobModel* jobs, QWidget* parent, Qt::WindowFlags f) updateActions(); ensureItemSelected(); + + setMinimumWidth(10); } QVector<JobItem*> JobListView::selectedJobs() const diff --git a/GUI/View/Job/JobPropertiesWidget.cpp b/GUI/View/Job/JobPropertiesWidget.cpp index 9012cb00dc670fd13fac723f3dd670c20a6c16dc..6d6164fe4ba476d80ac20c794336d88957f0e15e 100644 --- a/GUI/View/Job/JobPropertiesWidget.cpp +++ b/GUI/View/Job/JobPropertiesWidget.cpp @@ -39,7 +39,6 @@ enum ETabId { JOB_PROPERTIES, JOB_MESSAGES }; JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f) : QWidget(parent, f) , m_jobItem(nullptr) - , m_panelSize(10,10) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding); setWindowTitle(GUI::Constants::JobPropertiesWidgetName); @@ -66,32 +65,13 @@ JobPropertiesWidget::JobPropertiesWidget(QWidget* parent, Qt::WindowFlags f) connect(m_commentsEditor, &QTextEdit::textChanged, this, &JobPropertiesWidget::onCommentsEdited); - readSettings(); - adjustSize(); - setFixedHeight(m_panelSize.height()); + setMinimumWidth(10); } JobPropertiesWidget::~JobPropertiesWidget() { if (m_jobItem) disconnect(m_jobItem, nullptr, this, nullptr); - writeSettings(); -} - -void JobPropertiesWidget::resizeEvent(QResizeEvent*) -{ - setMinimumHeight(0); - setMaximumHeight(QWIDGETSIZE_MAX); -} - -QSize JobPropertiesWidget::sizeHint() const -{ - return QSize(GUI::Util::Style::PropertyPanelWidth(), GUI::Util::Style::PropertyPanelWidth()); -} - -QSize JobPropertiesWidget::minimumSizeHint() const -{ - return QSize(GUI::Util::Style::PropertyPanelWidth(), GUI::Util::Style::PropertyPanelWidth()); } void JobPropertiesWidget::setJobItem(JobItem* jobItem) @@ -139,22 +119,3 @@ void JobPropertiesWidget::onCommentsEdited() m_jobItem->blockSignals(false); } } - -void JobPropertiesWidget::readSettings() -{ - QSettings settings; - if (settings.childGroups().contains(GUI::Constants::S_JOB_PROPERTIES_PANEL)) { - settings.beginGroup(GUI::Constants::S_JOB_PROPERTIES_PANEL); - m_panelSize = settings.value(GUI::Constants::S_JOB_PROPERTIES_PANEL_SIZE).toSize(); - settings.endGroup(); - } -} - -void JobPropertiesWidget::writeSettings() -{ - QSettings settings; - settings.beginGroup(GUI::Constants::S_JOB_PROPERTIES_PANEL); - settings.setValue(GUI::Constants::S_JOB_PROPERTIES_PANEL_SIZE, size()); - settings.endGroup(); - settings.sync(); -} diff --git a/GUI/View/Job/JobPropertiesWidget.h b/GUI/View/Job/JobPropertiesWidget.h index fa9d021db133d05c4beea6ef0fa5dde368854cf1..a1feb343df15e6a06ebd595feb8334806545cd70 100644 --- a/GUI/View/Job/JobPropertiesWidget.h +++ b/GUI/View/Job/JobPropertiesWidget.h @@ -33,17 +33,11 @@ public: ~JobPropertiesWidget() override; void setJobItem(JobItem* jobItem); - void resizeEvent(QResizeEvent*) override; - QSize sizeHint() const override; - QSize minimumSizeHint() const override; - private: void notifyJobPropertyChange(); private slots: void onCommentsEdited(); - void readSettings(); - void writeSettings(); private: QTabWidget* m_tabWidget; @@ -51,7 +45,6 @@ private: JobPropertiesTableModel* m_propertiesModel; QTextEdit* m_commentsEditor; JobItem* m_jobItem; - QSize m_panelSize; }; #endif // BORNAGAIN_GUI_VIEW_JOB_JOBPROPERTIESWIDGET_H diff --git a/GUI/View/Job/JobSelectorWidget.cpp b/GUI/View/Job/JobSelectorWidget.cpp index 72d78a6c76e9a7860bb9ca7dcfbe6ac83296399a..42800e1daa59fb48669530c3b44b81d814d3545b 100644 --- a/GUI/View/Job/JobSelectorWidget.cpp +++ b/GUI/View/Job/JobSelectorWidget.cpp @@ -21,6 +21,26 @@ #include <QSplitter> #include <QVBoxLayout> +namespace { + +QVariant listToQVariant(const QList<int>& list) +{ + QList<QVariant> var_list; + for(int val : list) + var_list.push_back(QVariant(val)); + return QVariant(var_list); +} + +QList<int> qVariantToList(const QVariant& var) +{ + QList<QVariant> var_list = var.toList(); + QList<int> list; + for(QVariant var_val : var_list) + list.push_back(var_val.toInt()); + return list; +} + +} // namespace JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent) : QWidget(parent) , m_jobModel(jobModel) @@ -34,15 +54,15 @@ JobSelectorWidget::JobSelectorWidget(JobModel* jobModel, QWidget* parent) layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); - auto* splitter = new QSplitter(Qt::Vertical, this); - splitter->setChildrenCollapsible(true); - layout->addWidget(splitter); + m_splitter = new QSplitter(Qt::Vertical, this); + m_splitter->setChildrenCollapsible(true); + layout->addWidget(m_splitter); - m_jobListView = new JobListView(m_jobModel, splitter); - splitter->addWidget(m_jobListView); + m_jobListView = new JobListView(m_jobModel, m_splitter); + m_splitter->addWidget(m_jobListView); m_jobProperties = new JobPropertiesWidget(this); - splitter->addWidget(m_jobProperties); + m_splitter->addWidget(m_jobProperties); connect(m_jobListView, &JobListView::selectedJobsChanged, this, &JobSelectorWidget::onSelectedJobsChanged); @@ -86,12 +106,14 @@ void JobSelectorWidget::onSelectedJobsChanged(const QVector<JobItem*>& jobs) m_jobProperties->setJobItem(nullptr); } + void JobSelectorWidget::readSettings() { QSettings settings; if (settings.childGroups().contains(GUI::Constants::S_JOB_SELECTOR_PANEL)) { settings.beginGroup(GUI::Constants::S_JOB_SELECTOR_PANEL); m_panelSize = settings.value(GUI::Constants::S_JOB_SELECTOR_PANEL_SIZE).toSize(); + m_splitter->setSizes(qVariantToList(settings.value(GUI::Constants::S_JOB_SELECTOR_SPLITTER_SIZES))); settings.endGroup(); } } @@ -101,6 +123,7 @@ void JobSelectorWidget::writeSettings() QSettings settings; settings.beginGroup(GUI::Constants::S_JOB_SELECTOR_PANEL); settings.setValue(GUI::Constants::S_JOB_SELECTOR_PANEL_SIZE, size()); + settings.setValue(GUI::Constants::S_JOB_SELECTOR_SPLITTER_SIZES, listToQVariant(m_splitter->sizes())); settings.endGroup(); settings.sync(); } diff --git a/GUI/View/Job/JobSelectorWidget.h b/GUI/View/Job/JobSelectorWidget.h index 5b7c5176143dc842544f54bd1bf2ea50c22dbce3..33dcf4d1859682bb0f7265b56c6d89ead48600df 100644 --- a/GUI/View/Job/JobSelectorWidget.h +++ b/GUI/View/Job/JobSelectorWidget.h @@ -17,6 +17,7 @@ #include <QWidget> +class QSplitter; class JobModel; class JobItem; class JobListView; @@ -49,6 +50,7 @@ private: void readSettings(); void writeSettings(); + QSplitter* m_splitter; JobListView* m_jobListView; JobPropertiesWidget* m_jobProperties; JobModel* m_jobModel; diff --git a/GUI/View/Tool/StyleUtils.cpp b/GUI/View/Tool/StyleUtils.cpp index 407853910282a70d000e0ab52a6bc8e8c058cae4..03e4b50fa14491533f49816b3d7c30fc7b034d33 100644 --- a/GUI/View/Tool/StyleUtils.cpp +++ b/GUI/View/Tool/StyleUtils.cpp @@ -116,8 +116,3 @@ int GUI::Util::Style::SystemPointSize() { return QApplication::font().pointSize(); } - -int GUI::Util::Style::PropertyPanelWidth() -{ - return SizeOfLetterM().width() * 16; -} diff --git a/GUI/View/Tool/StyleUtils.h b/GUI/View/Tool/StyleUtils.h index d89ff918439946691ec10cc6ba1cad473a6201c4..0daeba2bed76191ebe8df0cd80b396f7a72a6365 100644 --- a/GUI/View/Tool/StyleUtils.h +++ b/GUI/View/Tool/StyleUtils.h @@ -46,10 +46,6 @@ QSize SizeOfLetterM(const QWidget* widget = nullptr); //! Returns size in points of default system font. int SystemPointSize(); -//! Returns typical width of the vertical property panel. - -int PropertyPanelWidth(); - } // namespace GUI::Util::Style #endif // BORNAGAIN_GUI_VIEW_TOOL_STYLEUTILS_H diff --git a/GUI/View/Tool/mainwindow_constants.h b/GUI/View/Tool/mainwindow_constants.h index 17a5b32ce6e4c81f9b754101490ea739fcbe9b49..c67dc1cf333ad8963ee0c1ab09ddef9d56a58f72 100644 --- a/GUI/View/Tool/mainwindow_constants.h +++ b/GUI/View/Tool/mainwindow_constants.h @@ -24,7 +24,6 @@ const char S_MAIN_WINDOW[] = "MainWindow"; const char S_JOB_MESSAGE_PANEL[] = "JobMessagePanel"; const char S_JOB_SELECTOR_PANEL[] = "JobSelectorPanel"; const char S_FIT_ACTIVITY_PANEL[] = "FitActivityPanel"; -const char S_JOB_PROPERTIES_PANEL[] = "JobPropertiesPanel"; const char S_SESSION_MODEL_VIEW[] = "SessionModelView"; // Settings keys @@ -34,8 +33,8 @@ const char S_VIEW_IS_ACTIVE[] = "ViewIsActive"; const char S_JOB_MESSAGE_PANEL_SIZE[] = "size"; const char S_JOB_SELECTOR_PANEL_SIZE[] = "size"; +const char S_JOB_SELECTOR_SPLITTER_SIZES[] = "splitter_sizes"; const char S_FIT_ACTIVITY_PANEL_SIZE[] = "size"; -const char S_JOB_PROPERTIES_PANEL_SIZE[] = "size"; const int MAX_RECENT_PROJECTS = 10;