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