Merge lp:~raoul-snyman/openlp/bugfixes into lp:openlp
- bugfixes
- Merge into trunk
Proposed by
Raoul Snyman
Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~raoul-snyman/openlp/bugfixes |
Merge into: | lp:openlp |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~raoul-snyman/openlp/bugfixes |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tim Bentley | Approve | ||
Review via email:
|
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Raoul Snyman (raoul-snyman) wrote : | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Tim Bentley (trb143) wrote : | # |
Approved though you missed a bug fix!
review:
Approve
lp:~raoul-snyman/openlp/bugfixes
updated
- 505. By Raoul Snyman
-
Merge from bugfixes
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'openlp.pyw' |
2 | --- openlp.pyw 2009-07-08 06:55:08 +0000 |
3 | +++ openlp.pyw 2009-08-09 17:58:37 +0000 |
4 | @@ -71,7 +71,7 @@ |
5 | self.mainWindow = MainWindow(screens) |
6 | self.mainWindow.show() |
7 | # now kill the splashscreen |
8 | - self.splash.finish(self.mainWindow.mainWindow) |
9 | + self.splash.finish(self.mainWindow) |
10 | sys.exit(app.exec_()) |
11 | |
12 | if __name__ == u'__main__': |
13 | |
14 | === modified file 'openlp/core/lib/event.py' |
15 | --- openlp/core/lib/event.py 2009-07-10 15:45:17 +0000 |
16 | +++ openlp/core/lib/event.py 2009-08-09 17:58:37 +0000 |
17 | @@ -28,6 +28,7 @@ |
18 | # "Default" event - a non-event |
19 | Default = 0 |
20 | # General application events |
21 | + Ready = 10 |
22 | # Service events |
23 | LoadServiceItem = 20 |
24 | # Preview events |
25 | @@ -43,6 +44,7 @@ |
26 | """ |
27 | Provides an Event class to encapsulate events within openlp.org. |
28 | """ |
29 | - def __init__(self, event_type=EventType.Default, payload=None): |
30 | + def __init__(self, event_type=EventType.Default, payload=None, sender=None): |
31 | self.event_type = event_type |
32 | self.payload = payload |
33 | + self.sender = sender |
34 | |
35 | === modified file 'openlp/core/lib/eventmanager.py' |
36 | --- openlp/core/lib/eventmanager.py 2009-07-11 05:18:34 +0000 |
37 | +++ openlp/core/lib/eventmanager.py 2009-08-09 17:58:37 +0000 |
38 | @@ -25,10 +25,10 @@ |
39 | |
40 | class EventManager(object): |
41 | """ |
42 | - A mechanism to send events to all registered endpoints |
43 | - the endpoints are registered and listen with a handle_event method |
44 | - the endpoint will decide whether to do somthing with the event or ignore it |
45 | - |
46 | + A mechanism to send events to all registered endpoints. The |
47 | + endpoints are registered and listen with a handle_event method. |
48 | + The endpoint will decide whether to do somthing with the event or |
49 | + ignore it. |
50 | """ |
51 | global log |
52 | log = logging.getLogger(u'EventManager') |
53 | |
54 | === modified file 'openlp/core/ui/maindisplay.py' |
55 | --- openlp/core/ui/maindisplay.py 2009-08-06 21:30:14 +0000 |
56 | +++ openlp/core/ui/maindisplay.py 2009-08-09 12:05:54 +0000 |
57 | @@ -60,10 +60,6 @@ |
58 | Sets up the screen on a particular screen. |
59 | @param (integer) screen This is the screen number. |
60 | """ |
61 | - # Temporary fix until I can speak to Tim Bentley. |
62 | - if screenNumber not in self.screens: |
63 | - screenNumber = 0 |
64 | - # /Temporary fix |
65 | screen = self.screens[screenNumber] |
66 | if screen[u'number'] != screenNumber: |
67 | # We will most probably never actually hit this bit, but just in |
68 | @@ -79,20 +75,23 @@ |
69 | else: |
70 | self.showMinimized() |
71 | #Build a custom splash screen |
72 | - self.InitialFrame = QtGui.QImage(screen[u'size'].width(), |
73 | - screen[u'size'].height(), QtGui.QImage.Format_ARGB32_Premultiplied) |
74 | + self.InitialFrame = QtGui.QImage( |
75 | + screen[u'size'].width(), screen[u'size'].height(), |
76 | + QtGui.QImage.Format_ARGB32_Premultiplied) |
77 | splash_image = QtGui.QImage(u':/graphics/openlp-splash-screen.png') |
78 | painter_image = QtGui.QPainter() |
79 | painter_image.begin(self.InitialFrame) |
80 | painter_image.fillRect(self.InitialFrame.rect(), QtCore.Qt.white) |
81 | - painter_image.drawImage((screen[u'size'].width() - splash_image.width()) / 2, |
82 | - (screen[u'size'].height() - splash_image.height()) / 2, |
83 | - splash_image) |
84 | + painter_image.drawImage( |
85 | + (screen[u'size'].width() - splash_image.width()) / 2, |
86 | + (screen[u'size'].height() - splash_image.height()) / 2, |
87 | + splash_image) |
88 | self.frameView(self.InitialFrame) |
89 | #Build a Black screen |
90 | painter = QtGui.QPainter() |
91 | - self.blankFrame = QtGui.QImage(screen[u'size'].width(), |
92 | - screen[u'size'].height(), QtGui.QImage.Format_ARGB32_Premultiplied) |
93 | + self.blankFrame = QtGui.QImage( |
94 | + screen[u'size'].width(), screen[u'size'].height(), |
95 | + QtGui.QImage.Format_ARGB32_Premultiplied) |
96 | painter.begin(self.blankFrame) |
97 | painter.fillRect(self.blankFrame.rect(), QtCore.Qt.black) |
98 | |
99 | |
100 | === modified file 'openlp/core/ui/mainwindow.py' |
101 | --- openlp/core/ui/mainwindow.py 2009-08-06 21:30:14 +0000 |
102 | +++ openlp/core/ui/mainwindow.py 2009-08-09 17:58:37 +0000 |
103 | @@ -22,178 +22,32 @@ |
104 | |
105 | from PyQt4 import QtCore, QtGui |
106 | |
107 | -from openlp.core.ui import AboutForm, SettingsForm, AlertForm, ServiceManager, \ |
108 | - ThemeManager, MainDisplay, SlideController |
109 | -from openlp.core.lib import translate, Plugin, MediaManagerItem, SettingsTab, \ |
110 | - EventManager, RenderManager, PluginConfig, SettingsManager, PluginManager |
111 | - |
112 | -class MainWindow(object): |
113 | - """ |
114 | - The main window. |
115 | - """ |
116 | - global log |
117 | - log = logging.getLogger(u'MainWindow') |
118 | - log.info(u'MainWindow loaded') |
119 | - |
120 | - def __init__(self, screens): |
121 | - """ |
122 | - This constructor sets up the interface, the various managers, and the |
123 | - plugins. |
124 | - """ |
125 | - self.oosNotSaved = False |
126 | - self.settingsmanager = SettingsManager(screens) |
127 | - self.mainWindow = QtGui.QMainWindow() |
128 | - self.mainWindow.__class__.closeEvent = self.onCloseEvent |
129 | - self.mainDisplay = MainDisplay(None, screens) |
130 | - self.screenList = screens |
131 | - self.EventManager = EventManager() |
132 | - self.generalConfig = PluginConfig(u'General') |
133 | - self.alertForm = AlertForm(self) |
134 | - self.aboutForm = AboutForm() |
135 | - self.settingsForm = SettingsForm(self.screenList, self) |
136 | - # Set up the path with plugins |
137 | - pluginpath = os.path.split(os.path.abspath(__file__))[0] |
138 | - pluginpath = os.path.abspath( |
139 | - os.path.join(pluginpath, u'..', u'..', u'plugins')) |
140 | - self.plugin_manager = PluginManager(pluginpath) |
141 | - self.plugin_helpers = {} |
142 | - # Set up the interface |
143 | - self.setupUi() |
144 | - #warning cyclic dependency |
145 | - #RenderManager needs to call ThemeManager and |
146 | - #ThemeManager needs to call RenderManager |
147 | - self.RenderManager = RenderManager(self.ThemeManagerContents, |
148 | - self.screenList, int(self.generalConfig.get_config(u'Monitor', 0))) |
149 | - log.info(u'Load Plugins') |
150 | - #make the controllers available to the plugins |
151 | - self.plugin_helpers[u'preview'] = self.PreviewController |
152 | - self.plugin_helpers[u'live'] = self.LiveController |
153 | - self.plugin_helpers[u'event'] = self.EventManager |
154 | - self.plugin_helpers[u'theme'] = self.ThemeManagerContents |
155 | - self.plugin_helpers[u'render'] = self.RenderManager |
156 | - self.plugin_helpers[u'service'] = self.ServiceManagerContents |
157 | - self.plugin_helpers[u'settings'] = self.settingsForm |
158 | - self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers, |
159 | - self.EventManager) |
160 | - # hook methods have to happen after find_plugins. Find plugins needs the |
161 | - # controllers hence the hooks have moved from setupUI() to here |
162 | - |
163 | - # Find and insert settings tabs |
164 | - log.info(u'hook settings') |
165 | - self.plugin_manager.hook_settings_tabs(self.settingsForm) |
166 | - # Find and insert media manager items |
167 | - log.info(u'hook media') |
168 | - self.plugin_manager.hook_media_manager(self.MediaToolBox) |
169 | - # Call the hook method to pull in import menus. |
170 | - log.info(u'hook menus') |
171 | - self.plugin_manager.hook_import_menu(self.FileImportMenu) |
172 | - # Call the hook method to pull in export menus. |
173 | - self.plugin_manager.hook_export_menu(self.FileExportMenu) |
174 | - # Call the initialise method to setup plugins. |
175 | - log.info(u'initialise plugins') |
176 | - self.plugin_manager.initialise_plugins() |
177 | - # Once all components are initialised load the Themes |
178 | - log.info(u'Load Themes') |
179 | - self.ThemeManagerContents.loadThemes() |
180 | - |
181 | - def show(self): |
182 | - """ |
183 | - Show the main form, as well as the display form |
184 | - """ |
185 | - self.mainWindow.showMaximized() |
186 | - self.mainDisplay.setup(self.settingsForm.GeneralTab.MonitorNumber) |
187 | - |
188 | - def onHelpAboutItemClicked(self): |
189 | - """ |
190 | - Show the About form |
191 | - """ |
192 | - self.aboutForm.exec_() |
193 | - |
194 | - def onToolsAlertItemClicked(self): |
195 | - """ |
196 | - Show the Alert form |
197 | - """ |
198 | - self.alertForm.exec_() |
199 | - |
200 | - def onOptionsSettingsItemClicked(self): |
201 | - """ |
202 | - Show the Settings dialog |
203 | - """ |
204 | - self.settingsForm.exec_() |
205 | - screen_number = int(self.generalConfig.get_config(u'Monitor', 0)) |
206 | - self.RenderManager.update_display(screen_number) |
207 | - self.mainDisplay.setup(screen_number) |
208 | - |
209 | - def onCloseEvent(self, event): |
210 | - """ |
211 | - Hook to close the main window and display windows on exit |
212 | - """ |
213 | - if self.oosNotSaved == True: |
214 | - ret = QtGui.QMessageBox.question(None, |
215 | - translate(u'mainWindow', u'Save Changes to Service?'), |
216 | - translate(u'mainWindow', u'Your service has been changed, do you want to save those changes?'), |
217 | - QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Cancel | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Save), |
218 | - QtGui.QMessageBox.Save) |
219 | - if ret == QtGui.QMessageBox.Save: |
220 | - self.ServiceManagerContents.onSaveService() |
221 | - self.mainDisplay.close() |
222 | - self.cleanUp() |
223 | - event.accept() |
224 | - elif ret == QtGui.QMessageBox.Discard: |
225 | - self.mainDisplay.close() |
226 | - self.cleanUp() |
227 | - event.accept() |
228 | - else: |
229 | - event.ignore() |
230 | - else: |
231 | - self.mainDisplay.close() |
232 | - self.cleanUp() |
233 | - event.accept() |
234 | - |
235 | - def cleanUp(self): |
236 | - # Call the cleanup method to shutdown plugins. |
237 | - log.info(u'cleanup plugins') |
238 | - self.plugin_manager.initialise_plugins() |
239 | - |
240 | - def OosChanged(self, reset = False, oosName = None): |
241 | - """ |
242 | - Hook to change the title if the OOS has been changed |
243 | - reset - tells if the OOS has been cleared or saved |
244 | - oosName - is the name of the OOS (if it has one) |
245 | - """ |
246 | - if reset == True: |
247 | - self.oosNotSaved = False |
248 | - if oosName is None: |
249 | - title = self.mainTitle |
250 | - else: |
251 | - title = self.mainTitle + u' - (' + oosName + u')' |
252 | - else: |
253 | - self.oosNotSaved = True |
254 | - if oosName is None: |
255 | - title = self.mainTitle + u' - *' |
256 | - else: |
257 | - title = self.mainTitle + u' - *(' + oosName + u')' |
258 | - self.mainWindow.setWindowTitle(title) |
259 | - |
260 | - def setupUi(self): |
261 | +from openlp.core.ui import AboutForm, SettingsForm, AlertForm, \ |
262 | + ServiceManager, ThemeManager, MainDisplay, SlideController |
263 | +from openlp.core.lib import translate, Plugin, MediaManagerItem, \ |
264 | + SettingsTab, EventManager, RenderManager, PluginConfig, \ |
265 | + SettingsManager, PluginManager, EventType |
266 | + |
267 | +class Ui_MainWindow(object): |
268 | + def setupUi(self, MainWindow): |
269 | """ |
270 | Set up the user interface |
271 | """ |
272 | - self.mainWindow.setObjectName(u'mainWindow') |
273 | - self.mainWindow.resize(self.settingsmanager.width, self.settingsmanager.height) |
274 | + MainWindow.setObjectName(u'MainWindow') |
275 | + MainWindow.resize(self.settingsmanager.width, self.settingsmanager.height) |
276 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, |
277 | QtGui.QSizePolicy.Expanding) |
278 | sizePolicy.setHorizontalStretch(0) |
279 | sizePolicy.setVerticalStretch(0) |
280 | sizePolicy.setHeightForWidth( |
281 | - self.mainWindow.sizePolicy().hasHeightForWidth()) |
282 | - self.mainWindow.setSizePolicy(sizePolicy) |
283 | + MainWindow.sizePolicy().hasHeightForWidth()) |
284 | + MainWindow.setSizePolicy(sizePolicy) |
285 | main_icon = QtGui.QIcon() |
286 | main_icon.addPixmap(QtGui.QPixmap(u':/icon/openlp-logo-16x16.png'), |
287 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
288 | - self.mainWindow.setWindowIcon(main_icon) |
289 | + MainWindow.setWindowIcon(main_icon) |
290 | # Set up the main container, which contains all the other form widgets |
291 | - self.MainContent = QtGui.QWidget(self.mainWindow) |
292 | + self.MainContent = QtGui.QWidget(MainWindow) |
293 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, |
294 | QtGui.QSizePolicy.Expanding) |
295 | sizePolicy.setHorizontalStretch(0) |
296 | @@ -206,7 +60,7 @@ |
297 | self.MainContentLayout.setSpacing(0) |
298 | self.MainContentLayout.setMargin(0) |
299 | self.MainContentLayout.setObjectName(u'MainContentLayout') |
300 | - self.mainWindow.setCentralWidget(self.MainContent) |
301 | + MainWindow.setCentralWidget(self.MainContent) |
302 | self.ControlSplitter = QtGui.QSplitter(self.MainContent) |
303 | self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal) |
304 | self.ControlSplitter.setObjectName(u'ControlSplitter') |
305 | @@ -215,7 +69,7 @@ |
306 | self.PreviewController = SlideController(self) |
307 | self.LiveController = SlideController(self, True) |
308 | # Create menu |
309 | - self.MenuBar = QtGui.QMenuBar(self.mainWindow) |
310 | + self.MenuBar = QtGui.QMenuBar(MainWindow) |
311 | self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27)) |
312 | self.MenuBar.setObjectName(u'MenuBar') |
313 | self.FileMenu = QtGui.QMenu(self.MenuBar) |
314 | @@ -236,12 +90,15 @@ |
315 | self.ToolsMenu.setObjectName(u'ToolsMenu') |
316 | self.HelpMenu = QtGui.QMenu(self.MenuBar) |
317 | self.HelpMenu.setObjectName(u'HelpMenu') |
318 | - self.mainWindow.setMenuBar(self.MenuBar) |
319 | - self.StatusBar = QtGui.QStatusBar(self.mainWindow) |
320 | + MainWindow.setMenuBar(self.MenuBar) |
321 | + self.StatusBar = QtGui.QStatusBar(MainWindow) |
322 | self.StatusBar.setObjectName(u'StatusBar') |
323 | - self.mainWindow.setStatusBar(self.StatusBar) |
324 | + MainWindow.setStatusBar(self.StatusBar) |
325 | + self.DefaultThemeLabel = QtGui.QLabel(self.StatusBar) |
326 | + self.DefaultThemeLabel.setObjectName(u'DefaultThemeLabel') |
327 | + self.StatusBar.addPermanentWidget(self.DefaultThemeLabel) |
328 | # Create the MediaManager |
329 | - self.MediaManagerDock = QtGui.QDockWidget(self.mainWindow) |
330 | + self.MediaManagerDock = QtGui.QDockWidget(MainWindow) |
331 | icon = QtGui.QIcon() |
332 | icon.addPixmap(QtGui.QPixmap(u':/system/system_mediamanager.png'), |
333 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
334 | @@ -258,10 +115,10 @@ |
335 | self.MediaToolBox.setObjectName(u'MediaToolBox') |
336 | self.MediaManagerLayout.addWidget(self.MediaToolBox) |
337 | self.MediaManagerDock.setWidget(self.MediaManagerContents) |
338 | - self.mainWindow.addDockWidget( |
339 | + MainWindow.addDockWidget( |
340 | QtCore.Qt.DockWidgetArea(1), self.MediaManagerDock) |
341 | # Create the service manager |
342 | - self.ServiceManagerDock = QtGui.QDockWidget(self.mainWindow) |
343 | + self.ServiceManagerDock = QtGui.QDockWidget(MainWindow) |
344 | ServiceManagerIcon = QtGui.QIcon() |
345 | ServiceManagerIcon.addPixmap( |
346 | QtGui.QPixmap(u':/system/system_servicemanager.png'), |
347 | @@ -273,10 +130,10 @@ |
348 | self.ServiceManagerDock.setMinimumWidth(300) |
349 | self.ServiceManagerContents = ServiceManager(self) |
350 | self.ServiceManagerDock.setWidget(self.ServiceManagerContents) |
351 | - self.mainWindow.addDockWidget( |
352 | + MainWindow.addDockWidget( |
353 | QtCore.Qt.DockWidgetArea(2), self.ServiceManagerDock) |
354 | # Create the theme manager |
355 | - self.ThemeManagerDock = QtGui.QDockWidget(self.mainWindow) |
356 | + self.ThemeManagerDock = QtGui.QDockWidget(MainWindow) |
357 | ThemeManagerIcon = QtGui.QIcon() |
358 | ThemeManagerIcon.addPixmap( |
359 | QtGui.QPixmap(u':/system/system_thememanager.png'), |
360 | @@ -286,97 +143,97 @@ |
361 | self.ThemeManagerDock.setObjectName(u'ThemeManagerDock') |
362 | self.ThemeManagerContents = ThemeManager(self) |
363 | self.ThemeManagerDock.setWidget(self.ThemeManagerContents) |
364 | - self.mainWindow.addDockWidget( |
365 | + MainWindow.addDockWidget( |
366 | QtCore.Qt.DockWidgetArea(2), self.ThemeManagerDock) |
367 | # Create the menu items |
368 | - self.FileNewItem = QtGui.QAction(self.mainWindow) |
369 | + self.FileNewItem = QtGui.QAction(MainWindow) |
370 | self.FileNewItem.setIcon( |
371 | self.ServiceManagerContents.Toolbar.getIconFromTitle(u'New Service')) |
372 | self.FileNewItem.setObjectName(u'FileNewItem') |
373 | - self.FileOpenItem = QtGui.QAction(self.mainWindow) |
374 | + self.FileOpenItem = QtGui.QAction(MainWindow) |
375 | self.FileOpenItem.setIcon( |
376 | self.ServiceManagerContents.Toolbar.getIconFromTitle(u'Open Service')) |
377 | self.FileOpenItem.setObjectName(u'FileOpenItem') |
378 | - self.FileSaveItem = QtGui.QAction(self.mainWindow) |
379 | + self.FileSaveItem = QtGui.QAction(MainWindow) |
380 | self.FileSaveItem.setIcon( |
381 | self.ServiceManagerContents.Toolbar.getIconFromTitle(u'Save Service')) |
382 | self.FileSaveItem.setObjectName(u'FileSaveItem') |
383 | - self.FileSaveAsItem = QtGui.QAction(self.mainWindow) |
384 | + self.FileSaveAsItem = QtGui.QAction(MainWindow) |
385 | self.FileSaveAsItem.setObjectName(u'FileSaveAsItem') |
386 | - self.FileExitItem = QtGui.QAction(self.mainWindow) |
387 | + self.FileExitItem = QtGui.QAction(MainWindow) |
388 | ExitIcon = QtGui.QIcon() |
389 | ExitIcon.addPixmap(QtGui.QPixmap(u':/system/system_exit.png'), |
390 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
391 | self.FileExitItem.setIcon(ExitIcon) |
392 | self.FileExitItem.setObjectName(u'FileExitItem') |
393 | - self.ImportThemeItem = QtGui.QAction(self.mainWindow) |
394 | + self.ImportThemeItem = QtGui.QAction(MainWindow) |
395 | self.ImportThemeItem.setObjectName(u'ImportThemeItem') |
396 | - self.ImportLanguageItem = QtGui.QAction(self.mainWindow) |
397 | + self.ImportLanguageItem = QtGui.QAction(MainWindow) |
398 | self.ImportLanguageItem.setObjectName(u'ImportLanguageItem') |
399 | - self.ExportThemeItem = QtGui.QAction(self.mainWindow) |
400 | + self.ExportThemeItem = QtGui.QAction(MainWindow) |
401 | self.ExportThemeItem.setObjectName(u'ExportThemeItem') |
402 | - self.ExportLanguageItem = QtGui.QAction(self.mainWindow) |
403 | + self.ExportLanguageItem = QtGui.QAction(MainWindow) |
404 | self.ExportLanguageItem.setObjectName(u'ExportLanguageItem') |
405 | - self.actionLook_Feel = QtGui.QAction(self.mainWindow) |
406 | + self.actionLook_Feel = QtGui.QAction(MainWindow) |
407 | self.actionLook_Feel.setObjectName(u'actionLook_Feel') |
408 | - self.OptionsSettingsItem = QtGui.QAction(self.mainWindow) |
409 | + self.OptionsSettingsItem = QtGui.QAction(MainWindow) |
410 | SettingsIcon = QtGui.QIcon() |
411 | SettingsIcon.addPixmap(QtGui.QPixmap(u':/system/system_settings.png'), |
412 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
413 | self.OptionsSettingsItem.setIcon(SettingsIcon) |
414 | self.OptionsSettingsItem.setObjectName(u'OptionsSettingsItem') |
415 | - self.ViewMediaManagerItem = QtGui.QAction(self.mainWindow) |
416 | + self.ViewMediaManagerItem = QtGui.QAction(MainWindow) |
417 | self.ViewMediaManagerItem.setCheckable(True) |
418 | self.ViewMediaManagerItem.setChecked(True) |
419 | self.ViewMediaManagerItem.setIcon(icon) |
420 | self.ViewMediaManagerItem.setObjectName(u'ViewMediaManagerItem') |
421 | - self.ViewThemeManagerItem = QtGui.QAction(self.mainWindow) |
422 | + self.ViewThemeManagerItem = QtGui.QAction(MainWindow) |
423 | self.ViewThemeManagerItem.setCheckable(True) |
424 | self.ViewThemeManagerItem.setChecked(True) |
425 | self.ViewThemeManagerItem.setIcon(ThemeManagerIcon) |
426 | self.ViewThemeManagerItem.setObjectName(u'ViewThemeManagerItem') |
427 | - self.ViewServiceManagerItem = QtGui.QAction(self.mainWindow) |
428 | + self.ViewServiceManagerItem = QtGui.QAction(MainWindow) |
429 | self.ViewServiceManagerItem.setCheckable(True) |
430 | self.ViewServiceManagerItem.setChecked(True) |
431 | self.ViewServiceManagerItem.setIcon(ServiceManagerIcon) |
432 | self.ViewServiceManagerItem.setObjectName(u'ViewServiceManagerItem') |
433 | - self.ToolsAlertItem = QtGui.QAction(self.mainWindow) |
434 | + self.ToolsAlertItem = QtGui.QAction(MainWindow) |
435 | AlertIcon = QtGui.QIcon() |
436 | AlertIcon.addPixmap(QtGui.QPixmap(u':/tools/tools_alert.png'), |
437 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
438 | self.ToolsAlertItem.setIcon(AlertIcon) |
439 | self.ToolsAlertItem.setObjectName(u'ToolsAlertItem') |
440 | - self.HelpDocumentationItem = QtGui.QAction(self.mainWindow) |
441 | + self.HelpDocumentationItem = QtGui.QAction(MainWindow) |
442 | ContentsIcon = QtGui.QIcon() |
443 | ContentsIcon.addPixmap(QtGui.QPixmap(u':/system/system_help_contents.png'), |
444 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
445 | self.HelpDocumentationItem.setIcon(ContentsIcon) |
446 | self.HelpDocumentationItem.setObjectName(u'HelpDocumentationItem') |
447 | - self.HelpAboutItem = QtGui.QAction(self.mainWindow) |
448 | + self.HelpAboutItem = QtGui.QAction(MainWindow) |
449 | AboutIcon = QtGui.QIcon() |
450 | AboutIcon.addPixmap(QtGui.QPixmap(u':/system/system_about.png'), |
451 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
452 | self.HelpAboutItem.setIcon(AboutIcon) |
453 | self.HelpAboutItem.setObjectName(u'HelpAboutItem') |
454 | - self.HelpOnlineHelpItem = QtGui.QAction(self.mainWindow) |
455 | + self.HelpOnlineHelpItem = QtGui.QAction(MainWindow) |
456 | self.HelpOnlineHelpItem.setObjectName(u'HelpOnlineHelpItem') |
457 | - self.HelpWebSiteItem = QtGui.QAction(self.mainWindow) |
458 | + self.HelpWebSiteItem = QtGui.QAction(MainWindow) |
459 | self.HelpWebSiteItem.setObjectName(u'HelpWebSiteItem') |
460 | - self.LanguageTranslateItem = QtGui.QAction(self.mainWindow) |
461 | + self.LanguageTranslateItem = QtGui.QAction(MainWindow) |
462 | self.LanguageTranslateItem.setObjectName(u'LanguageTranslateItem') |
463 | - self.LanguageEnglishItem = QtGui.QAction(self.mainWindow) |
464 | + self.LanguageEnglishItem = QtGui.QAction(MainWindow) |
465 | self.LanguageEnglishItem.setObjectName(u'LanguageEnglishItem') |
466 | - self.ToolsAddToolItem = QtGui.QAction(self.mainWindow) |
467 | + self.ToolsAddToolItem = QtGui.QAction(MainWindow) |
468 | AddToolIcon = QtGui.QIcon() |
469 | AddToolIcon.addPixmap(QtGui.QPixmap(u':/tools/tools_add.png'), |
470 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
471 | self.ToolsAddToolItem.setIcon(AddToolIcon) |
472 | self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem') |
473 | - self.action_Preview_Panel = QtGui.QAction(self.mainWindow) |
474 | + self.action_Preview_Panel = QtGui.QAction(MainWindow) |
475 | self.action_Preview_Panel.setCheckable(True) |
476 | self.action_Preview_Panel.setChecked(True) |
477 | self.action_Preview_Panel.setObjectName(u'action_Preview_Panel') |
478 | - self.ModeLiveItem = QtGui.QAction(self.mainWindow) |
479 | + self.ModeLiveItem = QtGui.QAction(MainWindow) |
480 | self.ModeLiveItem.setObjectName(u'ModeLiveItem') |
481 | self.FileImportMenu.addAction(self.ImportThemeItem) |
482 | self.FileImportMenu.addAction(self.ImportLanguageItem) |
483 | @@ -419,43 +276,20 @@ |
484 | self.MenuBar.addAction(self.ToolsMenu.menuAction()) |
485 | self.MenuBar.addAction(self.HelpMenu.menuAction()) |
486 | # Initialise the translation |
487 | - self.retranslateUi() |
488 | + self.retranslateUi(MainWindow) |
489 | self.MediaToolBox.setCurrentIndex(0) |
490 | # Connect up some signals and slots |
491 | QtCore.QObject.connect(self.FileExitItem, |
492 | - QtCore.SIGNAL(u'triggered()'), self.mainWindow.close) |
493 | - QtCore.QObject.connect(self.ImportThemeItem, |
494 | - QtCore.SIGNAL(u'triggered()'), self.ThemeManagerContents.onImportTheme) |
495 | - QtCore.QObject.connect(self.ExportThemeItem, |
496 | - QtCore.SIGNAL(u'triggered()'), self.ThemeManagerContents.onExportTheme) |
497 | - QtCore.QObject.connect(self.ViewMediaManagerItem, |
498 | - QtCore.SIGNAL(u'triggered(bool)'), self.MediaManagerDock.setVisible) |
499 | - QtCore.QObject.connect(self.ViewServiceManagerItem, |
500 | - QtCore.SIGNAL(u'triggered(bool)'), self.ServiceManagerDock.setVisible) |
501 | - QtCore.QObject.connect(self.ViewThemeManagerItem, |
502 | - QtCore.SIGNAL(u'triggered(bool)'), self.ThemeManagerDock.setVisible) |
503 | - QtCore.QObject.connect(self.action_Preview_Panel, |
504 | - QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Panel.setVisible) |
505 | - QtCore.QObject.connect(self.MediaManagerDock, |
506 | - QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked) |
507 | - QtCore.QObject.connect(self.ServiceManagerDock, |
508 | - QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewServiceManagerItem.setChecked) |
509 | - QtCore.QObject.connect(self.ThemeManagerDock, |
510 | - QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewThemeManagerItem.setChecked) |
511 | - QtCore.QObject.connect(self.HelpAboutItem, |
512 | - QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked) |
513 | - QtCore.QObject.connect(self.ToolsAlertItem, |
514 | - QtCore.SIGNAL(u'triggered()'), self.onToolsAlertItemClicked) |
515 | - QtCore.QObject.connect(self.OptionsSettingsItem, |
516 | - QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked) |
517 | - QtCore.QMetaObject.connectSlotsByName(self.mainWindow) |
518 | + QtCore.SIGNAL(u'triggered()'), MainWindow.close) |
519 | + QtCore.QMetaObject.connectSlotsByName(MainWindow) |
520 | |
521 | - def retranslateUi(self): |
522 | + def retranslateUi(self, MainWindow): |
523 | """ |
524 | Set up the translation system |
525 | """ |
526 | - self.mainTitle = translate(u'mainWindow', u'OpenLP 2.0') |
527 | - self.mainWindow.setWindowTitle(self.mainTitle) |
528 | + MainWindow.mainTitle = translate(u'mainWindow', u'OpenLP 2.0') |
529 | + MainWindow.defaultThemeText = translate(u'mainWindow', 'Default Theme: ') |
530 | + MainWindow.setWindowTitle(MainWindow.mainTitle) |
531 | self.FileMenu.setTitle(translate(u'mainWindow', u'&File')) |
532 | self.FileImportMenu.setTitle(translate(u'mainWindow', u'&Import')) |
533 | self.FileExportMenu.setTitle(translate(u'mainWindow', u'&Export')) |
534 | @@ -471,6 +305,8 @@ |
535 | translate(u'mainWindow', u'Service Manager')) |
536 | self.ThemeManagerDock.setWindowTitle( |
537 | translate(u'mainWindow', u'Theme Manager')) |
538 | + self.DefaultThemeLabel.setText(MainWindow.defaultThemeText + \ |
539 | + self.ThemeManagerContents.getDefault()) |
540 | self.FileNewItem.setText(translate(u'mainWindow', u'&New')) |
541 | self.FileNewItem.setToolTip(translate(u'mainWindow', u'New Service')) |
542 | self.FileNewItem.setStatusTip( |
543 | @@ -548,3 +384,198 @@ |
544 | self.action_Preview_Panel.setText( |
545 | translate(u'mainWindow', u'&Preview Pane')) |
546 | self.ModeLiveItem.setText(translate(u'mainWindow', u'&Live')) |
547 | + |
548 | + |
549 | +class MainWindow(QtGui.QMainWindow, Ui_MainWindow): |
550 | + """ |
551 | + The main window. |
552 | + """ |
553 | + global log |
554 | + log = logging.getLogger(u'MainWindow') |
555 | + log.info(u'MainWindow loaded') |
556 | + |
557 | + def __init__(self, screens): |
558 | + """ |
559 | + This constructor sets up the interface, the various managers, and the |
560 | + plugins. |
561 | + """ |
562 | + QtGui.QMainWindow.__init__(self) |
563 | + self.closeEvent = self.onCloseEvent |
564 | + self.screenList = screens |
565 | + self.oosNotSaved = False |
566 | + self.settingsmanager = SettingsManager(screens) |
567 | + self.mainDisplay = MainDisplay(None, screens) |
568 | + self.EventManager = EventManager() |
569 | + self.generalConfig = PluginConfig(u'General') |
570 | + self.alertForm = AlertForm(self) |
571 | + self.aboutForm = AboutForm() |
572 | + self.settingsForm = SettingsForm(self.screenList, self) |
573 | + # Set up the path with plugins |
574 | + pluginpath = os.path.split(os.path.abspath(__file__))[0] |
575 | + pluginpath = os.path.abspath( |
576 | + os.path.join(pluginpath, u'..', u'..', u'plugins')) |
577 | + self.plugin_manager = PluginManager(pluginpath) |
578 | + self.plugin_helpers = {} |
579 | + # Set up the interface |
580 | + self.setupUi(self) |
581 | + # Set up signals and slots |
582 | + QtCore.QObject.connect(self.ImportThemeItem, |
583 | + QtCore.SIGNAL(u'triggered()'), self.ThemeManagerContents.onImportTheme) |
584 | + QtCore.QObject.connect(self.ExportThemeItem, |
585 | + QtCore.SIGNAL(u'triggered()'), self.ThemeManagerContents.onExportTheme) |
586 | + QtCore.QObject.connect(self.ViewMediaManagerItem, |
587 | + QtCore.SIGNAL(u'triggered(bool)'), self.MediaManagerDock.setVisible) |
588 | + QtCore.QObject.connect(self.ViewServiceManagerItem, |
589 | + QtCore.SIGNAL(u'triggered(bool)'), self.ServiceManagerDock.setVisible) |
590 | + QtCore.QObject.connect(self.ViewThemeManagerItem, |
591 | + QtCore.SIGNAL(u'triggered(bool)'), self.ThemeManagerDock.setVisible) |
592 | + QtCore.QObject.connect(self.action_Preview_Panel, |
593 | + QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Panel.setVisible) |
594 | + QtCore.QObject.connect(self.MediaManagerDock, |
595 | + QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked) |
596 | + QtCore.QObject.connect(self.ServiceManagerDock, |
597 | + QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewServiceManagerItem.setChecked) |
598 | + QtCore.QObject.connect(self.ThemeManagerDock, |
599 | + QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewThemeManagerItem.setChecked) |
600 | + QtCore.QObject.connect(self.HelpAboutItem, |
601 | + QtCore.SIGNAL(u'triggered()'), self.onHelpAboutItemClicked) |
602 | + QtCore.QObject.connect(self.ToolsAlertItem, |
603 | + QtCore.SIGNAL(u'triggered()'), self.onToolsAlertItemClicked) |
604 | + QtCore.QObject.connect(self.OptionsSettingsItem, |
605 | + QtCore.SIGNAL(u'triggered()'), self.onOptionsSettingsItemClicked) |
606 | + #warning cyclic dependency |
607 | + #RenderManager needs to call ThemeManager and |
608 | + #ThemeManager needs to call RenderManager |
609 | + self.RenderManager = RenderManager(self.ThemeManagerContents, |
610 | + self.screenList, self.getMonitorNumber()) |
611 | + log.info(u'Load Plugins') |
612 | + #make the controllers available to the plugins |
613 | + self.plugin_helpers[u'preview'] = self.PreviewController |
614 | + self.plugin_helpers[u'live'] = self.LiveController |
615 | + self.plugin_helpers[u'event'] = self.EventManager |
616 | + self.plugin_helpers[u'theme'] = self.ThemeManagerContents |
617 | + self.plugin_helpers[u'render'] = self.RenderManager |
618 | + self.plugin_helpers[u'service'] = self.ServiceManagerContents |
619 | + self.plugin_helpers[u'settings'] = self.settingsForm |
620 | + self.plugin_manager.find_plugins(pluginpath, self.plugin_helpers, |
621 | + self.EventManager) |
622 | + # hook methods have to happen after find_plugins. Find plugins needs the |
623 | + # controllers hence the hooks have moved from setupUI() to here |
624 | + |
625 | + # Find and insert settings tabs |
626 | + log.info(u'hook settings') |
627 | + self.plugin_manager.hook_settings_tabs(self.settingsForm) |
628 | + # Find and insert media manager items |
629 | + log.info(u'hook media') |
630 | + self.plugin_manager.hook_media_manager(self.MediaToolBox) |
631 | + # Call the hook method to pull in import menus. |
632 | + log.info(u'hook menus') |
633 | + self.plugin_manager.hook_import_menu(self.FileImportMenu) |
634 | + # Call the hook method to pull in export menus. |
635 | + self.plugin_manager.hook_export_menu(self.FileExportMenu) |
636 | + # Call the initialise method to setup plugins. |
637 | + log.info(u'initialise plugins') |
638 | + self.plugin_manager.initialise_plugins() |
639 | + # Once all components are initialised load the Themes |
640 | + log.info(u'Load Themes') |
641 | + self.ThemeManagerContents.loadThemes() |
642 | + # Register the main form as an event consumer. |
643 | + self.EventManager.register(self) |
644 | + |
645 | + def getMonitorNumber(self): |
646 | + """ |
647 | + Set up the default behaviour of the monitor configuration in |
648 | + here. Currently it is set to default to monitor 0 if the saved |
649 | + monitor number does not exist. |
650 | + """ |
651 | + screen_number = int(self.generalConfig.get_config(u'Monitor', 0)) |
652 | + if screen_number not in self.screenList: |
653 | + screen_number = 0 |
654 | + return screen_number |
655 | + |
656 | + def show(self): |
657 | + """ |
658 | + Show the main form, as well as the display form |
659 | + """ |
660 | + self.showMaximized() |
661 | + screen_number = self.getMonitorNumber() |
662 | + self.mainDisplay.setup(screen_number) |
663 | + self.setFocus() |
664 | + |
665 | + def onHelpAboutItemClicked(self): |
666 | + """ |
667 | + Show the About form |
668 | + """ |
669 | + self.aboutForm.exec_() |
670 | + |
671 | + def onToolsAlertItemClicked(self): |
672 | + """ |
673 | + Show the Alert form |
674 | + """ |
675 | + self.alertForm.exec_() |
676 | + |
677 | + def onOptionsSettingsItemClicked(self): |
678 | + """ |
679 | + Show the Settings dialog |
680 | + """ |
681 | + self.settingsForm.exec_() |
682 | + screen_number = self.getMonitorNumber() |
683 | + self.RenderManager.update_display(screen_number) |
684 | + self.mainDisplay.setup(screen_number) |
685 | + |
686 | + def onCloseEvent(self, event): |
687 | + """ |
688 | + Hook to close the main window and display windows on exit |
689 | + """ |
690 | + if self.oosNotSaved == True: |
691 | + ret = QtGui.QMessageBox.question(None, |
692 | + translate(u'mainWindow', u'Save Changes to Service?'), |
693 | + translate(u'mainWindow', u'Your service has been changed, do you want to save those changes?'), |
694 | + QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Cancel | QtGui.QMessageBox.Discard | QtGui.QMessageBox.Save), |
695 | + QtGui.QMessageBox.Save) |
696 | + if ret == QtGui.QMessageBox.Save: |
697 | + self.ServiceManagerContents.onSaveService() |
698 | + self.mainDisplay.close() |
699 | + self.cleanUp() |
700 | + event.accept() |
701 | + elif ret == QtGui.QMessageBox.Discard: |
702 | + self.mainDisplay.close() |
703 | + self.cleanUp() |
704 | + event.accept() |
705 | + else: |
706 | + event.ignore() |
707 | + else: |
708 | + self.mainDisplay.close() |
709 | + self.cleanUp() |
710 | + event.accept() |
711 | + |
712 | + def cleanUp(self): |
713 | + # Call the cleanup method to shutdown plugins. |
714 | + log.info(u'cleanup plugins') |
715 | + self.plugin_manager.initialise_plugins() |
716 | + |
717 | + def OosChanged(self, reset=False, oosName=None): |
718 | + """ |
719 | + Hook to change the title if the OOS has been changed |
720 | + reset - tells if the OOS has been cleared or saved |
721 | + oosName - is the name of the OOS (if it has one) |
722 | + """ |
723 | + if not oosName: |
724 | + service_name = u'(unsaved service)' |
725 | + else: |
726 | + service_name = oosName |
727 | + if reset == True: |
728 | + self.oosNotSaved = False |
729 | + title = u'%s - %s' % (self.mainTitle, service_name) |
730 | + else: |
731 | + self.oosNotSaved = True |
732 | + title = u'%s - %s*' % (self.mainTitle, service_name) |
733 | + self.setWindowTitle(title) |
734 | + |
735 | + def handle_event(self, event): |
736 | + if event.event_type == EventType.ThemeListChanged: |
737 | + themes = self.ThemeManagerContents.getThemes() |
738 | + self.ServiceManagerContents.updateThemeList(themes) |
739 | + self.settingsForm.ThemesTab.updateThemeList(themes) |
740 | + self.DefaultThemeLabel.setText(self.defaultThemeText + \ |
741 | + self.ThemeManagerContents.getDefault()) |
742 | |
743 | === modified file 'openlp/core/ui/slidecontroller.py' |
744 | --- openlp/core/ui/slidecontroller.py 2009-07-12 20:38:34 +0000 |
745 | +++ openlp/core/ui/slidecontroller.py 2009-08-09 12:05:54 +0000 |
746 | @@ -24,9 +24,12 @@ |
747 | from openlp.core.lib import OpenLPToolbar, translate, buildIcon |
748 | |
749 | class SlideList(QtGui.QTableWidget): |
750 | - |
751 | - def __init__(self,parent=None,name=None): |
752 | - QtGui.QTableWidget.__init__(self,parent.Controller) |
753 | + """ |
754 | + Customised version of QTableWidget which can respond to keyboard |
755 | + events. |
756 | + """ |
757 | + def __init__(self, parent=None, name=None): |
758 | + QtGui.QTableWidget.__init__(self, parent.Controller) |
759 | self.parent = parent |
760 | |
761 | def keyPressEvent(self, event): |
762 | @@ -56,7 +59,7 @@ |
763 | global log |
764 | log = logging.getLogger(u'SlideController') |
765 | |
766 | - def __init__(self, parent, isLive=False): |
767 | + def __init__(self, parent, isLive=False): |
768 | """ |
769 | Set up the Slide Controller. |
770 | """ |
771 | |
772 | === modified file 'openlp/core/ui/thememanager.py' |
773 | --- openlp/core/ui/thememanager.py 2009-08-07 19:05:00 +0000 |
774 | +++ openlp/core/ui/thememanager.py 2009-08-09 17:58:37 +0000 |
775 | @@ -28,7 +28,9 @@ |
776 | |
777 | from openlp.core.ui import AmendThemeForm, ServiceManager |
778 | from openlp.core.theme import Theme |
779 | -from openlp.core.lib import PluginConfig, Event, EventType, EventManager, OpenLPToolbar, ThemeXML, Renderer, translate, file_to_xml, buildIcon |
780 | +from openlp.core.lib import PluginConfig, Event, EventType, \ |
781 | + EventManager, OpenLPToolbar, ThemeXML, Renderer, translate, \ |
782 | + file_to_xml, buildIcon |
783 | from openlp.core.utils import ConfigHelper |
784 | |
785 | class ThemeManager(QtGui.QWidget): |
786 | @@ -39,7 +41,7 @@ |
787 | log = logging.getLogger(u'ThemeManager') |
788 | |
789 | def __init__(self, parent): |
790 | - QtGui.QWidget.__init__(self) |
791 | + QtGui.QWidget.__init__(self, parent) |
792 | self.parent = parent |
793 | self.Layout = QtGui.QVBoxLayout(self) |
794 | self.Layout.setSpacing(0) |
795 | @@ -81,6 +83,9 @@ |
796 | self.servicePath = self.config.get_data_path() |
797 | self.global_theme = unicode(self.config.get_config(u'theme global theme', u'')) |
798 | |
799 | + def getDefault(self): |
800 | + return self.global_theme |
801 | + |
802 | def changeGlobal(self, index): |
803 | for count in range (0, self.ThemeListWidget.count()): |
804 | item = self.ThemeListWidget.item(count) |
805 | @@ -91,10 +96,10 @@ |
806 | #Set the new name |
807 | if count == index.row(): |
808 | self.global_theme = unicode(self.ThemeListWidget.item(count).text()) |
809 | - name = (u'(%s):%s' % (translate(u'ThemeManager', u'default'), self.global_theme)) |
810 | + name = u'%s (%s)' % (self.global_theme, translate(u'ThemeManager', u'default')) |
811 | self.ThemeListWidget.item(count).setText(name) |
812 | self.config.set_config(u'theme global theme', self.global_theme) |
813 | - self.push_themes() |
814 | + self.pushThemes() |
815 | |
816 | def onAddTheme(self): |
817 | self.amendThemeForm.loadTheme(None) |
818 | @@ -134,7 +139,7 @@ |
819 | pass |
820 | #As we do not reload the themes push out the change |
821 | #Reaload the list as the internal lists and events need to be triggered |
822 | - self.push_themes() |
823 | + self.pushThemes() |
824 | |
825 | def onExportTheme(self): |
826 | pass |
827 | @@ -168,7 +173,7 @@ |
828 | (path, filename) = os.path.split(unicode(file)) |
829 | textName = os.path.splitext(name)[0] |
830 | if textName == self.global_theme: |
831 | - name = (u'(%s):%s' % (translate(u'ThemeManager', u'default'), textName)) |
832 | + name = u'%s (%s)' % (textName, translate(u'ThemeManager', u'default')) |
833 | else: |
834 | name = textName |
835 | item_name = QtGui.QListWidgetItem(name) |
836 | @@ -176,12 +181,10 @@ |
837 | item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(textName)) |
838 | self.ThemeListWidget.addItem(item_name) |
839 | self.themelist.append(textName) |
840 | - self.push_themes() |
841 | + self.pushThemes() |
842 | |
843 | - def push_themes(self): |
844 | + def pushThemes(self): |
845 | self.parent.EventManager.post_event(Event(EventType.ThemeListChanged)) |
846 | - self.parent.ServiceManagerContents.updateThemeList(self.getThemes()) |
847 | - self.parent.settingsForm.ThemesTab.updateThemeList(self.getThemes()) |
848 | |
849 | def getThemes(self): |
850 | return self.themelist |
851 | |
852 | === modified file 'openlp/plugins/images/lib/imageslidecontroller.py' |
853 | --- openlp/plugins/images/lib/imageslidecontroller.py 2009-07-06 16:34:13 +0000 |
854 | +++ openlp/plugins/images/lib/imageslidecontroller.py 2009-08-09 17:58:37 +0000 |
855 | @@ -93,7 +93,7 @@ |
856 | Go to the last slide. |
857 | """ |
858 | if self.PreviewListWidget.rowCount() > 1: |
859 | - self.timer_id = self.startTimer(int(self.TimeoutSpinBox.value()) * 1000) |
860 | + self.timer_id = self.startTimer(int(self.TimeoutSpinBox.value()) * 1000) |
861 | |
862 | def onStopLoop(self): |
863 | """ |
Let's see what changes there are between my few bugfixes, and trunk.