Status: | Merged |
---|---|
Merged at revision: | not available |
Proposed branch: | lp:~trb143/openlp/servicing |
Merge into: | lp:openlp |
Diff against target: | None lines |
To merge this branch: | bzr merge lp:~trb143/openlp/servicing |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raoul Snyman | 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)
Tim Bentley (trb143) wrote : | # |
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Raoul Snyman (raoul-snyman) wrote : | # |
Great stuff!
review:
Approve
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-05-20 20:17:20 +0000 |
3 | +++ openlp.pyw 2009-06-07 19:34:24 +0000 |
4 | @@ -41,7 +41,6 @@ |
5 | #provide a listener for widgets to reqest a screen update. |
6 | QtCore.QObject.connect(Receiver.get_receiver(), |
7 | QtCore.SIGNAL(u'openlpprocessevents'), self.processEvents) |
8 | - |
9 | self.setApplicationName(u'openlp.org') |
10 | self.setApplicationVersion(u'1.9.0') |
11 | self.splash = SplashScreen(self.applicationVersion()) |
12 | @@ -66,4 +65,3 @@ |
13 | if __name__ == u'__main__': |
14 | app = OpenLP(sys.argv) |
15 | app.run() |
16 | - |
17 | |
18 | === modified file 'openlp/core/lib/renderer.py' |
19 | --- openlp/core/lib/renderer.py 2009-06-05 18:53:50 +0000 |
20 | +++ openlp/core/lib/renderer.py 2009-06-08 04:30:12 +0000 |
21 | @@ -20,22 +20,14 @@ |
22 | import logging |
23 | import os, os.path |
24 | import sys |
25 | +#from copy import copy |
26 | |
27 | -from datetime import * |
28 | from PyQt4 import QtGui, QtCore, Qt |
29 | |
30 | -from copy import copy |
31 | - |
32 | class Renderer: |
33 | """ |
34 | - All the functions for rendering a set of words onto a Device Context |
35 | - |
36 | - How to use: |
37 | - set the words to be displayed with a call to format_slide() - this returns an array of screenfuls of data |
38 | - set a theme (if you need) with set_theme |
39 | - tell it which DC to render to with set_DC() |
40 | - set the borders of where you want the text (if not the whole DC) with set_text_rectangle() |
41 | - tell it to render a particular screenfull with render_screen(n) |
42 | + Genarates a pixmap image of a array of text. The Text is formatted to |
43 | + make sure it fits on the screen and if not extra frames a generated. |
44 | """ |
45 | global log |
46 | log = logging.getLogger(u'Renderer') |
47 | @@ -98,7 +90,7 @@ |
48 | """ |
49 | if preview == True: |
50 | self._bg_frame = None |
51 | - log.debug(u'set frame dest (frame) w %d h %d',frame_width, frame_height) |
52 | + log.debug(u'set frame dest (frame) w %d h %d', frame_width, frame_height) |
53 | self._frame = QtGui.QPixmap(frame_width, frame_height) |
54 | if self._bg_image_filename is not None: |
55 | self.scale_bg_image() |
56 | @@ -109,10 +101,10 @@ |
57 | """ |
58 | External API to sort out the text to pe placed on the frame |
59 | """ |
60 | - print "########## Format Slide ##################" |
61 | + #print "########## Format Slide ##################" |
62 | log.debug(u'format_slide %s', words) |
63 | verses = [] |
64 | - words = words.replace("\r\n", "\n") |
65 | + words = words.replace(u'\r\n', u'\n') |
66 | verses_text = words.split(u'\n\n') |
67 | text = [] |
68 | for verse in verses_text: |
69 | @@ -120,8 +112,8 @@ |
70 | for line in lines: |
71 | text.append(line) |
72 | split_text = self._split_set_of_lines(text, False) |
73 | - print "split text ", split_text |
74 | - print "text ", text |
75 | + #print "split text ", split_text |
76 | + #print "text ", text |
77 | return split_text |
78 | |
79 | def set_text_rectangle(self, rect_main, rect_footer): |
80 | @@ -147,7 +139,6 @@ |
81 | bbox = self._render_lines_unaligned(lines, False, (x, y)) |
82 | if footer_lines is not None: |
83 | bbox = self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) ) |
84 | - log.debug(u'generate_frame_from_lines - Finish') |
85 | return self._frame |
86 | |
87 | def _generate_background_frame(self): |
88 | @@ -158,7 +149,6 @@ |
89 | assert(self._theme) |
90 | self._bg_frame = QtGui.QPixmap(self._frame.width(), self._frame.height()) |
91 | log.debug(u'render background %s ', self._theme.background_type) |
92 | - bef = datetime.now() |
93 | painter = QtGui.QPainter() |
94 | painter.begin(self._bg_frame) |
95 | if self._theme.background_type == u'solid': |
96 | @@ -193,9 +183,6 @@ |
97 | else: |
98 | painter.fillRect(self._frame.rect(), QtGui.QColor(u'#000000')) |
99 | painter.end() |
100 | - aft = datetime.now() |
101 | - print "background time", bef, aft, aft-bef |
102 | - log.debug(u'render background finish') |
103 | |
104 | def _split_set_of_lines(self, lines, footer): |
105 | """ |
106 | @@ -212,16 +199,11 @@ |
107 | #print "bboxes ", bboxes |
108 | numlines = len(lines) |
109 | bottom = self._rect.bottom() |
110 | - count = 0 |
111 | for ratio in (numlines, numlines/2, numlines/3, numlines/4): |
112 | good = 1 |
113 | startline = 0 |
114 | endline = startline + ratio |
115 | while (endline <= numlines and endline != 0): |
116 | - count += 1 |
117 | - if count > 100: |
118 | - #print "busted" |
119 | - break |
120 | by = 0 |
121 | for (x,y) in bboxes[startline:endline]: |
122 | #print by, startline, endline, x, y, bottom |
123 | @@ -278,7 +260,7 @@ |
124 | elif int(self._theme.display_verticalAlign) == 1: # centre align |
125 | y = rect.top() + (rect.height() - bbox.height()) / 2 |
126 | else: |
127 | - assert(0 , u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign) |
128 | + log.error(u'Invalid value for theme.VerticalAlign:%s' % self._theme.display_verticalAlign) |
129 | return x, y |
130 | |
131 | def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)): |
132 | @@ -306,7 +288,6 @@ |
133 | painter.setPen(QtGui.QPen(QtGui.QColor(0,0,255))) |
134 | painter.drawRect(retval) |
135 | painter.end() |
136 | - log.debug(u'render lines unaligned Finish') |
137 | return retval |
138 | |
139 | def _render_and_wrap_single_line(self, line, footer, tlcorner=(0,0)): |
140 | @@ -317,7 +298,7 @@ |
141 | right-aligns the surplus words in the manner of song lyrics |
142 | Returns the bottom-right corner (of what was rendered) as a tuple(x, y). |
143 | """ |
144 | - log.debug(u'Render single line %s @ %s '%( line, tlcorner)) |
145 | + #log.debug(u'Render single line %s @ %s '%( line, tlcorner)) |
146 | x, y = tlcorner |
147 | # We draw the text to see how big it is and then iterate to make it fit |
148 | # when we line wrap we do in in the "lyrics" style, so the second line is |
149 | @@ -342,7 +323,8 @@ |
150 | startx = x |
151 | starty = y |
152 | rightextent = None |
153 | - if footer: # dont allow alignment messing with footers |
154 | + # dont allow alignment messing with footers |
155 | + if footer: |
156 | align = 0 |
157 | else: |
158 | align = int(self._theme .display_horizontalAlign) |
159 | @@ -354,42 +336,47 @@ |
160 | w += self._shadow_offset |
161 | h += self._shadow_offset |
162 | if self._theme.display_outline: |
163 | - w += 2*self._outline_offset # pixels either side |
164 | - h += 2*self._outline_offset # pixels top/bottom |
165 | + # pixels either side |
166 | + w += 2 * self._outline_offset |
167 | + # pixels top/bottom |
168 | + h += 2 * self._outline_offset |
169 | if align == 0: # left align |
170 | rightextent = x + w |
171 | - if self._theme.display_wrapStyle == 1 and linenum != 0: # shift right from last line's rh edge |
172 | + # shift right from last line's rh edge |
173 | + if self._theme.display_wrapStyle == 1 and linenum != 0: |
174 | rightextent = self._first_line_right_extent + self._right_margin |
175 | if rightextent > maxx: |
176 | rightextent = maxx |
177 | x = rightextent - w |
178 | - elif align == 1: # right align |
179 | + # right align |
180 | + elif align == 1: |
181 | rightextent = maxx |
182 | x = maxx - w |
183 | - elif align == 2: # centre |
184 | + # centre |
185 | + elif align == 2: |
186 | x = (maxx - w) / 2; |
187 | rightextent = x + w |
188 | # now draw the text, and any outlines/shadows |
189 | if self._theme.display_shadow: |
190 | - self._get_extent_and_render(line, footer,tlcorner=(x+self._shadow_offset,y+self._shadow_offset), |
191 | + self._get_extent_and_render(line, footer, tlcorner=(x+self._shadow_offset,y+self._shadow_offset), |
192 | draw=True, color = self._theme.display_shadow_color) |
193 | if self._theme.display_outline: |
194 | - self._get_extent_and_render(line, footer,(x+self._outline_offset,y), draw=True, |
195 | - color = self._theme.display_outline_color) |
196 | - self._get_extent_and_render(line, footer,(x, y+self._outline_offset), draw=True, |
197 | - color = self._theme.display_outline_color) |
198 | - self._get_extent_and_render(line, footer,(x, y-self._outline_offset), draw=True, |
199 | - color = self._theme.display_outline_color) |
200 | - self._get_extent_and_render(line, footer,(x-self._outline_offset,y), draw=True, |
201 | + self._get_extent_and_render(line, footer, (x+self._outline_offset,y), draw=True, |
202 | + color = self._theme.display_outline_color) |
203 | + self._get_extent_and_render(line, footer, (x, y+self._outline_offset), draw=True, |
204 | + color = self._theme.display_outline_color) |
205 | + self._get_extent_and_render(line, footer, (x, y-self._outline_offset), draw=True, |
206 | + color = self._theme.display_outline_color) |
207 | + self._get_extent_and_render(line, footer, (x-self._outline_offset,y), draw=True, |
208 | color = self._theme.display_outline_color) |
209 | if self._outline_offset > 1: |
210 | - self._get_extent_and_render(line, footer,(x+self._outline_offset,y+self._outline_offset), draw=True, |
211 | - color = self._theme.display_outline_color) |
212 | - self._get_extent_and_render(line, footer,(x-self._outline_offset,y+self._outline_offset), draw=True, |
213 | - color = self._theme.display_outline_color) |
214 | - self._get_extent_and_render(line, footer,(x+self._outline_offset,y-self._outline_offset), draw=True, |
215 | - color = self._theme.display_outline_color) |
216 | - self._get_extent_and_render(line, footer,(x-self._outline_offset,y-self._outline_offset), draw=True, |
217 | + self._get_extent_and_render(line, footer, (x+self._outline_offset,y+self._outline_offset), draw=True, |
218 | + color = self._theme.display_outline_color) |
219 | + self._get_extent_and_render(line, footer, (x-self._outline_offset,y+self._outline_offset), draw=True, |
220 | + color = self._theme.display_outline_color) |
221 | + self._get_extent_and_render(line, footer, (x+self._outline_offset,y-self._outline_offset), draw=True, |
222 | + color = self._theme.display_outline_color) |
223 | + self._get_extent_and_render(line, footer, (x-self._outline_offset,y-self._outline_offset), draw=True, |
224 | color = self._theme.display_outline_color) |
225 | self._get_extent_and_render(line, footer,tlcorner=(x, y), draw=True) |
226 | y += h |
227 | @@ -403,7 +390,6 @@ |
228 | painter.drawRect(startx , starty , rightextent-startx , y-starty) |
229 | painter.end() |
230 | brcorner = (rightextent , y) |
231 | - log.debug(u'Render single line Finish') |
232 | return brcorner |
233 | |
234 | # xxx this is what to override for an SDL version |
235 | @@ -454,14 +440,7 @@ |
236 | Debugging method to allow images to be viewed |
237 | """ |
238 | im = image.toImage() |
239 | - im.save("renderer.png", "png") |
240 | + im.save(u'renderer.png', u'png') |
241 | if image2 is not None: |
242 | im = image2.toImage() |
243 | - im.save("renderer2.png", "png") |
244 | - |
245 | -# def render_screen(self, screennum): |
246 | -# log.debug(u'render screen\n %s %s ', screennum, self.words[screennum]) |
247 | -# t = 0.0 |
248 | -# words = self.words[screennum] |
249 | -# retval = self._render_lines(words) |
250 | -# return retval |
251 | + im.save(u'renderer2.png', u'png') |
252 | |
253 | === modified file 'openlp/core/lib/rendermanager.py' |
254 | --- openlp/core/lib/rendermanager.py 2009-06-05 18:53:50 +0000 |
255 | +++ openlp/core/lib/rendermanager.py 2009-06-08 05:04:06 +0000 |
256 | @@ -64,6 +64,7 @@ |
257 | self.calculate_default(self.screen_list[self.current_display]['size']) |
258 | self.theme = u'' |
259 | self.service_theme = u'' |
260 | + self.global_style = u'' |
261 | |
262 | def update_display(self, screen_number): |
263 | """ |
264 | |
265 | === modified file 'openlp/core/lib/serviceitem.py' |
266 | --- openlp/core/lib/serviceitem.py 2009-06-05 19:00:57 +0000 |
267 | +++ openlp/core/lib/serviceitem.py 2009-06-08 20:36:33 +0000 |
268 | @@ -32,12 +32,14 @@ |
269 | log=logging.getLogger(u'ServiceItem') |
270 | log.info(u'Service Item created') |
271 | |
272 | - def __init__(self, hostplugin): |
273 | + def __init__(self, hostplugin=None): |
274 | """ |
275 | Init Method |
276 | """ |
277 | self.plugin = hostplugin |
278 | - self.shortname = hostplugin.name |
279 | + if hostplugin is not None: |
280 | + self.RenderManager = self.plugin.render_manager |
281 | + self.shortname = hostplugin.name |
282 | self.title = u'' |
283 | self.items = [] |
284 | self.iconic_representation = None |
285 | @@ -47,10 +49,11 @@ |
286 | self.frames = [] |
287 | self.raw_footer = None |
288 | self.theme = None |
289 | - log.debug(u'Service item created for %s ', self.shortname) |
290 | + #log.debug(u'Service item created for %s ', self.shortname) |
291 | self.service_frames = [] |
292 | |
293 | def addIcon(self, icon): |
294 | + self.icon = icon |
295 | self.iconic_representation = buildIcon(icon) |
296 | |
297 | def render(self): |
298 | @@ -59,15 +62,15 @@ |
299 | """ |
300 | log.debug(u'Render called') |
301 | if self.theme == None: |
302 | - self.plugin.render_manager.set_override_theme(None) |
303 | + self.RenderManager.set_override_theme(None) |
304 | else: |
305 | - self.plugin.render_manager.set_override_theme(self.theme) |
306 | + self.RenderManager.set_override_theme(self.theme) |
307 | log.debug(u'Formatting slides') |
308 | if self.service_item_type == u'text': |
309 | for slide in self.service_frames: |
310 | - formated = self.plugin.render_manager.format_slide(slide[u'raw_slide']) |
311 | + formated = self.RenderManager.format_slide(slide[u'raw_slide']) |
312 | for format in formated: |
313 | - frame = self.plugin.render_manager.generate_slide(format, self.raw_footer) |
314 | + frame = self.RenderManager.generate_slide(format, self.raw_footer) |
315 | self.frames.append({u'title': slide[u'title'], u'image': frame}) |
316 | elif self.service_item_type == u'command': |
317 | self.frames = self.service_frames |
318 | @@ -76,7 +79,7 @@ |
319 | self.frames = self.service_frames |
320 | self.service_frames = [] |
321 | else: |
322 | - assert(0 , u'Invalid value rendere :%s' % self.service_item_type) |
323 | + log.error(u'Invalid value renderer :%s' % self.service_item_type) |
324 | |
325 | def add_from_image(self, frame_title, image): |
326 | self.service_item_type = u'image' |
327 | @@ -91,24 +94,29 @@ |
328 | self.service_item_type = u'command' |
329 | self.service_frames.append({u'title': frame_title, u'command': command}) |
330 | |
331 | - |
332 | - |
333 | def get_oos_repr(self): |
334 | """ |
335 | This method returns some text which can be saved into the OOS |
336 | file to represent this item |
337 | """ |
338 | - pass |
339 | + oos_header = {u'plugin': self.shortname,u'theme':self.theme, u'title':self.title, |
340 | + u'icon':self.icon, u'footer':self.raw_footer, u'type':self.service_item_type} |
341 | + oos_data = [] |
342 | + if self.service_item_type == u'text': |
343 | + for slide in self.service_frames: |
344 | + oos_data.append(slide[u'raw_slide']) |
345 | + return {u'header': oos_header, u'data': self.service_frames} |
346 | |
347 | - def set_from_oos(self, oostext): |
348 | + def set_from_oos(self, serviceitem): |
349 | """ |
350 | This method takes some oostext (passed from the ServiceManager) |
351 | and parses it into the data actually required |
352 | """ |
353 | - pass |
354 | - |
355 | - def set_from_plugin(self): |
356 | - """ |
357 | - Takes data from the plugin media chooser |
358 | - """ |
359 | - pass |
360 | + header = serviceitem[u'serviceitem'][u'header'] |
361 | + self.title = header[u'title'] |
362 | + self.service_item_type = header[u'type'] |
363 | + self.shortname = header[u'plugin'] |
364 | + self.theme = header[u'theme'] |
365 | + self.addIcon(header[u'icon']) |
366 | + self.raw_footer = header[u'footer'] |
367 | + self.service_frames = serviceitem[u'serviceitem'][u'data'] |
368 | |
369 | === modified file 'openlp/core/ui/maindisplay.py' |
370 | --- openlp/core/ui/maindisplay.py 2009-06-05 18:53:50 +0000 |
371 | +++ openlp/core/ui/maindisplay.py 2009-06-07 19:34:24 +0000 |
372 | @@ -60,7 +60,7 @@ |
373 | if not screen[u'primary']: |
374 | self.showFullScreen() |
375 | else: |
376 | - self.hide() |
377 | + self.showMinimized() |
378 | painter = QtGui.QPainter() |
379 | self.blankFrame = QtGui.QPixmap(screen[u'size'].width(), screen[u'size'].height()) |
380 | painter.begin(self.blankFrame) |
381 | |
382 | === modified file 'openlp/core/ui/mainwindow.py' |
383 | --- openlp/core/ui/mainwindow.py 2009-06-08 19:03:16 +0000 |
384 | +++ openlp/core/ui/mainwindow.py 2009-06-08 19:11:55 +0000 |
385 | @@ -75,12 +75,12 @@ |
386 | # hook methods have to happen after find_plugins. Find plugins needs the |
387 | # controllershence the hooks have moved from setupUI() to here |
388 | |
389 | + # Find and insert settings tabs |
390 | + log.info(u'hook settings') |
391 | + self.plugin_manager.hook_settings_tabs(self.settingsForm) |
392 | # Find and insert media manager items |
393 | log.info(u'hook media') |
394 | self.plugin_manager.hook_media_manager(self.MediaToolBox) |
395 | - # Find and insert settings tabs |
396 | - log.info(u'hook settings') |
397 | - self.plugin_manager.hook_settings_tabs(self.settingsForm) |
398 | # Call the hook method to pull in import menus. |
399 | log.info(u'hook menus') |
400 | self.plugin_manager.hook_import_menu(self.FileImportMenu) |
401 | |
402 | === modified file 'openlp/core/ui/servicemanager.py' |
403 | --- openlp/core/ui/servicemanager.py 2009-06-08 19:03:16 +0000 |
404 | +++ openlp/core/ui/servicemanager.py 2009-06-08 20:36:33 +0000 |
405 | @@ -19,6 +19,7 @@ |
406 | """ |
407 | import os |
408 | import logging |
409 | +import cPickle |
410 | |
411 | from PyQt4 import QtCore, QtGui |
412 | from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, Event, \ |
413 | @@ -134,7 +135,8 @@ |
414 | """ |
415 | Clear the list to create a new service |
416 | """ |
417 | - self.service_data.clearItems() |
418 | + self.ServiceManagerList.clear() |
419 | + self.serviceItems = [] |
420 | |
421 | def onDeleteFromService(self): |
422 | """ |
423 | @@ -146,13 +148,34 @@ |
424 | """ |
425 | Save the current service |
426 | """ |
427 | - pass |
428 | + filename = QtGui.QFileDialog.getSaveFileName(self, u'Save Order of Service',self.config.get_last_dir() ) |
429 | + if filename != u'': |
430 | + self.config.set_last_dir(filename) |
431 | + print filename |
432 | + service = [] |
433 | + for item in self.serviceItems: |
434 | + service.append({u'serviceitem':item[u'data'].get_oos_repr()}) |
435 | + file = open(filename+u'.oos', u'wb') |
436 | + cPickle.dump(service, file) |
437 | + file.close() |
438 | |
439 | def onLoadService(self): |
440 | """ |
441 | Load an existing service from disk |
442 | """ |
443 | - pass |
444 | + filename = QtGui.QFileDialog.getOpenFileName(self, u'Open Order of Service',self.config.get_last_dir(), |
445 | + u'Services (*.oos)') |
446 | + if filename != u'': |
447 | + self.config.set_last_dir(filename) |
448 | + file = open(filename, u'r') |
449 | + items = cPickle.load(file) |
450 | + file.close() |
451 | + self.onNewService() |
452 | + for item in items: |
453 | + serviceitem = ServiceItem() |
454 | + serviceitem.RenderManager = self.parent.RenderManager |
455 | + serviceitem.set_from_oos(item) |
456 | + self.addServiceItem(serviceitem) |
457 | |
458 | def onThemeComboBoxSelected(self, currentIndex): |
459 | """ |
460 | @@ -162,16 +185,16 @@ |
461 | self.parent.RenderManager.set_service_theme(self.service_theme) |
462 | self.config.set_config(u'theme service theme', self.service_theme) |
463 | |
464 | - def addServiceItem(self, item): |
465 | + def addServiceItem(self, item, expand=True): |
466 | """ |
467 | Add an item to the list |
468 | """ |
469 | self.serviceItems.append({u'data': item, u'order': len(self.serviceItems)+1}) |
470 | treewidgetitem = QtGui.QTreeWidgetItem(self.ServiceManagerList) |
471 | - treewidgetitem.setText(0,item.title) # + u':' + item.shortname) |
472 | + treewidgetitem.setText(0,item.title) |
473 | treewidgetitem.setIcon(0,item.iconic_representation) |
474 | treewidgetitem.setData(0, QtCore.Qt.UserRole, QtCore.QVariant(len(self.serviceItems))) |
475 | - treewidgetitem.setExpanded(True) |
476 | + treewidgetitem.setExpanded(expand) |
477 | item.render() |
478 | count = 0 |
479 | for frame in item.frames: |
480 | @@ -204,13 +227,14 @@ |
481 | count = 0 |
482 | for item in items: |
483 | childCount = item.childCount() |
484 | - if childCount >= 1: # is the parent |
485 | + if childCount >= 1: |
486 | pos = item.data(0, QtCore.Qt.UserRole).toInt()[0] |
487 | else: |
488 | parentitem = item.parent() |
489 | pos = parentitem.data(0, QtCore.Qt.UserRole).toInt()[0] |
490 | count = item.data(0, QtCore.Qt.UserRole).toInt()[0] |
491 | - pos = pos - 1 #adjust for zeor indexing |
492 | + #adjuest for zero based arrays |
493 | + pos = pos - 1 |
494 | return pos, count |
495 | |
496 | def dragEnterEvent(self, event): |
497 | @@ -229,26 +253,6 @@ |
498 | plugin = event.mimeData().text() |
499 | self.parent.EventManager.post_event(Event(EventType.LoadServiceItem, plugin)) |
500 | |
501 | - def oos_as_text(self): |
502 | - text=[] |
503 | - log.info( "oos as text") |
504 | - log.info("Data:"+str(self.service_data)) |
505 | - for i in self.service_data: |
506 | - text.append("# " + str(i)) |
507 | - text.append(i.get_oos_text()) |
508 | - return '\n'.join(text) |
509 | - |
510 | - def write_oos(self, filename): |
511 | - """ |
512 | - Write a full OOS file out - iterate over plugins and call their respective methods |
513 | - This format is totally arbitrary testing purposes - something sensible needs to go in here! |
514 | - """ |
515 | - oosfile=open(filename, "w") |
516 | - oosfile.write("# BEGIN OOS\n") |
517 | - oosfile.write(self.oos_as_text) |
518 | - oosfile.write("# END OOS\n") |
519 | - oosfile.close() |
520 | - |
521 | def updateThemeList(self, theme_list): |
522 | """ |
523 | Called from ThemeManager when the Themes have changed |
524 | @@ -264,4 +268,3 @@ |
525 | self.service_theme = u'' |
526 | self.ThemeComboBox.setCurrentIndex(id) |
527 | self.parent.RenderManager.set_service_theme(self.service_theme) |
528 | - |
529 | |
530 | === modified file 'openlp/core/ui/slidecontroller.py' |
531 | --- openlp/core/ui/slidecontroller.py 2009-06-05 19:00:57 +0000 |
532 | +++ openlp/core/ui/slidecontroller.py 2009-06-07 19:34:24 +0000 |
533 | @@ -135,11 +135,10 @@ |
534 | self.PreviewListView = QtGui.QListView(self.Controller) |
535 | self.PreviewListData = SlideData() |
536 | self.PreviewListView.isLive = self.isLive |
537 | - self.PreviewListView.setFlow(1) |
538 | - self.PreviewListView.setViewMode(1) |
539 | + #self.PreviewListView.setFlow(1) |
540 | + #self.PreviewListView.setViewMode(1) |
541 | self.PreviewListView.setWrapping(False) |
542 | self.PreviewListView.setModel(self.PreviewListData) |
543 | - #self.PreviewListView.setSelectionRectVisible(True) |
544 | self.PreviewListView.setSpacing(0) |
545 | self.PreviewListView.setObjectName(u'PreviewListView') |
546 | self.ControllerLayout.addWidget(self.PreviewListView) |
547 | |
548 | === modified file 'openlp/plugins/bibles/forms/bibleimportform.py' |
549 | --- openlp/plugins/bibles/forms/bibleimportform.py 2009-06-07 16:33:33 +0000 |
550 | +++ openlp/plugins/bibles/forms/bibleimportform.py 2009-06-08 05:04:06 +0000 |
551 | @@ -33,9 +33,9 @@ |
552 | global log |
553 | log=logging.getLogger(u'BibleImportForm') |
554 | log.info(u'BibleImportForm loaded') |
555 | - ''' |
556 | + """ |
557 | Class documentation goes here. |
558 | - ''' |
559 | + """ |
560 | def __init__(self, config, biblemanager , bibleplugin, parent = None): |
561 | ''' |
562 | Constructor |
563 | @@ -124,7 +124,7 @@ |
564 | # Was OSIS and is not any more stops lostFocus running mad |
565 | if self.bible_type == u'OSIS': |
566 | self.bible_type = None |
567 | - self.freeAll() |
568 | + self.resetScreenFieldStates() |
569 | |
570 | def onBooksLocationEditLostFocus(self): |
571 | self.checkOsis() |
572 | @@ -209,9 +209,9 @@ |
573 | str(self.PermisionEdit.displayText())) |
574 | self.bible_type = None |
575 | # free the screen state restrictions |
576 | - self.freeAll() |
577 | + self.resetScreenFieldStates() |
578 | # reset all the screen fields |
579 | - self.resetAll() |
580 | + self.resetEntryFields() |
581 | |
582 | def checkOsis(self): |
583 | if len(self.BooksLocationEdit.displayText()) > 0 or len(self.VerseLocationEdit.displayText()) > 0: |
584 | @@ -220,7 +220,7 @@ |
585 | # Was CSV and is not any more stops lostFocus running mad |
586 | if self.bible_type == u'CSV': |
587 | self.bible_type = None |
588 | - self.freeAll() |
589 | + self.resetScreenFieldStates() |
590 | |
591 | def checkHttp(self): |
592 | if self.BibleComboBox.currentIndex() != 0 : # First slot is blank so no bible |
593 | @@ -229,7 +229,7 @@ |
594 | # Was HTTP and is not any more stops lostFocus running mad |
595 | if self.bible_type == u'HTTP': |
596 | self.bible_type = None |
597 | - self.freeAll() |
598 | + self.resetScreenFieldStates() |
599 | |
600 | def blockCsv(self): |
601 | self.BooksLocationEdit.setReadOnly(True) |
602 | @@ -247,7 +247,7 @@ |
603 | self.blockHttp() |
604 | |
605 | def setOsis(self): |
606 | - self.bible_type = 'OSIS' |
607 | + self.bible_type = u'OSIS' |
608 | self.OSISLocationEdit.setReadOnly(False) |
609 | self.OsisFileButton.setEnabled(True) |
610 | self.blockCsv() |
611 | @@ -268,8 +268,9 @@ |
612 | self.LocationComboBox.setEnabled(False) |
613 | self.BibleComboBox.setEnabled(False) |
614 | |
615 | - def freeAll(self): |
616 | - if self.bible_type == None: # only reset if no bible type set. |
617 | + def resetScreenFieldStates(self): |
618 | + # only reset if no bible type set. |
619 | + if self.bible_type == None: |
620 | self.BooksLocationEdit.setReadOnly(False) |
621 | self.VerseLocationEdit.setReadOnly(False) |
622 | self.BooksFileButton.setEnabled(True) |
623 | @@ -279,7 +280,7 @@ |
624 | self.LocationComboBox.setEnabled(True) |
625 | self.BibleComboBox.setEnabled(True) |
626 | |
627 | - def resetAll(self): |
628 | + def resetEntryFields(self): |
629 | self.BooksLocationEdit.setText(u'') |
630 | self.VerseLocationEdit.setText(u'') |
631 | self.OSISLocationEdit.setText(u'') |
632 | |
633 | === modified file 'openlp/plugins/bibles/lib/biblestab.py' |
634 | --- openlp/plugins/bibles/lib/biblestab.py 2009-06-05 18:53:50 +0000 |
635 | +++ openlp/plugins/bibles/lib/biblestab.py 2009-06-08 05:04:06 +0000 |
636 | @@ -17,6 +17,7 @@ |
637 | this program; if not, write to the Free Software Foundation, Inc., 59 Temple |
638 | Place, Suite 330, Boston, MA 02111-1307 USA |
639 | """ |
640 | +import logging |
641 | |
642 | from PyQt4 import Qt, QtCore, QtGui |
643 | |
644 | @@ -27,6 +28,10 @@ |
645 | """ |
646 | BiblesTab is the Bibles settings tab in the settings dialog. |
647 | """ |
648 | + global log |
649 | + log = logging.getLogger(u'BibleTab') |
650 | + log.info(u'Bible Tab loaded') |
651 | + |
652 | def __init__(self): |
653 | self.paragraph_style = True |
654 | self.show_new_chapters = False |
655 | @@ -67,14 +72,12 @@ |
656 | self.NewChaptersCheckBox = QtGui.QCheckBox(self.VerseDisplayGroupBox) |
657 | self.NewChaptersCheckBox.setObjectName("NewChaptersCheckBox") |
658 | self.VerseDisplayLayout.addWidget(self.NewChaptersCheckBox, 1, 0, 1, 1) |
659 | - |
660 | self.DisplayStyleWidget = QtGui.QWidget(self.VerseDisplayGroupBox) |
661 | self.DisplayStyleWidget.setObjectName(u'DisplayStyleWidget') |
662 | self.DisplayStyleLayout = QtGui.QHBoxLayout(self.DisplayStyleWidget) |
663 | self.DisplayStyleLayout.setSpacing(8) |
664 | self.DisplayStyleLayout.setMargin(0) |
665 | self.DisplayStyleLayout.setObjectName(u'DisplayStyleLayout') |
666 | - |
667 | self.DisplayStyleLabel = QtGui.QLabel(self.DisplayStyleWidget) |
668 | self.DisplayStyleLabel.setObjectName(u'DisplayStyleLabel') |
669 | self.DisplayStyleLayout.addWidget(self.DisplayStyleLabel) |
670 | @@ -86,14 +89,12 @@ |
671 | self.DisplayStyleComboBox.addItem(QtCore.QString()) |
672 | self.DisplayStyleLayout.addWidget(self.DisplayStyleComboBox) |
673 | self.VerseDisplayLayout.addWidget(self.DisplayStyleWidget, 2, 0, 1, 1) |
674 | - |
675 | self.BibleThemeWidget = QtGui.QWidget(self.VerseDisplayGroupBox) |
676 | self.BibleThemeWidget.setObjectName(u'BibleThemeWidget') |
677 | self.BibleThemeLayout = QtGui.QHBoxLayout(self.BibleThemeWidget) |
678 | self.BibleThemeLayout.setSpacing(8) |
679 | self.BibleThemeLayout.setMargin(0) |
680 | self.BibleThemeLayout.setObjectName(u'BibleThemeLayout') |
681 | - |
682 | self.BibleThemeLabel = QtGui.QLabel(self.BibleThemeWidget) |
683 | self.BibleThemeLabel.setObjectName(u'BibleThemeLabel') |
684 | self.BibleThemeLayout.addWidget(self.BibleThemeLabel) |
685 | @@ -102,7 +103,6 @@ |
686 | self.BibleThemeComboBox.addItem(QtCore.QString()) |
687 | self.BibleThemeLayout.addWidget(self.BibleThemeComboBox) |
688 | self.VerseDisplayLayout.addWidget(self.BibleThemeWidget, 3, 0, 1, 1) |
689 | - |
690 | self.ChangeNoteLabel = QtGui.QLabel(self.VerseDisplayGroupBox) |
691 | self.ChangeNoteLabel.setObjectName(u'ChangeNoteLabel') |
692 | self.VerseDisplayLayout.addWidget(self.ChangeNoteLabel, 4, 0, 1, 1) |
693 | @@ -111,7 +111,6 @@ |
694 | QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) |
695 | self.BibleLeftLayout.addItem(self.BibleLeftSpacer) |
696 | self.BibleLayout.addWidget(self.BibleLeftWidget) |
697 | - |
698 | self.BibleRightWidget = QtGui.QWidget(self) |
699 | self.BibleRightWidget.setObjectName(u'BibleRightWidget') |
700 | self.BibleRightLayout = QtGui.QVBoxLayout(self.BibleRightWidget) |
701 | @@ -176,13 +175,15 @@ |
702 | def onNewChaptersCheckBoxChanged(self): |
703 | check_state = self.NewChaptersCheckBox.checkState() |
704 | self.show_new_chapters = False |
705 | - if check_state == 2: # we have a set value convert to True/False |
706 | + # we have a set value convert to True/False |
707 | + if check_state == 2: |
708 | self.show_new_chapters = True |
709 | |
710 | def onBibleSearchCheckBoxChanged(self): |
711 | check_state = self.BibleSearchCheckBox.checkState() |
712 | self.bible_search = False |
713 | - if check_state == 2: # we have a set value convert to True/False |
714 | + # we have a set value convert to True/False |
715 | + if check_state == 2: |
716 | self.bible_search = True |
717 | |
718 | def load(self): |
719 | |
720 | === modified file 'openlp/plugins/bibles/lib/mediaitem.py' |
721 | --- openlp/plugins/bibles/lib/mediaitem.py 2009-06-07 18:39:31 +0000 |
722 | +++ openlp/plugins/bibles/lib/mediaitem.py 2009-06-08 05:04:06 +0000 |
723 | @@ -42,9 +42,7 @@ |
724 | mimeData = QtCore.QMimeData() |
725 | drag.setMimeData(mimeData) |
726 | mimeData.setText(u'Bibles') |
727 | - |
728 | dropAction = drag.start(QtCore.Qt.CopyAction) |
729 | - |
730 | if dropAction == QtCore.Qt.CopyAction: |
731 | self.close() |
732 | |
733 | @@ -90,7 +88,6 @@ |
734 | translate(u'BibleMediaItem',u'Add the selected Bible(s) to the service'), |
735 | u':/system/system_add.png', |
736 | self.onBibleAddClick, u'BibleAddItem') |
737 | - |
738 | # Create the tab widget |
739 | self.SearchTabWidget = QtGui.QTabWidget(self) |
740 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) |
741 | @@ -99,7 +96,6 @@ |
742 | sizePolicy.setHeightForWidth(self.SearchTabWidget.sizePolicy().hasHeightForWidth()) |
743 | self.SearchTabWidget.setSizePolicy(sizePolicy) |
744 | self.SearchTabWidget.setObjectName(u'SearchTabWidget') |
745 | - |
746 | # Add the Quick Search tab |
747 | self.QuickTab = QtGui.QWidget() |
748 | self.QuickTab.setObjectName(u'QuickTab') |
749 | @@ -138,7 +134,6 @@ |
750 | QuickSpacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, |
751 | QtGui.QSizePolicy.Expanding) |
752 | self.QuickLayout.addItem(QuickSpacerItem, 4, 2, 1, 1) |
753 | - |
754 | # Add the Advanced Search tab |
755 | self.AdvancedTab = QtGui.QWidget() |
756 | self.AdvancedTab.setObjectName(u'AdvancedTab') |
757 | @@ -170,45 +165,37 @@ |
758 | self.AdvancedToLabel = QtGui.QLabel(self.AdvancedTab) |
759 | self.AdvancedToLabel.setObjectName(u'AdvancedToLabel') |
760 | self.AdvancedLayout.addWidget(self.AdvancedToLabel, 4, 0, 1, 1) |
761 | - |
762 | self.AdvancedFromChapter = QtGui.QComboBox(self.AdvancedTab) |
763 | self.AdvancedFromChapter.setObjectName(u'AdvancedFromChapter') |
764 | self.AdvancedLayout.addWidget(self.AdvancedFromChapter, 3, 2, 1, 1) |
765 | self.AdvancedFromVerse = QtGui.QComboBox(self.AdvancedTab) |
766 | self.AdvancedFromVerse.setObjectName(u'AdvancedFromVerse') |
767 | self.AdvancedLayout.addWidget(self.AdvancedFromVerse, 3, 3, 1, 1) |
768 | - |
769 | self.AdvancedToChapter = QtGui.QComboBox(self.AdvancedTab) |
770 | self.AdvancedToChapter.setObjectName(u'AdvancedToChapter') |
771 | self.AdvancedLayout.addWidget(self.AdvancedToChapter, 4, 2, 1, 1) |
772 | self.AdvancedToVerse = QtGui.QComboBox(self.AdvancedTab) |
773 | self.AdvancedToVerse.setObjectName(u'AdvancedToVerse') |
774 | self.AdvancedLayout.addWidget(self.AdvancedToVerse, 4, 3, 1, 1) |
775 | - |
776 | self.AdvancedClearLabel = QtGui.QLabel(self.QuickTab) |
777 | self.AdvancedClearLabel.setObjectName(u'QuickSearchLabel') |
778 | self.AdvancedLayout.addWidget(self.AdvancedClearLabel, 5, 0, 1, 1) |
779 | self.ClearAdvancedSearchComboBox = QtGui.QComboBox(self.QuickTab) |
780 | self.ClearAdvancedSearchComboBox.setObjectName(u'ClearAdvancedSearchComboBox') |
781 | self.AdvancedLayout.addWidget(self.ClearAdvancedSearchComboBox, 5, 2, 1, 1) |
782 | - |
783 | self.AdvancedSearchButton = QtGui.QPushButton(self.AdvancedTab) |
784 | self.AdvancedSearchButton.setObjectName(u'AdvancedSearchButton') |
785 | self.AdvancedLayout.addWidget(self.AdvancedSearchButton, 5, 3, 1, 1) |
786 | self.SearchTabWidget.addTab(self.AdvancedTab, u'Advanced') |
787 | - |
788 | # Add the search tab widget to the page layout |
789 | self.PageLayout.addWidget(self.SearchTabWidget) |
790 | - |
791 | self.BibleListView = BibleList() |
792 | self.BibleListView.setAlternatingRowColors(True) |
793 | self.BibleListData = TextListData() |
794 | self.BibleListView.setModel(self.BibleListData) |
795 | self.BibleListView.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) |
796 | self.BibleListView.setDragEnabled(True) |
797 | - |
798 | self.PageLayout.addWidget(self.BibleListView) |
799 | - |
800 | # Combo Boxes |
801 | QtCore.QObject.connect(self.AdvancedVersionComboBox, |
802 | QtCore.SIGNAL(u'activated(int)'), self.onAdvancedVersionComboBox) |
803 | @@ -226,7 +213,7 @@ |
804 | QtCore.QObject.connect(self.QuickSearchButton, |
805 | QtCore.SIGNAL(u'pressed()'), self.onQuickSearchButton) |
806 | QtCore.QObject.connect(self.BibleListView, |
807 | - QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onRowSelected) |
808 | + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onBiblePreviewClick) |
809 | # Context Menus |
810 | self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) |
811 | self.BibleListView.addAction(self.contextMenuAction( |
812 | @@ -239,7 +226,6 @@ |
813 | self.BibleListView, u':/system/system_add.png', |
814 | translate(u'BibleMediaItem',u'&Add to Service'), self.onBibleAddClick)) |
815 | |
816 | - |
817 | def retranslateUi(self): |
818 | log.debug(u'retranslateUi') |
819 | self.QuickVersionLabel.setText(translate(u'BibleMediaItem', u'Version:')) |
820 | @@ -262,9 +248,6 @@ |
821 | self.ClearAdvancedSearchComboBox.addItem(translate(u'BibleMediaItem', u'Clear')) |
822 | self.ClearAdvancedSearchComboBox.addItem(translate(u'BibleMediaItem', u'Keep')) |
823 | |
824 | - def onRowSelected(self, row): |
825 | - self.onBiblePreviewClick() |
826 | - |
827 | def initialise(self): |
828 | log.debug(u'initialise') |
829 | self.loadBibles() |
830 | @@ -277,7 +260,8 @@ |
831 | # load bibles into the combo boxes |
832 | for bible in bibles: |
833 | self.QuickVersionComboBox.addItem(bible) |
834 | - bibles = self.parent.biblemanager.get_bibles(u'partial') # Without HTTP |
835 | + # Without HTT |
836 | + bibles = self.parent.biblemanager.get_bibles(u'partial') |
837 | first = True |
838 | # load bibles into the combo boxes |
839 | for bible in bibles: |
840 | @@ -367,7 +351,7 @@ |
841 | self.parent.preview_controller.addServiceItem(service_item) |
842 | |
843 | def generateSlideData(self, service_item): |
844 | - log.debug(u'Bible Preview Button pressed') |
845 | + log.debug(u'generating slide data') |
846 | items = self.BibleListView.selectedIndexes() |
847 | old_chapter = u'' |
848 | raw_slides=[] |
849 | @@ -459,7 +443,7 @@ |
850 | end_chapter = '' |
851 | start_verse = '' |
852 | end_verse = '' |
853 | - search = search.replace(u' ', ' ').strip() |
854 | + search = search.replace(u' ', u' ').strip() |
855 | original = search |
856 | message = None |
857 | # Remove book beware 0 index arrays |
858 | |
859 | === modified file 'openlp/plugins/custom/lib/mediaitem.py' |
860 | --- openlp/plugins/custom/lib/mediaitem.py 2009-06-05 19:00:57 +0000 |
861 | +++ openlp/plugins/custom/lib/mediaitem.py 2009-06-07 19:34:24 +0000 |
862 | @@ -41,9 +41,7 @@ |
863 | mimeData = QtCore.QMimeData() |
864 | drag.setMimeData(mimeData) |
865 | mimeData.setText(u'Custom') |
866 | - |
867 | dropAction = drag.start(QtCore.Qt.CopyAction) |
868 | - |
869 | if dropAction == QtCore.Qt.CopyAction: |
870 | self.close() |
871 | |
872 | @@ -65,36 +63,36 @@ |
873 | # Create buttons for the toolbar |
874 | ## New Custom Button ## |
875 | self.addToolbarButton( |
876 | - translate('CustomMediaItem',u'New Custom Item'), |
877 | - translate('CustomMediaItem',u'Add a new Custom Item'), |
878 | - ':/custom/custom_new.png', self.onCustomNewClick, 'CustomNewItem') |
879 | + translate(u'CustomMediaItem',u'New Custom Item'), |
880 | + translate(u'CustomMediaItem',u'Add a new Custom Item'), |
881 | + u':/custom/custom_new.png', self.onCustomNewClick, u'CustomNewItem') |
882 | ## Edit Custom Button ## |
883 | self.addToolbarButton( |
884 | - translate('CustomMediaItem',u'Edit Custom Item'), |
885 | - translate('CustomMediaItem',u'Edit the selected Custom Item'), |
886 | - ':/custom/custom_edit.png', self.onCustomEditClick, 'CustomEditItem') |
887 | + translate(u'CustomMediaItem',u'Edit Custom Item'), |
888 | + translate(u'CustomMediaItem',u'Edit the selected Custom Item'), |
889 | + u':/custom/custom_edit.png', self.onCustomEditClick, u'CustomEditItem') |
890 | ## Delete Custom Button ## |
891 | self.addToolbarButton( |
892 | - translate('CustomMediaItem',u'Delete Custom Item'), |
893 | - translate('CustomMediaItem',u'Delete the selected Custom Item'), |
894 | - ':/custom/custom_delete.png', self.onCustomDeleteClick, 'CustomDeleteItem') |
895 | + translate(u'CustomMediaItem',u'Delete Custom Item'), |
896 | + translate(u'CustomMediaItem',u'Delete the selected Custom Item'), |
897 | + u':/custom/custom_delete.png', self.onCustomDeleteClick, u'CustomDeleteItem') |
898 | ## Separator Line ## |
899 | self.addToolbarSeparator() |
900 | ## Preview Custom Button ## |
901 | self.addToolbarButton( |
902 | - translate('CustomMediaItem',u'Preview Custom Item'), |
903 | - translate('CustomMediaItem',u'Preview the selected Custom Item'), |
904 | - ':/system/system_preview.png', self.onCustomPreviewClick, 'CustomPreviewItem') |
905 | + translate(u'CustomMediaItem',u'Preview Custom Item'), |
906 | + translate(u'CustomMediaItem',u'Preview the selected Custom Item'), |
907 | + u':/system/system_preview.png', self.onCustomPreviewClick, u'CustomPreviewItem') |
908 | ## Live Custom Button ## |
909 | self.addToolbarButton( |
910 | - translate('CustomMediaItem',u'Go Live'), |
911 | - translate('CustomMediaItem', u'Send the selected Custom live'), |
912 | - ':/system/system_live.png', self.onCustomLiveClick, 'CustomLiveItem') |
913 | + translate(u'CustomMediaItem',u'Go Live'), |
914 | + translate(u'CustomMediaItem', u'Send the selected Custom live'), |
915 | + u':/system/system_live.png', self.onCustomLiveClick, u'CustomLiveItem') |
916 | ## Add Custom Button ## |
917 | self.addToolbarButton( |
918 | - translate('CustomMediaItem',u'Add Custom To Service'), |
919 | - translate('CustomMediaItem',u'Add the selected Custom(s) to the service'), |
920 | - ':/system/system_add.png', self.onCustomAddClick, 'CustomAddItem') |
921 | + translate(u'CustomMediaItem',u'Add Custom To Service'), |
922 | + translate(u'CustomMediaItem',u'Add the selected Custom(s) to the service'), |
923 | + u':/system/system_add.png', self.onCustomAddClick, u'CustomAddItem') |
924 | # Add the Customlist widget |
925 | self.CustomWidget = QtGui.QWidget(self) |
926 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) |
927 | @@ -103,64 +101,36 @@ |
928 | sizePolicy.setHeightForWidth(self.CustomWidget.sizePolicy().hasHeightForWidth()) |
929 | self.CustomWidget.setSizePolicy(sizePolicy) |
930 | self.CustomWidget.setObjectName(u'CustomWidget') |
931 | - |
932 | -# self.SearchLayout = QtGui.QGridLayout(self.CustomWidget) |
933 | -# self.SearchLayout.setObjectName('SearchLayout') |
934 | -# self.SearchTextLabel = QtGui.QLabel(self.CustomWidget) |
935 | -# self.SearchTextLabel.setObjectName('SearchTextLabel') |
936 | -# self.SearchTextLabel.setText('Search Text:') |
937 | -# self.SearchLayout.addWidget(self.SearchTextLabel, 2, 0, 1, 1) |
938 | -# self.SearchTextEdit = QtGui.QLineEdit(self.CustomWidget) |
939 | -# self.SearchTextEdit.setObjectName('SearchTextEdit') |
940 | -# self.SearchLayout.addWidget(self.SearchTextEdit, 2, 1, 1, 2) |
941 | -# |
942 | -# self.ClearTextButton = QtGui.QPushButton(self.CustomWidget) |
943 | -# self.ClearTextButton.setObjectName('ClearTextButton') |
944 | -# |
945 | -# self.SearchLayout.addWidget(self.ClearTextButton, 3, 1, 1, 1) |
946 | -# self.SearchTextButton = QtGui.QPushButton(self.CustomWidget) |
947 | -# self.SearchTextButton.setObjectName('SearchTextButton') |
948 | -# self.SearchLayout.addWidget(self.SearchTextButton, 3, 2, 1, 1) |
949 | # Add the Custom widget to the page layout |
950 | self.PageLayout.addWidget(self.CustomWidget) |
951 | - |
952 | self.CustomListView = CustomList() |
953 | self.CustomListView.setAlternatingRowColors(True) |
954 | self.CustomListData = TextListData() |
955 | self.CustomListView.setModel(self.CustomListData) |
956 | self.CustomListView.setDragEnabled(True) |
957 | - |
958 | self.PageLayout.addWidget(self.CustomListView) |
959 | - |
960 | # Signals |
961 | -# QtCore.QObject.connect(self.SearchTextButton, |
962 | -# QtCore.SIGNAL("pressed()"), self.onSearchTextButtonClick) |
963 | -# QtCore.QObject.connect(self.ClearTextButton, |
964 | -# QtCore.SIGNAL("pressed()"), self.onClearTextButtonClick) |
965 | -# QtCore.QObject.connect(self.SearchTextEdit, |
966 | -# QtCore.SIGNAL("textChanged(const QString&)"), self.onSearchTextEditChanged) |
967 | -# QtCore.QObject.connect(self.CustomListView, |
968 | -# QtCore.SIGNAL("itemPressed(QTableWidgetItem * item)"), self.onCustomSelected) |
969 | - |
970 | + QtCore.QObject.connect(self.CustomListView, |
971 | + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onCustomPreviewClick) |
972 | #define and add the context menu |
973 | self.CustomListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) |
974 | self.CustomListView.addAction(self.contextMenuAction(self.CustomListView, |
975 | - ':/custom/custom_edit.png', translate('CustomMediaItem', u'&Edit Custom'), |
976 | + ':/custom/custom_edit.png', translate(u'CustomMediaItem', u'&Edit Custom'), |
977 | self.onCustomEditClick)) |
978 | self.CustomListView.addAction(self.contextMenuSeparator(self.CustomListView)) |
979 | self.CustomListView.addAction(self.contextMenuAction( |
980 | self.CustomListView, ':/system/system_preview.png', |
981 | - translate('CustomMediaItem',u'&Preview Custom'), self.onCustomPreviewClick)) |
982 | + translate(u'CustomMediaItem',u'&Preview Custom'), self.onCustomPreviewClick)) |
983 | self.CustomListView.addAction(self.contextMenuAction( |
984 | self.CustomListView, ':/system/system_live.png', |
985 | - translate('CustomMediaItem',u'&Show Live'), self.onCustomLiveClick)) |
986 | + translate(u'CustomMediaItem',u'&Show Live'), self.onCustomLiveClick)) |
987 | self.CustomListView.addAction(self.contextMenuAction( |
988 | self.CustomListView, ':/system/system_add.png', |
989 | - translate('CustomMediaItem',u'&Add to Service'), self.onCustomAddClick)) |
990 | + translate(u'CustomMediaItem',u'&Add to Service'), self.onCustomAddClick)) |
991 | |
992 | # def retranslateUi(self): |
993 | -# self.ClearTextButton.setText(translate('CustomMediaItem', u'Clear')) |
994 | -# self.SearchTextButton.setText(translate('CustomMediaItem', u'Search')) |
995 | +# self.ClearTextButton.setText(translate(u'CustomMediaItem', u'Clear')) |
996 | +# self.SearchTextButton.setText(translate(u'CustomMediaItem', u'Search')) |
997 | |
998 | def initialise(self): |
999 | self.loadCustomList(self.parent.custommanager.get_all_slides()) |
1000 | @@ -177,7 +147,8 @@ |
1001 | self.SearchTextEdit.clear() |
1002 | |
1003 | def onSearchTextEditChanged(self, text): |
1004 | - if len(text) > 3: # only search if > 3 characters |
1005 | + # only search if > 3 characters |
1006 | + if len(text) > 3: |
1007 | self.onSearchTextButtonClick() |
1008 | |
1009 | def onSearchTextButtonClick(self): |
1010 | @@ -209,21 +180,21 @@ |
1011 | def onCustomPreviewClick(self): |
1012 | log.debug(u'Custom Preview Requested') |
1013 | service_item = ServiceItem(self.parent) |
1014 | - service_item.addIcon( ":/media/media_song.png") |
1015 | + service_item.addIcon(u':/media/media_song.png') |
1016 | self.generateSlideData(service_item) |
1017 | self.parent.preview_controller.addServiceItem(service_item) |
1018 | |
1019 | def onCustomLiveClick(self): |
1020 | log.debug(u'Custom Live Requested') |
1021 | service_item = ServiceItem(self.parent) |
1022 | - service_item.addIcon( ":/media/media_song.png") |
1023 | + service_item.addIcon(u':/media/media_song.png') |
1024 | self.generateSlideData(service_item) |
1025 | self.parent.live_controller.addServiceItem(service_item) |
1026 | |
1027 | def onCustomAddClick(self): |
1028 | log.debug(u'Custom Add Requested') |
1029 | service_item = ServiceItem(self.parent) |
1030 | - service_item.addIcon( ":/media/media_song.png") |
1031 | + service_item.addIcon(u':/media/media_song.png') |
1032 | self.generateSlideData(service_item) |
1033 | self.parent.service_manager.addServiceItem(service_item) |
1034 | |
1035 | |
1036 | === modified file 'openlp/plugins/images/lib/mediaitem.py' |
1037 | --- openlp/plugins/images/lib/mediaitem.py 2009-06-05 19:00:57 +0000 |
1038 | +++ openlp/plugins/images/lib/mediaitem.py 2009-06-07 19:34:24 +0000 |
1039 | @@ -42,9 +42,7 @@ |
1040 | mimeData = QtCore.QMimeData() |
1041 | drag.setMimeData(mimeData) |
1042 | mimeData.setText(u'Image') |
1043 | - |
1044 | dropAction = drag.start(QtCore.Qt.CopyAction) |
1045 | - |
1046 | if dropAction == QtCore.Qt.CopyAction: |
1047 | self.close() |
1048 | |
1049 | @@ -65,32 +63,31 @@ |
1050 | # Create buttons for the toolbar |
1051 | ## New Song Button ## |
1052 | self.addToolbarButton( |
1053 | - translate('ImageMediaItem', u'Load Image'), |
1054 | - translate('ImageMediaItem', u'Load images into openlp.org'), |
1055 | - ':/images/image_load.png', self.onImagesNewClick, 'ImageNewItem') |
1056 | + translate(u'ImageMediaItem', u'Load Image'), |
1057 | + translate(u'ImageMediaItem', u'Load images into openlp.org'), |
1058 | + u':/images/image_load.png', self.onImagesNewClick, u'ImageNewItem') |
1059 | ## Delete Song Button ## |
1060 | self.addToolbarButton( |
1061 | - translate('ImageMediaItem', u'Delete Image'), |
1062 | - translate('ImageMediaItem', u'Delete the selected image'), |
1063 | - ':/images/image_delete.png', self.onImageDeleteClick, 'ImageDeleteItem') |
1064 | + translate(u'ImageMediaItem', u'Delete Image'), |
1065 | + translate(u'ImageMediaItem', u'Delete the selected image'), |
1066 | + u':/images/image_delete.png', self.onImageDeleteClick, u'ImageDeleteItem') |
1067 | ## Separator Line ## |
1068 | self.addToolbarSeparator() |
1069 | ## Preview Song Button ## |
1070 | self.addToolbarButton( |
1071 | - translate('ImageMediaItem', u'Preview Song'), |
1072 | - translate('ImageMediaItem', u'Preview the selected image'), |
1073 | - ':/system/system_preview.png', self.onImagePreviewClick, 'ImagePreviewItem') |
1074 | + translate(u'ImageMediaItem', u'Preview Song'), |
1075 | + translate(u'ImageMediaItem', u'Preview the selected image'), |
1076 | + u':/system/system_preview.png', self.onImagePreviewClick, u'ImagePreviewItem') |
1077 | ## Live Song Button ## |
1078 | self.addToolbarButton( |
1079 | - translate('ImageMediaItem', u'Go Live'), |
1080 | - translate('ImageMediaItem', u'Send the selected image live'), |
1081 | - ':/system/system_live.png', self.onImageLiveClick, 'ImageLiveItem') |
1082 | + translate(u'ImageMediaItem', u'Go Live'), |
1083 | + translate(u'ImageMediaItem', u'Send the selected image live'), |
1084 | + u':/system/system_live.png', self.onImageLiveClick, u'ImageLiveItem') |
1085 | ## Add Song Button ## |
1086 | self.addToolbarButton( |
1087 | - translate('ImageMediaItem', u'Add Image To Service'), |
1088 | - translate('ImageMediaItem', u'Add the selected image(s) to the service'), |
1089 | - ':/system/system_add.png', self.onImageAddClick, 'ImageAddItem') |
1090 | - |
1091 | + translate(u'ImageMediaItem', u'Add Image To Service'), |
1092 | + translate(u'ImageMediaItem', u'Add the selected image(s) to the service'), |
1093 | + u':/system/system_add.png', self.onImageAddClick, u'ImageAddItem') |
1094 | #Add the Image List widget |
1095 | self.ImageListView = ImageList() |
1096 | self.ImageListView.uniformItemSizes = True |
1097 | @@ -101,33 +98,29 @@ |
1098 | self.ImageListView.setSelectionMode(QtGui.QAbstractItemView.MultiSelection) |
1099 | self.ImageListView.setAlternatingRowColors(True) |
1100 | self.ImageListView.setDragEnabled(True) |
1101 | - self.ImageListView.setObjectName('ImageListView') |
1102 | - |
1103 | + self.ImageListView.setObjectName(u'ImageListView') |
1104 | self.PageLayout.addWidget(self.ImageListView) |
1105 | - |
1106 | #define and add the context menu |
1107 | self.ImageListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) |
1108 | - |
1109 | self.ImageListView.addAction(self.contextMenuAction( |
1110 | self.ImageListView, ':/system/system_preview.png', |
1111 | - translate('ImageMediaItem', u'&Preview Image'), |
1112 | + translate(u'ImageMediaItem', u'&Preview Image'), |
1113 | self.onImagePreviewClick)) |
1114 | self.ImageListView.addAction(self.contextMenuAction( |
1115 | self.ImageListView, ':/system/system_live.png', |
1116 | - translate('ImageMediaItem', u'&Show Live'), |
1117 | + translate(u'ImageMediaItem', u'&Show Live'), |
1118 | self.onImageLiveClick)) |
1119 | self.ImageListView.addAction(self.contextMenuAction( |
1120 | self.ImageListView, ':/system/system_add.png', |
1121 | - translate('ImageMediaItem', u'&Add to Service'), |
1122 | + translate(u'ImageMediaItem', u'&Add to Service'), |
1123 | self.onImageAddClick)) |
1124 | |
1125 | - |
1126 | def initialise(self): |
1127 | self.loadImageList(self.parent.config.load_list(u'images')) |
1128 | |
1129 | def onImagesNewClick(self): |
1130 | files = QtGui.QFileDialog.getOpenFileNames(None, |
1131 | - translate('ImageMediaItem', u'Select Image(s)'), |
1132 | + translate(u'ImageMediaItem', u'Select Image(s)'), |
1133 | self.parent.config.get_last_dir(), |
1134 | u'Images (*.jpg *.gif *.png *.bmp)') |
1135 | log.info(u'New image(s)', str(files)) |
1136 | @@ -160,20 +153,20 @@ |
1137 | def onImagePreviewClick(self): |
1138 | log.debug(u'Image Preview Requested') |
1139 | service_item = ServiceItem(self.parent) |
1140 | - service_item.addIcon( ":/media/media_image.png") |
1141 | + service_item.addIcon(u':/media/media_image.png') |
1142 | self.generateSlideData(service_item) |
1143 | self.parent.preview_controller.addServiceItem(service_item) |
1144 | |
1145 | def onImageLiveClick(self): |
1146 | log.debug(u'Image Live Requested') |
1147 | service_item = ServiceItem(self.parent) |
1148 | - service_item.addIcon( ":/media/media_image.png") |
1149 | + service_item.addIcon(u':/media/media_image.png') |
1150 | self.generateSlideData(service_item) |
1151 | self.parent.live_controller.addServiceItem(service_item) |
1152 | |
1153 | def onImageAddClick(self): |
1154 | log.debug(u'Image Add Requested') |
1155 | service_item = ServiceItem(self.parent) |
1156 | - service_item.addIcon( ":/media/media_image.png") |
1157 | + service_item.addIcon(u':/media/media_image.png') |
1158 | self.generateSlideData(service_item) |
1159 | self.parent.service_manager.addServiceItem(service_item) |
1160 | |
1161 | === modified file 'openlp/plugins/songs/lib/mediaitem.py' |
1162 | --- openlp/plugins/songs/lib/mediaitem.py 2009-06-05 19:00:57 +0000 |
1163 | +++ openlp/plugins/songs/lib/mediaitem.py 2009-06-08 05:04:06 +0000 |
1164 | @@ -43,9 +43,7 @@ |
1165 | mimeData = QtCore.QMimeData() |
1166 | drag.setMimeData(mimeData) |
1167 | mimeData.setText(u'Song') |
1168 | - |
1169 | dropAction = drag.start(QtCore.Qt.CopyAction) |
1170 | - |
1171 | if dropAction == QtCore.Qt.CopyAction: |
1172 | self.close() |
1173 | |
1174 | @@ -54,8 +52,8 @@ |
1175 | This is the custom media manager item for Songs. |
1176 | """ |
1177 | global log |
1178 | - log = logging.getLogger("SongMediaItem") |
1179 | - log.info("Song Media Item loaded") |
1180 | + log = logging.getLogger(u'SongMediaItem') |
1181 | + log.info(u'Song Media Item loaded') |
1182 | |
1183 | def __init__(self, parent, icon, title): |
1184 | MediaManagerItem.__init__(self, parent, icon, title) |
1185 | @@ -66,30 +64,30 @@ |
1186 | self.addToolbar() |
1187 | # Create buttons for the toolbar |
1188 | ## New Song Button ## |
1189 | - self.addToolbarButton(translate('SongMediaItem', u'New Song'), |
1190 | - translate('SongMediaItem', u'Add a new song'), |
1191 | + self.addToolbarButton(translate(u'SongMediaItem', u'New Song'), |
1192 | + translate(u'SongMediaItem', u'Add a new song'), |
1193 | ':/songs/song_new.png', self.onSongNewClick, 'SongNewItem') |
1194 | ## Edit Song Button ## |
1195 | - self.addToolbarButton(translate('SongMediaItem', u'Edit Song'), |
1196 | - translate('SongMediaItem', u'Edit the selected song'), |
1197 | + self.addToolbarButton(translate(u'SongMediaItem', u'Edit Song'), |
1198 | + translate(u'SongMediaItem', u'Edit the selected song'), |
1199 | ':/songs/song_edit.png', self.onSongEditClick, 'SongEditItem') |
1200 | ## Delete Song Button ## |
1201 | - self.addToolbarButton(translate('SongMediaItem', u'Delete Song'), |
1202 | - translate('SongMediaItem', u'Delete the selected song'), |
1203 | + self.addToolbarButton(translate(u'SongMediaItem', u'Delete Song'), |
1204 | + translate(u'SongMediaItem', u'Delete the selected song'), |
1205 | ':/songs/song_delete.png', self.onSongDeleteClick, 'SongDeleteItem') |
1206 | ## Separator Line ## |
1207 | self.addToolbarSeparator() |
1208 | ## Preview Song Button ## |
1209 | - self.addToolbarButton(translate('SongMediaItem', u'Preview Song'), |
1210 | - translate('SongMediaItem', u'Preview the selected song'), |
1211 | + self.addToolbarButton(translate(u'SongMediaItem', u'Preview Song'), |
1212 | + translate(u'SongMediaItem', u'Preview the selected song'), |
1213 | ':/system/system_preview.png', self.onSongPreviewClick, 'SongPreviewItem') |
1214 | ## Live Song Button ## |
1215 | - self.addToolbarButton(translate('SongMediaItem', u'Go Live'), |
1216 | - translate('SongMediaItem', u'Send the selected song live'), |
1217 | + self.addToolbarButton(translate(u'SongMediaItem', u'Go Live'), |
1218 | + translate(u'SongMediaItem', u'Send the selected song live'), |
1219 | ':/system/system_live.png', self.onSongLiveClick, 'SongLiveItem') |
1220 | ## Add Song Button ## |
1221 | - self.addToolbarButton(translate('SongMediaItem', u'Add Song To Service'), |
1222 | - translate('SongMediaItem', u'Add the selected song(s) to the service'), |
1223 | + self.addToolbarButton(translate(u'SongMediaItem', u'Add Song To Service'), |
1224 | + translate(u'SongMediaItem', u'Add the selected song(s) to the service'), |
1225 | ':/system/system_add.png', self.onSongAddClick, 'SongAddItem') |
1226 | ## Add the songlist widget ## |
1227 | # Create the tab widget |
1228 | @@ -99,92 +97,77 @@ |
1229 | sizePolicy.setVerticalStretch(0) |
1230 | sizePolicy.setHeightForWidth(self.SongWidget.sizePolicy().hasHeightForWidth()) |
1231 | self.SongWidget.setSizePolicy(sizePolicy) |
1232 | - self.SongWidget.setObjectName('SongWidget') |
1233 | + self.SongWidget.setObjectName(u'SongWidget') |
1234 | self.SearchLayout = QtGui.QGridLayout(self.SongWidget) |
1235 | - self.SearchLayout.setObjectName('SearchLayout') |
1236 | + self.SearchLayout.setObjectName(u'SearchLayout') |
1237 | self.SearchTypeComboBox = QtGui.QComboBox(self.SongWidget) |
1238 | - self.SearchTypeComboBox.setObjectName('SearchTypeComboBox') |
1239 | + self.SearchTypeComboBox.setObjectName(u'SearchTypeComboBox') |
1240 | self.SearchLayout.addWidget(self.SearchTypeComboBox, 0, 1, 1, 2) |
1241 | self.SearchTypeLabel = QtGui.QLabel(self.SongWidget) |
1242 | - self.SearchTypeLabel.setObjectName('SearchTypeLabel') |
1243 | + self.SearchTypeLabel.setObjectName(u'SearchTypeLabel') |
1244 | self.SearchLayout.addWidget(self.SearchTypeLabel, 0, 0, 1, 1) |
1245 | self.SearchTextLabel = QtGui.QLabel(self.SongWidget) |
1246 | - self.SearchTextLabel.setObjectName('SearchTextLabel') |
1247 | + self.SearchTextLabel.setObjectName(u'SearchTextLabel') |
1248 | self.SearchLayout.addWidget(self.SearchTextLabel, 2, 0, 1, 1) |
1249 | self.SearchTextEdit = QtGui.QLineEdit(self.SongWidget) |
1250 | - self.SearchTextEdit.setObjectName('SearchTextEdit') |
1251 | + self.SearchTextEdit.setObjectName(u'SearchTextEdit') |
1252 | self.SearchLayout.addWidget(self.SearchTextEdit, 2, 1, 1, 2) |
1253 | self.ClearTextButton = QtGui.QPushButton(self.SongWidget) |
1254 | - self.ClearTextButton.setObjectName('ClearTextButton') |
1255 | + self.ClearTextButton.setObjectName(u'ClearTextButton') |
1256 | self.SearchLayout.addWidget(self.ClearTextButton, 3, 1, 1, 1) |
1257 | self.SearchTextButton = QtGui.QPushButton(self.SongWidget) |
1258 | - self.SearchTextButton.setObjectName('SearchTextButton') |
1259 | + self.SearchTextButton.setObjectName(u'SearchTextButton') |
1260 | self.SearchLayout.addWidget(self.SearchTextButton, 3, 2, 1, 1) |
1261 | # Add the song widget to the page layout |
1262 | self.PageLayout.addWidget(self.SongWidget) |
1263 | - |
1264 | self.SongListView = SongList() |
1265 | self.SongListView.setAlternatingRowColors(True) |
1266 | self.SongListData = TextListData() |
1267 | self.SongListView.setModel(self.SongListData) |
1268 | self.SongListView.setDragEnabled(True) |
1269 | - |
1270 | -# self.SongListView = QtGui.QTableWidget() |
1271 | -# self.SongListView.setColumnCount(2) |
1272 | -# self.SongListView.setColumnHidden(0, True) |
1273 | -# self.SongListView.setColumnWidth(1, 240) |
1274 | -# self.SongListView.setShowGrid(False) |
1275 | -# self.SongListView.setSortingEnabled(False) |
1276 | -# self.SongListView.setAlternatingRowColors(True) |
1277 | -# self.SongListView.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows) |
1278 | -# self.SongListView.horizontalHeader().setVisible(False) |
1279 | -# self.SongListView.verticalHeader().setVisible(False) |
1280 | -# self.SongListView.setGeometry(QtCore.QRect(10, 100, 256, 591)) |
1281 | - self.SongListView.setObjectName('SongListView') |
1282 | - |
1283 | + self.SongListView.setObjectName(u'SongListView') |
1284 | self.PageLayout.addWidget(self.SongListView) |
1285 | self.SongListView.setDragEnabled(True) |
1286 | - |
1287 | # Signals and slots |
1288 | QtCore.QObject.connect(self.SearchTextButton, |
1289 | - QtCore.SIGNAL('pressed()'), self.onSearchTextButtonClick) |
1290 | + QtCore.SIGNAL(u'pressed()'), self.onSearchTextButtonClick) |
1291 | QtCore.QObject.connect(self.ClearTextButton, |
1292 | - QtCore.SIGNAL('pressed()'), self.onClearTextButtonClick) |
1293 | + QtCore.SIGNAL(u'pressed()'), self.onClearTextButtonClick) |
1294 | QtCore.QObject.connect(self.SearchTextEdit, |
1295 | - QtCore.SIGNAL('textChanged(const QString&)'), self.onSearchTextEditChanged) |
1296 | -# QtCore.QObject.connect(self.SongListView, |
1297 | -# QtCore.SIGNAL('itemPressed(QTableWidgetItem * item)'), self.onSongSelected) |
1298 | + QtCore.SIGNAL(u'textChanged(const QString&)'), self.onSearchTextEditChanged) |
1299 | + QtCore.QObject.connect(self.SongListView, |
1300 | + QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onSongPreviewClick) |
1301 | #define and add the context menu |
1302 | self.SongListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) |
1303 | self.SongListView.addAction(self.contextMenuAction(self.SongListView, |
1304 | - ':/songs/song_new.png', translate('SongMediaItem', u'&Edit Song'), |
1305 | + ':/songs/song_new.png', translate(u'SongMediaItem', u'&Edit Song'), |
1306 | self.onSongEditClick)) |
1307 | self.SongListView.addAction(self.contextMenuSeparator(self.SongListView)) |
1308 | self.SongListView.addAction(self.contextMenuAction(self.SongListView, |
1309 | - ':/system/system_preview.png', translate('SongMediaItem', u'&Preview Song'), |
1310 | + ':/system/system_preview.png', translate(u'SongMediaItem', u'&Preview Song'), |
1311 | self.onSongPreviewClick)) |
1312 | self.SongListView.addAction(self.contextMenuAction(self.SongListView, |
1313 | - ':/system/system_live.png', translate('SongMediaItem', u'&Show Live'), |
1314 | + ':/system/system_live.png', translate(u'SongMediaItem', u'&Show Live'), |
1315 | self.onSongLiveClick)) |
1316 | self.SongListView.addAction(self.contextMenuAction(self.SongListView, |
1317 | - ':/system/system_add.png', translate('SongMediaItem', u'&Add to Service'), |
1318 | + ':/system/system_add.png', translate(u'SongMediaItem', u'&Add to Service'), |
1319 | self.onSongAddClick)) |
1320 | |
1321 | def retranslateUi(self): |
1322 | - self.SearchTypeLabel.setText(translate('SongMediaItem', u'Search Type:')) |
1323 | - self.SearchTextLabel.setText(translate('SongMediaItem', u'Search Text:')) |
1324 | - self.ClearTextButton.setText(translate('SongMediaItem', u'Clear')) |
1325 | - self.SearchTextButton.setText(translate('SongMediaItem', u'Search')) |
1326 | + self.SearchTypeLabel.setText(translate(u'SongMediaItem', u'Search Type:')) |
1327 | + self.SearchTextLabel.setText(translate(u'SongMediaItem', u'Search Text:')) |
1328 | + self.ClearTextButton.setText(translate(u'SongMediaItem', u'Clear')) |
1329 | + self.SearchTextButton.setText(translate(u'SongMediaItem', u'Search')) |
1330 | |
1331 | def initialise(self): |
1332 | - self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Titles')) |
1333 | - self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Lyrics')) |
1334 | - self.SearchTypeComboBox.addItem(translate('SongMediaItem', u'Authors')) |
1335 | + self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Titles')) |
1336 | + self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Lyrics')) |
1337 | + self.SearchTypeComboBox.addItem(translate(u'SongMediaItem', u'Authors')) |
1338 | |
1339 | def displayResults(self, searchresults): |
1340 | - log.debug("display results") |
1341 | + log.debug(u'display results') |
1342 | self.SongListData.resetStore() |
1343 | - #log.debug("Records returned from search %s", len(searchresults)) |
1344 | + #log.debug(u'Records returned from search %s", len(searchresults)) |
1345 | for song in searchresults: |
1346 | author_list = u'' |
1347 | for author in song.authors: |
1348 | @@ -192,7 +175,6 @@ |
1349 | author_list = author_list + u', ' |
1350 | author_list = author_list + author.display_name |
1351 | song_detail = str(u'%s (%s)' % (str(song.title), str(author_list))) |
1352 | - |
1353 | self.SongListData.addRow(song.id,song_detail) |
1354 | |
1355 | def onClearTextButtonClick(self): |
1356 | @@ -205,7 +187,7 @@ |
1357 | search_length = 3 |
1358 | if self.SearchTypeComboBox.currentIndex() == 1: |
1359 | search_length = 7 |
1360 | - if len(text) > search_length: # only search if > 3 characters |
1361 | + if len(text) > search_length: |
1362 | self.onSearchTextButtonClick() |
1363 | |
1364 | def onSearchTextButtonClick(self): |
1365 | @@ -213,13 +195,13 @@ |
1366 | search_results = [] |
1367 | search_type = self.SearchTypeComboBox.currentIndex() |
1368 | if search_type == 0: |
1369 | - log.debug("Titles Search") |
1370 | + log.debug(u'Titles Search') |
1371 | search_results = self.parent.songmanager.search_song_title(search_keywords) |
1372 | elif search_type == 1: |
1373 | - log.debug("Lyrics Search") |
1374 | + log.debug(u'Lyrics Search') |
1375 | search_results = self.parent.songmanager.search_song_lyrics(search_keywords) |
1376 | elif search_type == 2: |
1377 | - log.debug("Authors Search") |
1378 | + log.debug(u'Authors Search') |
1379 | #searchresults = self.songmanager.get_song_from_author(searchtext) |
1380 | self.displayResults(search_results) |
1381 | |
1382 | @@ -242,7 +224,7 @@ |
1383 | |
1384 | def onSongPreviewClick(self): |
1385 | service_item = ServiceItem(self.parent) |
1386 | - service_item.addIcon( ":/media/media_song.png") |
1387 | + service_item.addIcon(u':/media/media_song.png') |
1388 | self.generateSlideData(service_item) |
1389 | self.parent.preview_controller.addServiceItem(service_item) |
1390 | |
1391 | @@ -267,12 +249,12 @@ |
1392 | |
1393 | def onSongLiveClick(self): |
1394 | service_item = ServiceItem(self.parent) |
1395 | - service_item.addIcon( ":/media/media_song.png") |
1396 | + service_item.addIcon(u':/media/media_song.png') |
1397 | self.generateSlideData(service_item) |
1398 | self.parent.live_controller.addServiceItem(service_item) |
1399 | |
1400 | def onSongAddClick(self): |
1401 | service_item = ServiceItem(self.parent) |
1402 | - service_item.addIcon( ":/media/media_song.png") |
1403 | + service_item.addIcon( u':/media/media_song.png') |
1404 | self.generateSlideData(service_item) |
1405 | self.parent.service_manager.addServiceItem(service_item) |
Add OOS saving and loading
Fixes in the plugins due to strange window events before system fully loaded.
More code cleanups.