diff --git a/qt/applications/workbench/workbench/app/mainwindow.py b/qt/applications/workbench/workbench/app/mainwindow.py index d67e54aa691f46953ed6a4c3efc62b2c392dfd08..87fb6461eb4e07d5738b4b122111e31c8a5ddb24 100644 --- a/qt/applications/workbench/workbench/app/mainwindow.py +++ b/qt/applications/workbench/workbench/app/mainwindow.py @@ -113,9 +113,6 @@ class MainWindow(QMainWindow): # -- instance attributes -- self.setWindowTitle("Mantid Workbench") - # uses default configuration as necessary - self.readSettings(CONF) - # widgets self.messagedisplay = None self.ipythonconsole = None @@ -184,6 +181,9 @@ class MainWindow(QMainWindow): self.workspacewidget.register_plugin() self.widgets.append(self.workspacewidget) + # uses default configuration as necessary + self.readSettings(CONF) + self.setup_layout() self.create_actions() self.populate_menus() @@ -397,16 +397,22 @@ class MainWindow(QMainWindow): else: self.setWindowState(Qt.WindowMaximized) - # have algorithm dialogs do their thing + # read in settings for children AlgorithmInputHistory().readSettings(settings) + for widget in self.widgets: + if hasattr(widget, 'readSettings'): + widget.readSettings(settings) def writeSettings(self, settings): settings.set('main/window/size', self.size()) # QSize settings.set('main/window/position', self.pos()) # QPoint settings.set('main/window/state', self.saveState()) # QByteArray - # have algorithm dialogs do their thing + # write out settings for children AlgorithmInputHistory().writeSettings(settings) + for widget in self.widgets: + if hasattr(widget, 'writeSettings'): + widget.writeSettings(settings) def initialize(): diff --git a/qt/applications/workbench/workbench/plugins/logmessagedisplay.py b/qt/applications/workbench/workbench/plugins/logmessagedisplay.py index bf1344c4d02ea6a09f0aecfc4f9f0b4cb2b1a2b5..264a2cbd57724bffeaac95456f1b926f410bc311 100644 --- a/qt/applications/workbench/workbench/plugins/logmessagedisplay.py +++ b/qt/applications/workbench/workbench/plugins/logmessagedisplay.py @@ -19,6 +19,7 @@ from qtpy.QtWidgets import QHBoxLayout # local imports from workbench.plugins.base import PluginWidget +from mantidqt.utils.qt import toQSettings # Default logs at notice DEFAULT_LOG_PRIORITY = 5 @@ -47,8 +48,11 @@ class LogMessageDisplay(PluginWidget): def get_plugin_title(self): return "Messages" - def read_user_settings(self, qsettings): - self.display.readSettings(qsettings) + def readSettings(self, settings): + self.display.readSettings(toQSettings(settings)) + + def writeSettings(self, settings): + self.display.writeSettings(toQSettings(settings)) def register_plugin(self, menu=None): self.display.attachLoggingChannel(DEFAULT_LOG_PRIORITY) diff --git a/qt/python/mantidqt/algorithminputhistory.py b/qt/python/mantidqt/algorithminputhistory.py index a249753536a0179f9827ecd561e1661c6f99b468..5ca6c0ede225a3d30d7a0f48ba156df834479cab 100644 --- a/qt/python/mantidqt/algorithminputhistory.py +++ b/qt/python/mantidqt/algorithminputhistory.py @@ -9,21 +9,12 @@ # from __future__ import (absolute_import) -from mantidqt.utils.qt import import_qt +from mantidqt.utils.qt import import_qt, toQSettings _AlgorithmInputHistory = import_qt('._common', 'mantidqt', 'AlgorithmInputHistory') -def _toQSettings(settings): - '''Utility function to convert supplied settings object to a qtpy.QtCore.QSettings - ''' - try: # workbench.config.user - return settings.qsettings - except: # must be a QSettings already - return settings - - class AlgorithmInputHistory(object): '''Wrapper class around MantidQtWidgets::Common::AlgorithmInputHistory ''' @@ -33,7 +24,7 @@ class AlgorithmInputHistory(object): pass def readSettings(self, settings): - self._singleton.readSettings(_toQSettings(settings)) + self._singleton.readSettings(toQSettings(settings)) def writeSettings(self, settings): - self._singleton.writeSettings(_toQSettings(settings)) + self._singleton.writeSettings(toQSettings(settings)) diff --git a/qt/python/mantidqt/utils/qt/__init__.py b/qt/python/mantidqt/utils/qt/__init__.py index 3f8a38b877b3260c22ed6eb6a24e658d29b81fd7..a622bdb6e198cbb743d6af2aff49d97fc7e7ce11 100644 --- a/qt/python/mantidqt/utils/qt/__init__.py +++ b/qt/python/mantidqt/utils/qt/__init__.py @@ -152,3 +152,12 @@ def add_actions(target, actions): else: raise ValueError("Unexpected action type. " "Expected one of (QAction,QMenu) but found '{}'".format(type(action))) + + +def toQSettings(settings): + '''Utility function to convert supplied settings object to a qtpy.QtCore.QSettings + ''' + if hasattr(settings, 'qsettings'): # workbench.config.user + return settings.qsettings + else: # must be a QSettings already + return settings