Merge lp:~meths/openlp/trivialfixes into lp:openlp
- trivialfixes
- Merge into trunk
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tim Bentley | Approve | ||
Review via email: mp+12114@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Jon Tibble (meths) wrote : | # |
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() |
Refactor the dock widget saving
- Fixes issue when using close button on widget the visibility wasn't saved