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