From 70df9bf402dbae32194fee8c782c9d94e046dc59 Mon Sep 17 00:00:00 2001
From: Tom Perkins <thomas.perkins@stfc.ac.uk>
Date: Thu, 17 Nov 2016 17:09:43 +0000
Subject: [PATCH] Add a splitter to separate extra widgets from browser

This enables you to give more space to the fit function

re #18059
---
 .../MuonFitPropertyBrowser.h                  |  4 ++--
 .../src/MuonFitPropertyBrowser.cpp            | 20 +++++++++++++------
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
index c2265d06f0f..2f44fbe77a6 100644
--- a/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
+++ b/MantidQt/MantidWidgets/inc/MantidQtMantidWidgets/MuonFitPropertyBrowser.h
@@ -113,8 +113,8 @@ private:
   /// workspaces
   void finishAfterSimultaneousFit(const Mantid::API::IAlgorithm *fitAlg,
                                   const int nWorkspaces) const;
-  /// Splitter for additional widgets
-  QSplitter *m_widgetSplitter;
+  /// Splitter for additional widgets and splitter between this and browser
+  QSplitter *m_widgetSplitter, *m_mainSplitter;
   /// Names of workspaces to fit
   std::vector<std::string> m_workspacesToFit;
   /// Label to use for simultaneous fits
diff --git a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
index 9e0ffb641cd..507f8c7ec56 100644
--- a/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
+++ b/MantidQt/MantidWidgets/src/MuonFitPropertyBrowser.cpp
@@ -61,7 +61,8 @@ const std::string MuonFitPropertyBrowser::SIMULTANEOUS_PREFIX{"MuonSimulFit_"};
 */
 MuonFitPropertyBrowser::MuonFitPropertyBrowser(QWidget *parent,
                                                QObject *mantidui)
-    : FitPropertyBrowser(parent, mantidui), m_widgetSplitter(nullptr) {}
+    : FitPropertyBrowser(parent, mantidui), m_widgetSplitter(nullptr),
+      m_mainSplitter(nullptr) {}
 
 /**
 * Initialise the muon fit property browser.
@@ -156,16 +157,23 @@ void MuonFitPropertyBrowser::init() {
   initLayout(w);
 
   // Create an empty splitter that can hold extra widgets
-  // and add it after the buttons but before the browser
-  m_widgetSplitter = new QSplitter(w);
-  m_widgetSplitter->setOrientation(Qt::Vertical);
+  m_widgetSplitter = new QSplitter(Qt::Vertical, w);
   m_widgetSplitter->setSizePolicy(QSizePolicy::Policy::Expanding,
                                   QSizePolicy::Policy::Expanding);
+
+  // This splitter separates the "extra widgets" region from the browser
+  m_mainSplitter = new QSplitter(Qt::Vertical, w);
+  m_mainSplitter->insertWidget(0, m_widgetSplitter);
+  m_mainSplitter->insertWidget(1, m_browser);
+  m_mainSplitter->setStretchFactor(0, 1);
+  m_mainSplitter->setStretchFactor(1, 0);
+
+  // Insert after the buttons
   auto parentLayout = qobject_cast<QVBoxLayout *>(w->layout());
   if (parentLayout) {
-    const int index = parentLayout->count() - 2;
+    const int index = parentLayout->count() - 1;
     constexpr int stretchFactor = 10; // so these widgets get any extra space
-    parentLayout->insertWidget(index, m_widgetSplitter, stretchFactor);
+    parentLayout->insertWidget(index, m_mainSplitter, stretchFactor);
     parentLayout->setSpacing(0);
     parentLayout->setMargin(0);
     parentLayout->setContentsMargins(0, 0, 0, 0);
-- 
GitLab