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;