Clean up saving UI settings

This commit is contained in:
Jon Tibble 2010-04-26 17:41:31 +01:00
parent 471f032b6e
commit f895c66eb1
3 changed files with 24 additions and 54 deletions

View File

@ -43,8 +43,3 @@ class OpenLPDockWidget(QtGui.QDockWidget):
self.setObjectName(name)
self.setFloating(False)
log.debug(u'Init done')
def closeEvent(self, event):
self.parent.settingsmanager.setUIItemVisibility(
self.objectName(), False)
event.accept()

View File

@ -23,8 +23,7 @@
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
###############################################################################
from openlp.core.lib import str_to_bool
from openlp.core.utils import ConfigHelper
from PyQt4 import QtCore
class SettingsManager(object):
"""
@ -33,6 +32,7 @@ class SettingsManager(object):
individual components.
"""
def __init__(self, screen):
self.settings = QtCore.QSettings()
self.screen = screen.current
self.width = self.screen[u'size'].width()
self.height = self.screen[u'size'].height()
@ -50,26 +50,9 @@ class SettingsManager(object):
self.mainwindow_left + self.mainwindow_right) - 100 ) / 2
self.slidecontroller_image = self.slidecontroller - 50
self.showMediaManager = str_to_bool(ConfigHelper.get_config(
u'user interface', u'media manager', True))
self.showServiceManager = str_to_bool(ConfigHelper.get_config(
u'user interface', u'service manager', True))
self.showThemeManager = str_to_bool(ConfigHelper.get_config(
u'user interface', u'theme manager', True))
self.showPreviewPanel = str_to_bool(ConfigHelper.get_config(
u'user interface', u'preview panel', True))
def setUIItemVisibility(self, item=u'', isVisible=True):
if item:
if item == u'ThemeManagerDock':
ConfigHelper.set_config(u'user interface',
u'theme manager', isVisible)
elif item == u'ServiceManagerDock':
ConfigHelper.set_config(u'user interface',
u'service manager', isVisible)
elif item == u'MediaManagerDock':
ConfigHelper.set_config(u'user interface',
u'media manager', isVisible)
self.showPreviewPanel = self.settings.value(
u'user interface/preview panel', True).toBool()
def togglePreviewPanel(self, isVisible):
ConfigHelper.set_config(u'user interface', u'preview panel', isVisible)
self.settings.setValue(u'user interface/preview panel',
QtCore.QVariant(isVisible))

View File

@ -162,7 +162,6 @@ class Ui_MainWindow(object):
self.MediaManagerDock.setWidget(self.MediaManagerContents)
MainWindow.addDockWidget(
QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
self.MediaManagerDock.setVisible(self.settingsmanager.showMediaManager)
# Create the service manager
self.ServiceManagerDock = OpenLPDockWidget(MainWindow)
ServiceManagerIcon = build_icon(u':/system/system_servicemanager.png')
@ -174,18 +173,17 @@ class Ui_MainWindow(object):
self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
MainWindow.addDockWidget(
QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
self.ServiceManagerDock.setVisible(
self.settingsmanager.showServiceManager)
# Create the theme manager
self.ThemeManagerDock = OpenLPDockWidget(MainWindow)
ThemeManagerIcon = build_icon(u':/system/system_thememanager.png')
self.ThemeManagerDock.setWindowIcon(ThemeManagerIcon)
self.ThemeManagerDock.setObjectName(u'ThemeManagerDock')
self.ThemeManagerDock.setMinimumWidth(
self.settingsmanager.mainwindow_right)
self.ThemeManagerContents = ThemeManager(self)
self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
MainWindow.addDockWidget(
QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
self.ThemeManagerDock.setVisible(self.settingsmanager.showThemeManager)
# Create the menu items
self.FileNewItem = QtGui.QAction(MainWindow)
self.FileNewItem.setIcon(
@ -224,20 +222,18 @@ class Ui_MainWindow(object):
self.OptionsSettingsItem.setObjectName(u'OptionsSettingsItem')
self.ViewMediaManagerItem = QtGui.QAction(MainWindow)
self.ViewMediaManagerItem.setCheckable(True)
self.ViewMediaManagerItem.setChecked(
self.settingsmanager.showMediaManager)
self.ViewMediaManagerItem.setChecked(self.MediaManagerDock.isVisible())
self.ViewMediaManagerItem.setIcon(MediaManagerIcon)
self.ViewMediaManagerItem.setObjectName(u'ViewMediaManagerItem')
self.ViewThemeManagerItem = QtGui.QAction(MainWindow)
self.ViewThemeManagerItem.setCheckable(True)
self.ViewThemeManagerItem.setChecked(
self.settingsmanager.showThemeManager)
self.ViewThemeManagerItem.setChecked(self.ThemeManagerDock.isVisible())
self.ViewThemeManagerItem.setIcon(ThemeManagerIcon)
self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem')
self.ViewServiceManagerItem = QtGui.QAction(MainWindow)
self.ViewServiceManagerItem.setCheckable(True)
self.ViewServiceManagerItem.setChecked(
self.settingsmanager.showServiceManager)
self.ServiceManagerDock.isVisible())
self.ViewServiceManagerItem.setIcon(ServiceManagerIcon)
self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem')
self.PluginItem = QtGui.QAction(MainWindow)
@ -693,20 +689,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def toggleMediaManager(self, visible):
if self.MediaManagerDock.isVisible() != visible:
self.MediaManagerDock.setVisible(visible)
self.settingsmanager.setUIItemVisibility(
self.MediaManagerDock.objectName(), visible)
def toggleServiceManager(self, visible):
if self.ServiceManagerDock.isVisible() != visible:
self.ServiceManagerDock.setVisible(visible)
self.settingsmanager.setUIItemVisibility(
self.ServiceManagerDock.objectName(), visible)
def toggleThemeManager(self, visible):
if self.ThemeManagerDock.isVisible() != visible:
self.ThemeManagerDock.setVisible(visible)
self.settingsmanager.setUIItemVisibility(
self.ThemeManagerDock.objectName(), visible)
def togglePreviewPanel(self):
previewBool = self.PreviewController.Panel.isVisible()
@ -716,25 +706,27 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def loadSettings(self):
log.debug(u'Loading QSettings')
settings = QtCore.QSettings()
self.recentFiles = settings.value(u'RecentFiles').toStringList()
self.move(settings.value(u'MainWindow/Position',
self.recentFiles = settings.value(
u'general/recent files').toStringList()
self.move(settings.value(u'user interface/main window position',
QtCore.QVariant(QtCore.QPoint(0, 0))).toPoint())
self.restoreGeometry(
settings.value(u'MainWindow/Geometry').toByteArray())
self.restoreGeometry(settings.value(
u'user interface/main window geometry').toByteArray())
self.restoreState(
settings.value(u'MainWindow/State').toByteArray())
settings.value(u'user interface/main window state').toByteArray())
def saveSettings(self):
log.debug(u'Saving QSettings')
settings = QtCore.QSettings()
recentFiles = QtCore.QVariant(self.recentFiles) \
if self.recentFiles else QtCore.QVariant()
settings.setValue(u'RecentFiles', recentFiles)
settings.setValue(u'MainWindow/Position', QtCore.QVariant(self.pos()))
settings.setValue(
u'MainWindow/State', QtCore.QVariant(self.saveState()))
settings.setValue(
u'MainWindow/Geometry', QtCore.QVariant(self.saveGeometry()))
settings.setValue(u'general/recent files', recentFiles)
settings.setValue(u'user interface/main window position',
QtCore.QVariant(self.pos()))
settings.setValue(u'user interface/main window state',
QtCore.QVariant(self.saveState()))
settings.setValue(u'user interface/main window geometry',
QtCore.QVariant(self.saveGeometry()))
def updateFileMenu(self):
self.FileMenu.clear()