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
1=== modified file 'openlp/core/lib/__init__.py'
2--- openlp/core/lib/__init__.py 2009-09-18 17:37:11 +0000
3+++ openlp/core/lib/__init__.py 2009-09-19 11:25:01 +0000
4@@ -121,6 +121,7 @@
5 from serviceitem import ServiceType
6 from serviceitem import ServiceItem
7 from toolbar import OpenLPToolbar
8+from dockwidget import OpenLPDockWidget
9 from songxmlhandler import SongXMLBuilder, SongXMLParser
10 from themexmlhandler import ThemeXML
11 from renderer import Renderer
12
13=== added file 'openlp/core/lib/dockwidget.py'
14--- openlp/core/lib/dockwidget.py 1970-01-01 00:00:00 +0000
15+++ openlp/core/lib/dockwidget.py 2009-09-19 11:25:01 +0000
16@@ -0,0 +1,53 @@
17+# -*- coding: utf-8 -*-
18+# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4
19+
20+###############################################################################
21+# OpenLP - Open Source Lyrics Projection #
22+# --------------------------------------------------------------------------- #
23+# Copyright (c) 2008-2009 Raoul Snyman #
24+# Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley, Carsten #
25+# Tinggaard, Jon Tibble, Jonathan Corwin, Maikel Stuivenberg, Scott Guerrieri #
26+# --------------------------------------------------------------------------- #
27+# This program is free software; you can redistribute it and/or modify it #
28+# under the terms of the GNU General Public License as published by the Free #
29+# Software Foundation; version 2 of the License. #
30+# #
31+# This program is distributed in the hope that it will be useful, but WITHOUT #
32+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or #
33+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for #
34+# more details. #
35+# #
36+# You should have received a copy of the GNU General Public License along #
37+# with this program; if not, write to the Free Software Foundation, Inc., 59 #
38+# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
39+###############################################################################
40+
41+import types
42+import logging
43+
44+from PyQt4 import QtCore, QtGui
45+
46+class OpenLPDockWidget(QtGui.QDockWidget):
47+ """
48+ Custom DockWidget class to handle events
49+ """
50+ def __init__(self, parent=None, name=None):
51+ """
52+ Initialise the DockWidget
53+ """
54+ QtGui.QDockWidget.__init__(self, parent)
55+ self.parent = parent
56+ if name is not None:
57+ self.setObjectName(name)
58+ self.log = logging.getLogger(u'OpenLPDockWidget')
59+ self.log.debug(u'Init done')
60+
61+ def closeEvent(self, event):
62+ self.parent.settingsmanager.setUIItemVisibility(
63+ self.objectName(), False)
64+ event.accept()
65+
66+ def resizeEvent(self, event):
67+ if self.objectName() == u'MediaManagerDock':
68+ if event.size().width() != event.oldSize().width():
69+ self.parent.settingsmanager.setDockbarLeft(event.size().width())
70
71=== modified file 'openlp/core/lib/settingsmanager.py'
72--- openlp/core/lib/settingsmanager.py 2009-09-14 22:10:08 +0000
73+++ openlp/core/lib/settingsmanager.py 2009-09-19 11:25:01 +0000
74@@ -62,17 +62,17 @@
75 self.showPreviewPanel = str_to_bool(ConfigHelper.get_config(
76 u'user interface', u'display previewpanel', True))
77
78- def toggleMediaManager(self, isVisible):
79- ConfigHelper.set_config(u'user interface', u'display mediamanager',
80- isVisible)
81-
82- def toggleServiceManager(self, isVisible):
83- ConfigHelper.set_config(u'user interface', u'display servicemanager',
84- isVisible)
85-
86- def toggleThemeManager(self, isVisible):
87- ConfigHelper.set_config(u'user interface', u'display thememanager',
88- isVisible)
89+ def setUIItemVisibility(self, item=u'', isVisible=True):
90+ if item != u'':
91+ if item == u'ThemeManagerDock':
92+ ConfigHelper.set_config('user interface',
93+ u'display thememanager', isVisible)
94+ elif item == u'ServiceManagerDock':
95+ ConfigHelper.set_config('user interface',
96+ u'display servicemanager', isVisible)
97+ elif item == u'MediaManagerDock':
98+ ConfigHelper.set_config('user interface',
99+ u'display mediamanager', isVisible)
100
101 def togglePreviewPanel(self, isVisible):
102 ConfigHelper.set_config(u'user interface', u'display previewpanel',
103
104=== modified file 'openlp/core/ui/mainwindow.py'
105--- openlp/core/ui/mainwindow.py 2009-09-18 18:20:58 +0000
106+++ openlp/core/ui/mainwindow.py 2009-09-19 11:25:01 +0000
107@@ -31,20 +31,11 @@
108 ServiceManager, ThemeManager, MainDisplay, SlideController, \
109 PluginForm
110 from openlp.core.lib import translate, Plugin, MediaManagerItem, \
111- SettingsTab, RenderManager, PluginConfig, str_to_bool, \
112+ SettingsTab, RenderManager, PluginConfig, str_to_bool, OpenLPDockWidget, \
113 SettingsManager, PluginManager, Receiver
114
115 from openlp.core.utils import ConfigHelper
116
117-class mediaDock(QtGui.QDockWidget):
118- def __init__(self, parent=None, name=None):
119- QtGui.QDockWidget.__init__(self, parent)
120- self.parent = parent
121-
122- def resizeEvent(self, resizeEvent):
123- if resizeEvent.size().width() != resizeEvent.oldSize().width():
124- self.parent.settingsmanager.setDockbarLeft(resizeEvent.size().width())
125-
126 class Ui_MainWindow(object):
127 def setupUi(self, MainWindow):
128 """
129@@ -116,7 +107,7 @@
130 self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel')
131 self.StatusBar.addPermanentWidget(self.DefaultThemeLabel)
132 # Create the MediaManager
133- self.MediaManagerDock = mediaDock(MainWindow)
134+ self.MediaManagerDock = OpenLPDockWidget(MainWindow)
135 icon = QtGui.QIcon()
136 icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'),
137 QtGui.QIcon.Normal, QtGui.QIcon.Off)
138@@ -146,7 +137,7 @@
139 QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock)
140 self.MediaManagerDock.setVisible(self.settingsmanager.showMediaManager)
141 # Create the service manager
142- self.ServiceManagerDock = QtGui.QDockWidget(MainWindow)
143+ self.ServiceManagerDock = OpenLPDockWidget(MainWindow)
144 ServiceManagerIcon = QtGui.QIcon()
145 ServiceManagerIcon.addPixmap(
146 QtGui.QPixmap(u':/system/system_servicemanager.png'),
147@@ -164,7 +155,7 @@
148 self.ServiceManagerDock.setVisible(
149 self.settingsmanager.showServiceManager)
150 # Create the theme manager
151- self.ThemeManagerDock = QtGui.QDockWidget(MainWindow)
152+ self.ThemeManagerDock = OpenLPDockWidget(MainWindow)
153 ThemeManagerIcon = QtGui.QIcon()
154 ThemeManagerIcon.addPixmap(
155 QtGui.QPixmap(u':/system/system_thememanager.png'),
156@@ -520,13 +511,17 @@
157 QtCore.QObject.connect(Receiver.get_receiver(),
158 QtCore.SIGNAL(u'update_global_theme'), self.defaultThemeChanged)
159 QtCore.QObject.connect(self.FileNewItem,
160- QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onNewService)
161+ QtCore.SIGNAL(u'triggered()'),
162+ self.ServiceManagerContents.onNewService)
163 QtCore.QObject.connect(self.FileOpenItem,
164- QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onLoadService)
165+ QtCore.SIGNAL(u'triggered()'),
166+ self.ServiceManagerContents.onLoadService)
167 QtCore.QObject.connect(self.FileSaveItem,
168- QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onQuickSaveService)
169+ QtCore.SIGNAL(u'triggered()'),
170+ self.ServiceManagerContents.onQuickSaveService)
171 QtCore.QObject.connect(self.FileSaveAsItem,
172- QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onSaveService)
173+ QtCore.SIGNAL(u'triggered()'),
174+ self.ServiceManagerContents.onSaveService)
175 #warning cyclic dependency
176 #RenderManager needs to call ThemeManager and
177 #ThemeManager needs to call RenderManager
178@@ -673,20 +668,23 @@
179 def defaultThemeChanged(self, theme):
180 self.DefaultThemeLabel.setText(self.defaultThemeText + theme)
181
182- def toggleMediaManager(self):
183- mediaBool = self.MediaManagerDock.isVisible()
184- self.MediaManagerDock.setVisible(not mediaBool)
185- self.settingsmanager.toggleMediaManager(not mediaBool)
186-
187- def toggleServiceManager(self):
188- serviceBool = self.ServiceManagerDock.isVisible()
189- self.ServiceManagerDock.setVisible(not serviceBool)
190- self.settingsmanager.toggleServiceManager(not serviceBool)
191-
192- def toggleThemeManager(self):
193- themeBool = self.ThemeManagerDock.isVisible()
194- self.ThemeManagerDock.setVisible(not themeBool)
195- self.settingsmanager.toggleThemeManager(not themeBool)
196+ def toggleMediaManager(self, visible):
197+ if self.MediaManagerDock.isVisible() != visible:
198+ self.MediaManagerDock.setVisible(visible)
199+ self.settingsmanager.setUIItemVisibility(
200+ self.MediaManagerDock.objectName(), visible)
201+
202+ def toggleServiceManager(self, visible):
203+ if self.ServiceManagerDock.isVisible() != visible:
204+ self.ServiceManagerDock.setVisible(visible)
205+ self.settingsmanager.setUIItemVisibility(
206+ self.ServiceManagerDock.objectName(), visible)
207+
208+ def toggleThemeManager(self, visible):
209+ if self.ThemeManagerDock.isVisible() != visible:
210+ self.ThemeManagerDock.setVisible(visible)
211+ self.settingsmanager.setUIItemVisibility(
212+ self.ThemeManagerDock.objectName(), visible)
213
214 def togglePreviewPanel(self):
215 previewBool = self.PreviewController.Panel.isVisible()