forked from openlp/openlp
Save UI: Switch to saving on change using SettingsManager
This commit is contained in:
parent
78b553ac23
commit
5e644ee1ae
@ -18,10 +18,14 @@ this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|||||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from openlp.core.lib import str_to_bool
|
||||||
|
from openlp.core.utils import ConfigHelper
|
||||||
|
|
||||||
class SettingsManager(object):
|
class SettingsManager(object):
|
||||||
"""
|
"""
|
||||||
Class to control the size of the UI components so they size correctly
|
Class to control the size of the UI components so they size correctly
|
||||||
This class is created by the main window and then calculates the size of individual components
|
This class is created by the main window and then calculates the size of
|
||||||
|
individual components
|
||||||
"""
|
"""
|
||||||
def __init__(self, screen):
|
def __init__(self, screen):
|
||||||
self.screen = screen[0]
|
self.screen = screen[0]
|
||||||
@ -31,3 +35,23 @@ class SettingsManager(object):
|
|||||||
self.mainwindow_height = self.height * 0.8
|
self.mainwindow_height = self.height * 0.8
|
||||||
self.mainwindow_docbars = self.width / 3
|
self.mainwindow_docbars = self.width / 3
|
||||||
self.mainwindow_slidecontroller = self.width / 6
|
self.mainwindow_slidecontroller = self.width / 6
|
||||||
|
self.showMediaManager = str_to_bool(
|
||||||
|
ConfigHelper.get_config(u'ui', u'display mediamanager', True))
|
||||||
|
self.showServiceManager = str_to_bool(
|
||||||
|
ConfigHelper.get_config(u'ui', u'display servicemanager', True))
|
||||||
|
self.showThemeManager = str_to_bool(
|
||||||
|
ConfigHelper.get_config(u'ui', u'display thememanager', True))
|
||||||
|
self.showPreviewPanel = str_to_bool(
|
||||||
|
ConfigHelper.get_config(u'ui', u'display previewpanel', True))
|
||||||
|
|
||||||
|
def toggleMediaManager(self, isVisible):
|
||||||
|
ConfigHelper.set_config(u'ui', u'display mediamanager', isVisible)
|
||||||
|
|
||||||
|
def toggleServiceManager(self, isVisible):
|
||||||
|
ConfigHelper.set_config(u'ui', u'display servicemanager', isVisible)
|
||||||
|
|
||||||
|
def toggleThemeManager(self, isVisible):
|
||||||
|
ConfigHelper.set_config(u'ui', u'display thememanager', isVisible)
|
||||||
|
|
||||||
|
def togglePreviewPanel(self, isVisible):
|
||||||
|
ConfigHelper.set_config(u'ui', u'display previewpanel', isVisible)
|
||||||
|
@ -121,6 +121,7 @@ class Ui_MainWindow(object):
|
|||||||
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
self.MediaManagerDock.setWidget(self.MediaManagerContents)
|
||||||
MainWindow.addDockWidget(
|
MainWindow.addDockWidget(
|
||||||
QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
|
||||||
|
self.MediaManagerDock.setVisible(self.settingsmanager.showMediaManager)
|
||||||
# Create the service manager
|
# Create the service manager
|
||||||
self.ServiceManagerDock = QtGui.QDockWidget(MainWindow)
|
self.ServiceManagerDock = QtGui.QDockWidget(MainWindow)
|
||||||
ServiceManagerIcon = QtGui.QIcon()
|
ServiceManagerIcon = QtGui.QIcon()
|
||||||
@ -136,6 +137,8 @@ class Ui_MainWindow(object):
|
|||||||
self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
|
self.ServiceManagerDock.setWidget(self.ServiceManagerContents)
|
||||||
MainWindow.addDockWidget(
|
MainWindow.addDockWidget(
|
||||||
QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
|
QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock)
|
||||||
|
self.ServiceManagerDock.setVisible(
|
||||||
|
self.settingsmanager.showServiceManager)
|
||||||
# Create the theme manager
|
# Create the theme manager
|
||||||
self.ThemeManagerDock = QtGui.QDockWidget(MainWindow)
|
self.ThemeManagerDock = QtGui.QDockWidget(MainWindow)
|
||||||
ThemeManagerIcon = QtGui.QIcon()
|
ThemeManagerIcon = QtGui.QIcon()
|
||||||
@ -149,6 +152,7 @@ class Ui_MainWindow(object):
|
|||||||
self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
|
self.ThemeManagerDock.setWidget(self.ThemeManagerContents)
|
||||||
MainWindow.addDockWidget(
|
MainWindow.addDockWidget(
|
||||||
QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
|
QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock)
|
||||||
|
self.ThemeManagerDock.setVisible(self.settingsmanager.showThemeManager)
|
||||||
# Create the menu items
|
# Create the menu items
|
||||||
self.FileNewItem = QtGui.QAction(MainWindow)
|
self.FileNewItem = QtGui.QAction(MainWindow)
|
||||||
self.FileNewItem.setIcon(
|
self.FileNewItem.setIcon(
|
||||||
@ -191,17 +195,20 @@ class Ui_MainWindow(object):
|
|||||||
self.OptionsSettingsItem.setObjectName(u'OptionsSettingsItem')
|
self.OptionsSettingsItem.setObjectName(u'OptionsSettingsItem')
|
||||||
self.ViewMediaManagerItem = QtGui.QAction(MainWindow)
|
self.ViewMediaManagerItem = QtGui.QAction(MainWindow)
|
||||||
self.ViewMediaManagerItem.setCheckable(True)
|
self.ViewMediaManagerItem.setCheckable(True)
|
||||||
self.ViewMediaManagerItem.setChecked(True)
|
self.ViewMediaManagerItem.setChecked(
|
||||||
|
self.settingsmanager.showMediaManager)
|
||||||
self.ViewMediaManagerItem.setIcon(icon)
|
self.ViewMediaManagerItem.setIcon(icon)
|
||||||
self.ViewMediaManagerItem.setObjectName(u'ViewMediaManagerItem')
|
self.ViewMediaManagerItem.setObjectName(u'ViewMediaManagerItem')
|
||||||
self.ViewThemeManagerItem = QtGui.QAction(MainWindow)
|
self.ViewThemeManagerItem = QtGui.QAction(MainWindow)
|
||||||
self.ViewThemeManagerItem.setCheckable(True)
|
self.ViewThemeManagerItem.setCheckable(True)
|
||||||
self.ViewThemeManagerItem.setChecked(True)
|
self.ViewThemeManagerItem.setChecked(
|
||||||
|
self.settingsmanager.showThemeManager)
|
||||||
self.ViewThemeManagerItem.setIcon(ThemeManagerIcon)
|
self.ViewThemeManagerItem.setIcon(ThemeManagerIcon)
|
||||||
self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem')
|
self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem')
|
||||||
self.ViewServiceManagerItem = QtGui.QAction(MainWindow)
|
self.ViewServiceManagerItem = QtGui.QAction(MainWindow)
|
||||||
self.ViewServiceManagerItem.setCheckable(True)
|
self.ViewServiceManagerItem.setCheckable(True)
|
||||||
self.ViewServiceManagerItem.setChecked(True)
|
self.ViewServiceManagerItem.setChecked(
|
||||||
|
self.settingsmanager.showServiceManager)
|
||||||
self.ViewServiceManagerItem.setIcon(ServiceManagerIcon)
|
self.ViewServiceManagerItem.setIcon(ServiceManagerIcon)
|
||||||
self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem')
|
self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem')
|
||||||
self.ToolsAlertItem = QtGui.QAction(MainWindow)
|
self.ToolsAlertItem = QtGui.QAction(MainWindow)
|
||||||
@ -245,8 +252,11 @@ class Ui_MainWindow(object):
|
|||||||
self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem')
|
self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem')
|
||||||
self.action_Preview_Panel = QtGui.QAction(MainWindow)
|
self.action_Preview_Panel = QtGui.QAction(MainWindow)
|
||||||
self.action_Preview_Panel.setCheckable(True)
|
self.action_Preview_Panel.setCheckable(True)
|
||||||
self.action_Preview_Panel.setChecked(True)
|
self.action_Preview_Panel.setChecked(
|
||||||
|
self.settingsmanager.showPreviewPanel)
|
||||||
self.action_Preview_Panel.setObjectName(u'action_Preview_Panel')
|
self.action_Preview_Panel.setObjectName(u'action_Preview_Panel')
|
||||||
|
self.PreviewController.Panel.setVisible(
|
||||||
|
self.settingsmanager.showPreviewPanel)
|
||||||
self.ModeLiveItem = QtGui.QAction(MainWindow)
|
self.ModeLiveItem = QtGui.QAction(MainWindow)
|
||||||
self.ModeLiveItem.setObjectName(u'ModeLiveItem')
|
self.ModeLiveItem.setObjectName(u'ModeLiveItem')
|
||||||
self.FileImportMenu.addAction(self.ImportThemeItem)
|
self.FileImportMenu.addAction(self.ImportThemeItem)
|
||||||
@ -453,16 +463,16 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.ThemeManagerContents.onExportTheme)
|
self.ThemeManagerContents.onExportTheme)
|
||||||
QtCore.QObject.connect(self.ViewMediaManagerItem,
|
QtCore.QObject.connect(self.ViewMediaManagerItem,
|
||||||
QtCore.SIGNAL(u'triggered(bool)'),
|
QtCore.SIGNAL(u'triggered(bool)'),
|
||||||
self.MediaManagerDock.setVisible)
|
self.toggleMediaManager)
|
||||||
QtCore.QObject.connect(self.ViewServiceManagerItem,
|
QtCore.QObject.connect(self.ViewServiceManagerItem,
|
||||||
QtCore.SIGNAL(u'triggered(bool)'),
|
QtCore.SIGNAL(u'triggered(bool)'),
|
||||||
self.ServiceManagerDock.setVisible)
|
self.toggleServiceManager)
|
||||||
QtCore.QObject.connect(self.ViewThemeManagerItem,
|
QtCore.QObject.connect(self.ViewThemeManagerItem,
|
||||||
QtCore.SIGNAL(u'triggered(bool)'),
|
QtCore.SIGNAL(u'triggered(bool)'),
|
||||||
self.ThemeManagerDock.setVisible)
|
self.toggleThemeManager)
|
||||||
QtCore.QObject.connect(self.action_Preview_Panel,
|
QtCore.QObject.connect(self.action_Preview_Panel,
|
||||||
QtCore.SIGNAL(u'toggled(bool)'),
|
QtCore.SIGNAL(u'toggled(bool)'),
|
||||||
self.PreviewController.Panel.setVisible)
|
self.togglePreviewPanel)
|
||||||
QtCore.QObject.connect(self.MediaManagerDock,
|
QtCore.QObject.connect(self.MediaManagerDock,
|
||||||
QtCore.SIGNAL(u'visibilityChanged(bool)'),
|
QtCore.SIGNAL(u'visibilityChanged(bool)'),
|
||||||
self.ViewMediaManagerItem.setChecked)
|
self.ViewMediaManagerItem.setChecked)
|
||||||
@ -472,6 +482,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
QtCore.QObject.connect(self.ThemeManagerDock,
|
QtCore.QObject.connect(self.ThemeManagerDock,
|
||||||
QtCore.SIGNAL(u'visibilityChanged(bool)'),
|
QtCore.SIGNAL(u'visibilityChanged(bool)'),
|
||||||
self.ViewThemeManagerItem.setChecked)
|
self.ViewThemeManagerItem.setChecked)
|
||||||
|
QtCore.QObject.connect(self.PreviewController.Panel,
|
||||||
|
QtCore.SIGNAL(u'visibilityChanged(bool)'),
|
||||||
|
self.action_Preview_Panel.setChecked)
|
||||||
QtCore.QObject.connect(self.HelpAboutItem,
|
QtCore.QObject.connect(self.HelpAboutItem,
|
||||||
QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked)
|
QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked)
|
||||||
QtCore.QObject.connect(self.ToolsAlertItem,
|
QtCore.QObject.connect(self.ToolsAlertItem,
|
||||||
@ -516,8 +529,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
self.ThemeManagerContents.loadThemes()
|
self.ThemeManagerContents.loadThemes()
|
||||||
log.info(u'Load data from Settings')
|
log.info(u'Load data from Settings')
|
||||||
self.settingsForm.postSetUp()
|
self.settingsForm.postSetUp()
|
||||||
# Load saved UI settings
|
|
||||||
self.loadUi()
|
|
||||||
|
|
||||||
def getMonitorNumber(self):
|
def getMonitorNumber(self):
|
||||||
"""
|
"""
|
||||||
@ -589,19 +600,16 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
if ret == QtGui.QMessageBox.Save:
|
if ret == QtGui.QMessageBox.Save:
|
||||||
self.ServiceManagerContents.onSaveService()
|
self.ServiceManagerContents.onSaveService()
|
||||||
self.mainDisplay.close()
|
self.mainDisplay.close()
|
||||||
self.saveUi()
|
|
||||||
self.cleanUp()
|
self.cleanUp()
|
||||||
event.accept()
|
event.accept()
|
||||||
elif ret == QtGui.QMessageBox.Discard:
|
elif ret == QtGui.QMessageBox.Discard:
|
||||||
self.mainDisplay.close()
|
self.mainDisplay.close()
|
||||||
self.saveUi()
|
|
||||||
self.cleanUp()
|
self.cleanUp()
|
||||||
event.accept()
|
event.accept()
|
||||||
else:
|
else:
|
||||||
event.ignore()
|
event.ignore()
|
||||||
else:
|
else:
|
||||||
self.mainDisplay.close()
|
self.mainDisplay.close()
|
||||||
self.saveUi()
|
|
||||||
self.cleanUp()
|
self.cleanUp()
|
||||||
event.accept()
|
event.accept()
|
||||||
|
|
||||||
@ -610,30 +618,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
log.info(u'cleanup plugins')
|
log.info(u'cleanup plugins')
|
||||||
self.plugin_manager.finalise_plugins()
|
self.plugin_manager.finalise_plugins()
|
||||||
|
|
||||||
def loadUi(self):
|
|
||||||
# Loads UI settings from openlp.conf
|
|
||||||
log.info(u'Load UI settings')
|
|
||||||
self.MediaManagerDock.setVisible(str_to_bool(
|
|
||||||
ConfigHelper.get_config(u'ui', u'display mediamanager', True)))
|
|
||||||
self.ServiceManagerDock.setVisible(str_to_bool(
|
|
||||||
ConfigHelper.get_config(u'ui', u'display servicemanager', True)))
|
|
||||||
self.ThemeManagerDock.setVisible(str_to_bool(
|
|
||||||
ConfigHelper.get_config(u'ui', u'display thememanager', True)))
|
|
||||||
self.action_Preview_Panel.setChecked(str_to_bool(
|
|
||||||
ConfigHelper.get_config(u'ui', u'display previewpanel', True)))
|
|
||||||
|
|
||||||
def saveUi(self):
|
|
||||||
# Saves UI settings to openlp.conf
|
|
||||||
log.info(u'Save UI settings')
|
|
||||||
ConfigHelper.set_config(u'ui', u'display mediamanager',
|
|
||||||
self.MediaManagerDock.isVisible())
|
|
||||||
ConfigHelper.set_config(u'ui', u'display servicemanager',
|
|
||||||
self.ServiceManagerDock.isVisible())
|
|
||||||
ConfigHelper.set_config(u'ui', u'display thememanager',
|
|
||||||
self.ThemeManagerDock.isVisible())
|
|
||||||
ConfigHelper.set_config(u'ui', u'display previewpanel',
|
|
||||||
self.PreviewController.Panel.isVisible())
|
|
||||||
|
|
||||||
def OosChanged(self, reset=False, oosName=None):
|
def OosChanged(self, reset=False, oosName=None):
|
||||||
"""
|
"""
|
||||||
Hook to change the title if the OOS has been changed
|
Hook to change the title if the OOS has been changed
|
||||||
@ -654,3 +638,23 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def defaultThemeChanged(self, theme):
|
def defaultThemeChanged(self, theme):
|
||||||
self.DefaultThemeLabel.setText(self.defaultThemeText + theme)
|
self.DefaultThemeLabel.setText(self.defaultThemeText + theme)
|
||||||
|
|
||||||
|
def toggleMediaManager(self):
|
||||||
|
mediaBool = self.MediaManagerDock.isVisible()
|
||||||
|
self.MediaManagerDock.setVisible(not mediaBool)
|
||||||
|
self.settingsmanager.toggleMediaManager(not mediaBool)
|
||||||
|
|
||||||
|
def toggleServiceManager(self):
|
||||||
|
serviceBool = self.ServiceManagerDock.isVisible()
|
||||||
|
self.ServiceManagerDock.setVisible(not serviceBool)
|
||||||
|
self.settingsmanager.toggleServiceManager(not serviceBool)
|
||||||
|
|
||||||
|
def toggleThemeManager(self):
|
||||||
|
themeBool = self.ThemeManagerDock.isVisible()
|
||||||
|
self.ThemeManagerDock.setVisible(not themeBool)
|
||||||
|
self.settingsmanager.toggleThemeManager(not themeBool)
|
||||||
|
|
||||||
|
def togglePreviewPanel(self):
|
||||||
|
previewBool = self.PreviewController.Panel.isVisible()
|
||||||
|
self.PreviewController.Panel.setVisible(not previewBool)
|
||||||
|
self.settingsmanager.togglePreviewPanel(not previewBool)
|
||||||
|
Loading…
Reference in New Issue
Block a user