Skip to content
Snippets Groups Projects
Commit a4334f9e authored by Peterson, Peter's avatar Peterson, Peter
Browse files

Save message window log level in user settings

Also changes the initialization sequence so the settings aren't read in
until the widgets are created. Now any widget in main window that
supports saving and loading from settings will do so automatically.
parent 3de5d153
No related merge requests found
......@@ -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():
......
......@@ -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)
......
......@@ -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))
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment