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 branches found
No related tags found
No related merge requests found
...@@ -113,9 +113,6 @@ class MainWindow(QMainWindow): ...@@ -113,9 +113,6 @@ class MainWindow(QMainWindow):
# -- instance attributes -- # -- instance attributes --
self.setWindowTitle("Mantid Workbench") self.setWindowTitle("Mantid Workbench")
# uses default configuration as necessary
self.readSettings(CONF)
# widgets # widgets
self.messagedisplay = None self.messagedisplay = None
self.ipythonconsole = None self.ipythonconsole = None
...@@ -184,6 +181,9 @@ class MainWindow(QMainWindow): ...@@ -184,6 +181,9 @@ class MainWindow(QMainWindow):
self.workspacewidget.register_plugin() self.workspacewidget.register_plugin()
self.widgets.append(self.workspacewidget) self.widgets.append(self.workspacewidget)
# uses default configuration as necessary
self.readSettings(CONF)
self.setup_layout() self.setup_layout()
self.create_actions() self.create_actions()
self.populate_menus() self.populate_menus()
...@@ -397,16 +397,22 @@ class MainWindow(QMainWindow): ...@@ -397,16 +397,22 @@ class MainWindow(QMainWindow):
else: else:
self.setWindowState(Qt.WindowMaximized) self.setWindowState(Qt.WindowMaximized)
# have algorithm dialogs do their thing # read in settings for children
AlgorithmInputHistory().readSettings(settings) AlgorithmInputHistory().readSettings(settings)
for widget in self.widgets:
if hasattr(widget, 'readSettings'):
widget.readSettings(settings)
def writeSettings(self, settings): def writeSettings(self, settings):
settings.set('main/window/size', self.size()) # QSize settings.set('main/window/size', self.size()) # QSize
settings.set('main/window/position', self.pos()) # QPoint settings.set('main/window/position', self.pos()) # QPoint
settings.set('main/window/state', self.saveState()) # QByteArray settings.set('main/window/state', self.saveState()) # QByteArray
# have algorithm dialogs do their thing # write out settings for children
AlgorithmInputHistory().writeSettings(settings) AlgorithmInputHistory().writeSettings(settings)
for widget in self.widgets:
if hasattr(widget, 'writeSettings'):
widget.writeSettings(settings)
def initialize(): def initialize():
......
...@@ -19,6 +19,7 @@ from qtpy.QtWidgets import QHBoxLayout ...@@ -19,6 +19,7 @@ from qtpy.QtWidgets import QHBoxLayout
# local imports # local imports
from workbench.plugins.base import PluginWidget from workbench.plugins.base import PluginWidget
from mantidqt.utils.qt import toQSettings
# Default logs at notice # Default logs at notice
DEFAULT_LOG_PRIORITY = 5 DEFAULT_LOG_PRIORITY = 5
...@@ -47,8 +48,11 @@ class LogMessageDisplay(PluginWidget): ...@@ -47,8 +48,11 @@ class LogMessageDisplay(PluginWidget):
def get_plugin_title(self): def get_plugin_title(self):
return "Messages" return "Messages"
def read_user_settings(self, qsettings): def readSettings(self, settings):
self.display.readSettings(qsettings) self.display.readSettings(toQSettings(settings))
def writeSettings(self, settings):
self.display.writeSettings(toQSettings(settings))
def register_plugin(self, menu=None): def register_plugin(self, menu=None):
self.display.attachLoggingChannel(DEFAULT_LOG_PRIORITY) self.display.attachLoggingChannel(DEFAULT_LOG_PRIORITY)
......
...@@ -9,21 +9,12 @@ ...@@ -9,21 +9,12 @@
# #
from __future__ import (absolute_import) 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') _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): class AlgorithmInputHistory(object):
'''Wrapper class around MantidQtWidgets::Common::AlgorithmInputHistory '''Wrapper class around MantidQtWidgets::Common::AlgorithmInputHistory
''' '''
...@@ -33,7 +24,7 @@ class AlgorithmInputHistory(object): ...@@ -33,7 +24,7 @@ class AlgorithmInputHistory(object):
pass pass
def readSettings(self, settings): def readSettings(self, settings):
self._singleton.readSettings(_toQSettings(settings)) self._singleton.readSettings(toQSettings(settings))
def writeSettings(self, settings): def writeSettings(self, settings):
self._singleton.writeSettings(_toQSettings(settings)) self._singleton.writeSettings(toQSettings(settings))
...@@ -152,3 +152,12 @@ def add_actions(target, actions): ...@@ -152,3 +152,12 @@ def add_actions(target, actions):
else: else:
raise ValueError("Unexpected action type. " raise ValueError("Unexpected action type. "
"Expected one of (QAction,QMenu) but found '{}'".format(type(action))) "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