Merge lp:~meths/openlp/trivialfixes into lp:openlp

Proposed by Jon Tibble
Status: Merged
Merged at revision: not available
Proposed branch: lp:~meths/openlp/trivialfixes
Merge into: lp:openlp
Diff against target: None lines
To merge this branch: bzr merge lp:~meths/openlp/trivialfixes
Reviewer Review Type Date Requested Status
Tim Bentley Approve
Review via email: mp+12114@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Jon Tibble (meths) wrote :

Refactor the dock widget saving

- Fixes issue when using close button on widget the visibility wasn't saved

Revision history for this message
Tim Bentley (trb143) wrote :

Looks good

review: Approve
lp:~meths/openlp/trivialfixes updated
554. By Jon Tibble

Dock Widget Refactoring

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'openlp/core/lib/__init__.py'
--- openlp/core/lib/__init__.py 2009-09-18 17:37:11 +0000
+++ openlp/core/lib/__init__.py 2009-09-19 11:25:01 +0000
@@ -121,6 +121,7 @@
121from serviceitem import ServiceType121from serviceitem import ServiceType
122from serviceitem import ServiceItem122from serviceitem import ServiceItem
123from toolbar import OpenLPToolbar123from toolbar import OpenLPToolbar
124from dockwidget import OpenLPDockWidget
124from songxmlhandler import SongXMLBuilder, SongXMLParser125from songxmlhandler import SongXMLBuilder, SongXMLParser
125from themexmlhandler import ThemeXML126from themexmlhandler import ThemeXML
126from renderer import Renderer127from renderer import Renderer
127128
=== added file 'openlp/core/lib/dockwidget.py'
--- openlp/core/lib/dockwidget.py 1970-01-01 00:00:00 +0000
+++ openlp/core/lib/dockwidget.py 2009-09-19 11:25:01 +0000
@@ -0,0 +1,53 @@
1# -*- coding: utf-8 -*-
2# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
3
4###############################################################################
5# OpenLP - Open Source Lyrics Projection #
6# --------------------------------------------------------------------------- #
7# Copyright (c) 2008-2009 Raoul Snyman #
8# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten #
9# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
10# --------------------------------------------------------------------------- #
11# This program is free software; you can redistribute it and/or modify it #
12# under the terms of the GNU General Public License as published by the Free #
13# Software Foundation; version 2 of the License. #
14# #
15# This program is distributed in the hope that it will be useful, but WITHOUT #
16# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
17# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
18# more details. #
19# #
20# You should have received a copy of the GNU General Public License along #
21# with this program; if not, write to the Free Software Foundation, Inc., 59 #
22# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
23###############################################################################
24
25import types
26import logging
27
28from PyQt4 import QtCore, QtGui
29
30class OpenLPDockWidget(QtGui.QDockWidget):
31 """
32 Custom DockWidget class to handle events
33 """
34 def __init__(self, parent=None, name=None):
35 """
36 Initialise the DockWidget
37 """
38 QtGui.QDockWidget.__init__(self, parent)
39 self.parent = parent
40 if name is not None:
41 self.setObjectName(name)
42 self.log = logging.getLogger(u'OpenLPDockWidget')
43 self.log.debug(u'Init done')
44
45 def closeEvent(self, event):
46 self.parent.settingsmanager.setUIItemVisibility(
47 self.objectName(), False)
48 event.accept()
49
50 def resizeEvent(self, event):
51 if self.objectName() == u'MediaManagerDock':
52 if event.size().width() != event.oldSize().width():
53 self.parent.settingsmanager.setDockbarLeft(event.size().width())
054
=== modified file 'openlp/core/lib/settingsmanager.py'
--- openlp/core/lib/settingsmanager.py 2009-09-14 22:10:08 +0000
+++ openlp/core/lib/settingsmanager.py 2009-09-19 11:25:01 +0000
@@ -62,17 +62,17 @@
62 self.showPreviewPanel = str_to_bool(ConfigHelper.get_config(62 self.showPreviewPanel = str_to_bool(ConfigHelper.get_config(
63 u'user interface', u'display previewpanel', True))63 u'user interface', u'display previewpanel', True))
6464
65 def toggleMediaManager(self, isVisible):65 def setUIItemVisibility(self, item=u'', isVisible=True):
66 ConfigHelper.set_config(u'user interface', u'display mediamanager',66 if item != u'':
67 isVisible)67 if item == u'ThemeManagerDock':
6868 ConfigHelper.set_config('user interface',
69 def toggleServiceManager(self, isVisible):69 u'display thememanager', isVisible)
70 ConfigHelper.set_config(u'user interface', u'display servicemanager',70 elif item == u'ServiceManagerDock':
71 isVisible)71 ConfigHelper.set_config('user interface',
7272 u'display servicemanager', isVisible)
73 def toggleThemeManager(self, isVisible):73 elif item == u'MediaManagerDock':
74 ConfigHelper.set_config(u'user interface', u'display thememanager',74 ConfigHelper.set_config('user interface',
75 isVisible)75 u'display mediamanager', isVisible)
7676
77 def togglePreviewPanel(self, isVisible):77 def togglePreviewPanel(self, isVisible):
78 ConfigHelper.set_config(u'user interface', u'display previewpanel',78 ConfigHelper.set_config(u'user interface', u'display previewpanel',
7979
=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py 2009-09-18 18:20:58 +0000
+++ openlp/core/ui/mainwindow.py 2009-09-19 11:25:01 +0000
@@ -31,20 +31,11 @@
31 ServiceManager, ThemeManager, MainDisplay, SlideController, \31 ServiceManager, ThemeManager, MainDisplay, SlideController, \
32 PluginForm32 PluginForm
33from openlp.core.lib import translate, Plugin, MediaManagerItem, \33from openlp.core.lib import translate, Plugin, MediaManagerItem, \
34 SettingsTab, RenderManager, PluginConfig, str_to_bool, \34 SettingsTab, RenderManager, PluginConfig, str_to_bool, OpenLPDockWidget, \
35 SettingsManager, PluginManager, Receiver35 SettingsManager, PluginManager, Receiver
3636
37from openlp.core.utils import ConfigHelper37from openlp.core.utils import ConfigHelper
3838
39class mediaDock(QtGui.QDockWidget):
40 def __init__(self, parent=None, name=None):
41 QtGui.QDockWidget.__init__(self, parent)
42 self.parent = parent
43
44 def resizeEvent(self, resizeEvent):
45 if resizeEvent.size().width() != resizeEvent.oldSize().width():
46 self.parent.settingsmanager.setDockbarLeft(resizeEvent.size().width())
47
48class Ui_MainWindow(object):39class Ui_MainWindow(object):
49 def setupUi(self, MainWindow):40 def setupUi(self, MainWindow):
50 """41 """
@@ -116,7 +107,7 @@
116 self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel')107 self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel')
117 self.StatusBar.addPermanentWidget(self.DefaultThemeLabel)108 self.StatusBar.addPermanentWidget(self.DefaultThemeLabel)
118 # Create the MediaManager109 # Create the MediaManager
119 self.MediaManagerDock = mediaDock(MainWindow)110 self.MediaManagerDock = OpenLPDockWidget(MainWindow)
120 icon = QtGui.QIcon()111 icon = QtGui.QIcon()
121 icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),112 icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
122 QtGui.QIcon.Normal, QtGui.QIcon.Off)113 QtGui.QIcon.Normal, QtGui.QIcon.Off)
@@ -146,7 +137,7 @@
146 QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)137 QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
147 self.MediaManagerDock.setVisible(self.settingsmanager.showMediaManager)138 self.MediaManagerDock.setVisible(self.settingsmanager.showMediaManager)
148 # Create the service manager139 # Create the service manager
149 self.ServiceManagerDock = QtGui.QDockWidget(MainWindow)140 self.ServiceManagerDock = OpenLPDockWidget(MainWindow)
150 ServiceManagerIcon = QtGui.QIcon()141 ServiceManagerIcon = QtGui.QIcon()
151 ServiceManagerIcon.addPixmap(142 ServiceManagerIcon.addPixmap(
152 QtGui.QPixmap(u':/system/system_servicemanager.png'),143 QtGui.QPixmap(u':/system/system_servicemanager.png'),
@@ -164,7 +155,7 @@
164 self.ServiceManagerDock.setVisible(155 self.ServiceManagerDock.setVisible(
165 self.settingsmanager.showServiceManager)156 self.settingsmanager.showServiceManager)
166 # Create the theme manager157 # Create the theme manager
167 self.ThemeManagerDock = QtGui.QDockWidget(MainWindow)158 self.ThemeManagerDock = OpenLPDockWidget(MainWindow)
168 ThemeManagerIcon = QtGui.QIcon()159 ThemeManagerIcon = QtGui.QIcon()
169 ThemeManagerIcon.addPixmap(160 ThemeManagerIcon.addPixmap(
170 QtGui.QPixmap(u':/system/system_thememanager.png'),161 QtGui.QPixmap(u':/system/system_thememanager.png'),
@@ -520,13 +511,17 @@
520 QtCore.QObject.connect(Receiver.get_receiver(),511 QtCore.QObject.connect(Receiver.get_receiver(),
521 QtCore.SIGNAL(u'update_global_theme'), self.defaultThemeChanged)512 QtCore.SIGNAL(u'update_global_theme'), self.defaultThemeChanged)
522 QtCore.QObject.connect(self.FileNewItem, 513 QtCore.QObject.connect(self.FileNewItem,
523 QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onNewService)514 QtCore.SIGNAL(u'triggered()'),
515 self.ServiceManagerContents.onNewService)
524 QtCore.QObject.connect(self.FileOpenItem, 516 QtCore.QObject.connect(self.FileOpenItem,
525 QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onLoadService)517 QtCore.SIGNAL(u'triggered()'),
518 self.ServiceManagerContents.onLoadService)
526 QtCore.QObject.connect(self.FileSaveItem, 519 QtCore.QObject.connect(self.FileSaveItem,
527 QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onQuickSaveService)520 QtCore.SIGNAL(u'triggered()'),
521 self.ServiceManagerContents.onQuickSaveService)
528 QtCore.QObject.connect(self.FileSaveAsItem, 522 QtCore.QObject.connect(self.FileSaveAsItem,
529 QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onSaveService)523 QtCore.SIGNAL(u'triggered()'),
524 self.ServiceManagerContents.onSaveService)
530 #warning cyclic dependency525 #warning cyclic dependency
531 #RenderManager needs to call ThemeManager and526 #RenderManager needs to call ThemeManager and
532 #ThemeManager needs to call RenderManager527 #ThemeManager needs to call RenderManager
@@ -673,20 +668,23 @@
673 def defaultThemeChanged(self, theme):668 def defaultThemeChanged(self, theme):
674 self.DefaultThemeLabel.setText(self.defaultThemeText + theme)669 self.DefaultThemeLabel.setText(self.defaultThemeText + theme)
675670
676 def toggleMediaManager(self):671 def toggleMediaManager(self, visible):
677 mediaBool = self.MediaManagerDock.isVisible()672 if self.MediaManagerDock.isVisible() != visible:
678 self.MediaManagerDock.setVisible(not mediaBool)673 self.MediaManagerDock.setVisible(visible)
679 self.settingsmanager.toggleMediaManager(not mediaBool)674 self.settingsmanager.setUIItemVisibility(
680675 self.MediaManagerDock.objectName(), visible)
681 def toggleServiceManager(self):676
682 serviceBool = self.ServiceManagerDock.isVisible()677 def toggleServiceManager(self, visible):
683 self.ServiceManagerDock.setVisible(not serviceBool)678 if self.ServiceManagerDock.isVisible() != visible:
684 self.settingsmanager.toggleServiceManager(not serviceBool)679 self.ServiceManagerDock.setVisible(visible)
685680 self.settingsmanager.setUIItemVisibility(
686 def toggleThemeManager(self):681 self.ServiceManagerDock.objectName(), visible)
687 themeBool = self.ThemeManagerDock.isVisible()682
688 self.ThemeManagerDock.setVisible(not themeBool)683 def toggleThemeManager(self, visible):
689 self.settingsmanager.toggleThemeManager(not themeBool)684 if self.ThemeManagerDock.isVisible() != visible:
685 self.ThemeManagerDock.setVisible(visible)
686 self.settingsmanager.setUIItemVisibility(
687 self.ThemeManagerDock.objectName(), visible)
690688
691 def togglePreviewPanel(self):689 def togglePreviewPanel(self):
692 previewBool = self.PreviewController.Panel.isVisible()690 previewBool = self.PreviewController.Panel.isVisible()