Merge lp:~googol-deactivatedaccount/openlp/bug-856296 into lp:openlp

Proposed by Andreas Preikschat
Status: Superseded
Proposed branch: lp:~googol-deactivatedaccount/openlp/bug-856296
Merge into: lp:openlp
Diff against target: 588 lines (+56/-231)
12 files modified
copyright.txt (+1/-1)
openlp/core/lib/eventreceiver.py (+0/-11)
openlp/core/lib/renderer.py (+2/-1)
openlp/core/resources.py (+34/-130)
openlp/core/ui/maindisplay.py (+2/-6)
openlp/core/ui/slidecontroller.py (+8/-71)
openlp/core/ui/themeform.py (+1/-1)
resources/images/openlp-2.qrc (+0/-2)
scripts/check_dependencies.py (+1/-1)
scripts/generate_resources.sh (+5/-5)
testing/conftest.py (+1/-1)
testing/test_app.py (+1/-1)
To merge this branch: bzr merge lp:~googol-deactivatedaccount/openlp/bug-856296
Reviewer Review Type Date Requested Status
OpenLP Core Pending
Review via email: mp+77989@code.launchpad.net

This proposal has been superseded by a proposal from 2011-10-05.

Description of the change

Hello,

1) I improved the preview frame display performance (the frame showing the preview/live display). Instead of using a QImage I use a QPixmap. We don't have to convert the QImage to a QPixmap, but we also have the advantage which comes with using the QPixmaps.

"QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen." http://doc.trolltech.com/4.6/qpixmap.html#details

Sample times:

Update Themes Image (default theme + four sample themes):
Branch vs Trunk
0:00:00.952184 vs 0:00:01.352197
0:00:00.949896 vs 0:00:01.031343
0:00:00.369395 vs 0:00:00.273413
0:00:00.893812 vs 0:00:00.931930
0:00:00.936217 vs 0:00:01.297820

2) Removed dead code.
- See http://bazaar.launchpad.net/~openlp-core/openlp/trunk/revision/997#openlp/core/ui/slidecontroller.py
- Code added here: http://bazaar.launchpad.net/~openlp-core/openlp/trunk/revision/799.2.5

To post a comment you must log in.
1769. By Andreas Preikschat

removed dead code + minor clean up

1770. By Andreas Preikschat

removed not needed files + updated copyright

1771. By Andreas Preikschat

uncommented needed line

1772. By Andreas Preikschat

fixed resources.py

1773. By Andreas Preikschat

attempt to prevent calling updatePreview more than once

1774. By Andreas Preikschat

clean up

1775. By Andreas Preikschat

r1771

Unmerged revisions

1775. By Andreas Preikschat

r1771

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'copyright.txt'
2--- copyright.txt 2011-06-12 16:14:04 +0000
3+++ copyright.txt 2011-10-05 17:12:24 +0000
4@@ -7,7 +7,7 @@
5 # Copyright (c) 2008-2011 Raoul Snyman #
6 # Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan #
7 # Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
8-# Armin Köhler, Joshua Millar, Stevan Pettit, Andreas Preikschat, Mattias #
9+# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
10 # Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
11 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
12 # --------------------------------------------------------------------------- #
13
14=== modified file 'openlp/core/lib/eventreceiver.py'
15--- openlp/core/lib/eventreceiver.py 2011-08-12 13:38:05 +0000
16+++ openlp/core/lib/eventreceiver.py 2011-10-05 17:12:24 +0000
17@@ -51,9 +51,6 @@
18 ``config_screen_changed``
19 The display monitor has been changed
20
21- ``slidecontroller_{live|preview}_first``
22- Moves to the first slide
23-
24 ``slidecontroller_{live|preview}_next``
25 Moves to the next slide
26
27@@ -66,9 +63,6 @@
28 ``slidecontroller_{live|preview}_previous_noloop``
29 Moves to the previous slide, without auto advance
30
31- ``slidecontroller_{live|preview}_last``
32- Moves to the last slide
33-
34 ``slidecontroller_{live|preview}_set``
35 Moves to a specific slide, by index
36
37@@ -82,11 +76,6 @@
38 ``slidecontroller_{live|preview}_changed``
39 Broadcasts that the slidecontroller has changed the current slide
40
41- ``slidecontroller_{live|preview}_text_request``
42- Request the text for the current item in the controller
43- Returns a slidecontroller_{live|preview}_text_response with an
44- array of dictionaries with the tag and verse text
45-
46 ``slidecontroller_{live|preview}_blank``
47 Request that the output screen is blanked
48
49
50=== modified file 'openlp/core/lib/renderer.py'
51--- openlp/core/lib/renderer.py 2011-09-26 18:48:47 +0000
52+++ openlp/core/lib/renderer.py 2011-10-05 17:12:24 +0000
53@@ -201,7 +201,8 @@
54 if not self.force_page:
55 self.display.buildHtml(serviceItem)
56 raw_html = serviceItem.get_rendered_frame(0)
57- preview = self.display.text(raw_html)
58+ self.display.text(raw_html)
59+ preview = self.display.preview()
60 # Reset the real screen size for subsequent render requests
61 self._calculate_default()
62 return preview
63
64=== modified file 'openlp/core/resources.py'
65--- openlp/core/resources.py 2011-07-08 07:46:25 +0000
66+++ openlp/core/resources.py 2011-10-05 17:12:24 +0000
67@@ -80624,50 +80624,6 @@
68 \xed\x04\xf9\x30\x17\xe5\xa2\x7c\xe8\x04\x85\x01\xee\x1f\x8d\x42\
69 \x66\xb3\xf5\x8b\xfe\x99\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\
70 \x60\x82\
71-\x00\x00\x02\x9a\
72-\x89\
73-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
74-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
75-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
76-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
77-\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
78-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
79-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x17\x49\x44\
80-\x41\x54\x78\xda\xa5\x53\xcf\x6b\x13\x41\x18\x7d\xb3\x3b\x3b\xdb\
81-\x4d\x37\x92\x1f\xd5\xaa\xa1\x50\x88\xe0\x21\x15\xd4\xa3\xb6\x2a\
82-\xb4\x6b\xf1\x64\x3c\x78\xd0\x8b\xde\xfc\x07\xbc\x4a\xa1\x17\x3d\
83-\x15\xb4\x3d\x8a\xe0\xc5\x93\x7a\xf5\xe0\xa1\x27\x2d\x28\xad\x0a\
84-\x95\xe2\x41\x0f\x92\x60\x6a\x6b\xb2\x89\xc9\xe6\xc7\xee\xe6\xf3\
85-\x73\x09\x2d\xa1\xa6\x1e\xfa\x86\xc7\x37\x0f\xe6\x7b\xf3\x06\xbe\
86-\x11\x44\x84\x83\x40\x03\x43\xfc\xc5\x55\x71\x5f\x38\x22\xd5\xa7\
87-\xa7\x59\xff\x07\x51\x02\x71\x4d\x58\x93\xd9\x49\xcf\x6d\xb8\x95\
88-\xf5\xc2\xfa\x65\x48\x7c\x76\xce\x38\x5e\xd9\x2d\x97\x57\x37\x56\
89-\x1d\x7a\x45\x6b\x83\x13\xf4\x10\x6a\x21\x66\x2e\xcc\x24\xa6\x4e\
90-\x4f\xbd\x01\xe1\x96\x2f\x7c\xe4\xf3\xf9\xa4\x73\xde\x59\xe1\x34\
91-\xb7\x31\x00\x12\x3d\xd4\x79\x95\xdc\x92\x18\xcf\x8e\x2b\x7b\xc4\
92-\x5e\xe2\x34\x28\x55\x4b\x22\x77\x36\xa7\xe2\xc9\xf8\x63\xeb\xba\
93-\x75\xae\x35\xd1\xba\x43\x73\x44\xff\x7c\x42\xf6\x64\xd6\x1b\x4b\
94-\x8e\x41\xda\x12\xc6\x90\x01\xc3\x34\x20\x25\xef\x35\xae\xbc\x1a\
95-\x6e\x23\x5c\x7e\xbb\xfc\xa1\x5a\xac\xce\xd2\x6b\x2a\xef\x31\xc8\
96-\xe4\x32\x9e\x2d\x6d\xc8\x43\xdc\x14\xe3\x26\x53\x42\x49\x05\x29\
97-\x58\x87\xac\x03\x09\xf2\x28\xfc\xb8\xf1\xa9\xf2\x73\x73\x73\x96\
98-\x5e\xd0\x5a\xdf\x13\x5a\x5a\x0b\x5e\xc7\x8b\x0e\xea\xa4\x47\x94\
99-\xc4\x26\xa4\xa0\x02\x05\xa3\xcd\x26\x6d\xa9\x9f\x38\x9e\x4d\x5b\
100-\xc6\xd0\x8a\xb8\x29\x6e\xd0\x33\x7a\xb9\x63\xe0\xe9\x4d\x34\xbb\
101-\x1e\xa0\xf7\x6c\x15\x10\xa1\xc3\xac\x03\xc2\x15\x40\x05\xd0\x7e\
102-\x69\x88\x59\xc3\x04\x43\xd7\xfb\x12\xe8\x26\x6b\x03\x40\x9c\x99\
103-\x64\xda\x4c\xc1\xf4\x10\x81\x3a\x04\xcb\xb7\x02\xc3\x34\x6b\xb5\
104-\xad\xc6\x15\x7a\x1a\xbc\xeb\x37\x90\xbc\xed\x02\x30\x99\xc3\x5c\
105-\xd2\x26\xda\x5a\x3b\xba\x15\x4d\x20\x11\x4b\x06\x61\xa3\xfb\xa5\
106-\xe6\xb9\x97\xe8\x09\x6d\xef\x99\x03\xa9\xf5\x0c\x98\xa8\x68\x61\
107-\x62\x3b\x15\xd9\x0b\x12\x38\x16\x66\xc2\x76\xd9\x7f\xfe\x5b\x54\
108-\x4f\xd1\xc2\x6e\x73\x7f\x82\xae\x0e\xe5\x2b\xea\xd4\x83\x00\x3f\
109-\x70\x8f\x0c\x7a\x60\x96\x4c\x1a\xdd\x3a\x1a\x16\xbe\x15\xef\x86\
110-\x73\xfe\xc3\x7d\x27\x31\x65\xa5\x91\x1a\x39\xc2\xf3\xa4\x4d\xe3\
111-\x7d\xf7\x51\xaa\x93\x46\xba\x30\x5a\xff\xfe\xb5\x78\x31\x6a\x1e\
112-\x84\xde\x6f\x14\xfa\x92\x5a\xc4\x3c\x0e\xef\xe8\x85\x5d\xbd\x1f\
113-\x0f\xfc\x9d\xff\x00\x31\x95\xf8\x05\x21\xa4\x9a\x59\x00\x00\x00\
114-\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
115 \x00\x00\x01\xf5\
116 \x89\
117 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
118@@ -80702,49 +80658,6 @@
119 \x23\xab\xe7\xf3\xa3\xf9\x51\x3d\x6f\x64\xcd\x9a\x10\x42\xfc\x07\
120 \x7b\x2d\x6e\x9f\x2f\x2d\x37\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\
121 \xae\x42\x60\x82\
122-\x00\x00\x02\x8d\
123-\x89\
124-\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
125-\x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\
126-\x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\
127-\x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\
128-\x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\
129-\x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\
130-\x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x02\x0a\x49\x44\
131-\x41\x54\x78\xda\xa5\x53\xcf\x6b\x13\x41\x14\xfe\x66\x67\x93\xdd\
132-\xa4\x84\xee\x6e\x76\x5b\x25\x98\xa0\x1e\xa4\x58\x51\xd3\x9b\x50\
133-\x6b\x7f\xe4\x90\x53\x4b\x3c\xe9\x45\xf1\x5f\xf0\x28\x52\xf4\xe2\
134-\xad\xa0\xf6\xe2\x45\xf0\xe4\x41\xc1\x73\xcd\xb5\x22\xe8\x41\x10\
135-\x2f\x82\x07\xd1\x96\x34\x5a\x53\xdb\x4d\x93\x6c\x66\x36\xcf\xe9\
136-\x06\xdb\x86\x68\x7b\xe8\x7b\x3c\x78\xdf\xcc\xfb\xbe\xf7\x06\xde\
137-\x30\x22\xc2\x51\x4c\xc3\x21\xc6\xa6\x99\xc3\x66\xd9\x03\xa6\x2c\
138-\xc2\x85\x5e\x7c\xe0\x04\xac\xc8\xf2\x63\x23\x63\x65\xc7\x72\x9c\
139-\xf2\x87\x72\x12\x12\x67\x47\xb3\xa3\xaf\xad\xa4\x65\x2f\x7f\x59\
140-\x4e\xd2\x2b\x6a\xfe\x77\x02\xd5\xe5\x66\xe1\x52\xe1\xed\xdc\xec\
141-\x9c\x2d\x98\x00\x08\x37\xc6\xf3\xe3\x6f\x66\xae\xcc\x58\x61\x2c\
142-\xdc\xad\xd3\xfb\x88\xf7\x18\x33\x3f\x99\x4f\x4a\x53\xa5\x5b\xd9\
143-\xd3\x59\xbe\xb6\xb9\x86\x80\x07\x28\x4e\x15\x17\x5d\xc7\x8d\x70\
144-\x5d\x79\x9f\xc0\xdf\xf7\x0d\x1e\x1b\x5c\x9a\x9c\x98\xbc\x98\xb0\
145-\x13\xbc\xb2\x55\x81\x50\xee\xe5\x3c\x08\x21\x78\xa5\x51\x81\x6c\
146-\x4a\x34\xf4\x46\xbf\x00\xbb\xca\xf2\x43\x27\x87\x97\x2e\x9c\x3a\
147-\x6f\x37\x59\x93\xfb\xdb\x3e\x84\x2e\x20\x35\x89\xb6\x72\x29\xa5\
148-\x12\x51\x38\x90\x68\xe9\xad\x5e\x01\x76\x9d\x95\x72\x5e\xee\x79\
149-\xc6\xca\xc4\x6a\xad\x1a\x93\x4c\x15\x27\x05\xda\xa4\xa8\x31\x45\
150-\x56\x38\xdc\x71\x0a\x21\x43\x09\x4d\xd7\x7a\x05\x10\xe3\xbc\xb6\
151-\xbd\x41\x2b\x5f\x57\xd0\x71\x3b\x40\x1a\x20\x9b\x00\x7b\xe7\x6e\
152-\x5f\x90\x8a\x00\x48\x84\xc9\xde\x3d\xa0\x67\xf2\x85\x1f\x6b\x5e\
153-\x1e\x18\x49\x6d\x98\x29\x53\x92\x41\xc0\x00\x80\x14\xba\x22\x9e\
154-\x0a\x37\xca\xa3\x33\x9e\xe0\xfd\x8b\x44\x4f\xdb\xef\xb6\xd8\xef\
155-\x33\xba\x17\xff\x6c\xa5\x6c\x19\x75\x34\xbb\x04\xc3\x33\x00\x07\
156-\x5d\x51\x95\x72\x5d\xff\xf7\x26\xd2\x02\xad\xfb\x7c\xf3\x5c\x00\
157-\xf1\xf2\xb8\x99\x09\x19\xb1\x68\x6c\xeb\xa7\x62\xff\xd0\x42\x10\
158-\x80\x0e\xa0\x6b\xfd\x02\x7b\x22\xf3\x44\x8d\xbb\xfe\xb5\x6a\xb5\
159-\x7a\xfb\x44\x90\x95\x86\x6f\x10\xf9\x04\x7c\xc4\x1d\xac\x6a\x22\
160-\x1e\xc4\x89\x87\xfc\xf0\xbf\x10\xce\x8b\x87\xdf\xbe\xaf\x4e\xa4\
161-\x7f\x0d\xd7\xd3\x6d\x17\x78\xdf\x79\x84\x75\x6d\xda\xd1\x87\xea\
162-\x69\xc3\xdd\xd7\x91\xe8\xc0\xc0\x7d\x78\x7c\x21\xfe\x18\x00\xdb\
163-\xc5\x8b\x7b\xf8\xc8\xdf\xf9\x0f\x44\x6e\xe9\xd5\x53\xa5\xc0\x5a\
164-\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\
165 \x00\x00\x02\x0f\
166 \x89\
167 \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\
168@@ -82368,19 +82281,11 @@
169 \x00\x6d\
170 \x00\x65\x00\x64\x00\x69\x00\x61\x00\x5f\x00\x70\x00\x6c\x00\x61\x00\x79\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x5f\x00\x73\x00\x74\
171 \x00\x6f\x00\x70\x00\x2e\x00\x70\x00\x6e\x00\x67\
172-\x00\x0e\
173-\x0d\x52\x2d\x87\
174-\x00\x73\
175-\x00\x6c\x00\x69\x00\x64\x00\x65\x00\x5f\x00\x6c\x00\x61\x00\x73\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
176 \x00\x18\
177 \x07\xc2\xc7\xc7\
178 \x00\x6d\
179 \x00\x65\x00\x64\x00\x69\x00\x61\x00\x5f\x00\x70\x00\x6c\x00\x61\x00\x79\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x5f\x00\x73\x00\x74\
180 \x00\x61\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
181-\x00\x0f\
182-\x06\xf0\x05\xe7\
183-\x00\x73\
184-\x00\x6c\x00\x69\x00\x64\x00\x65\x00\x5f\x00\x66\x00\x69\x00\x72\x00\x73\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\
185 \x00\x0e\
186 \x09\x02\x2d\x47\
187 \x00\x73\
188@@ -82490,15 +82395,15 @@
189
190 qt_resource_struct = "\
191 \x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\
192-\x00\x00\x00\xb0\x00\x02\x00\x00\x00\x06\x00\x00\x00\x82\
193-\x00\x00\x00\x52\x00\x02\x00\x00\x00\x04\x00\x00\x00\x7e\
194-\x00\x00\x01\x1e\x00\x02\x00\x00\x00\x03\x00\x00\x00\x7b\
195-\x00\x00\x00\x76\x00\x02\x00\x00\x00\x14\x00\x00\x00\x67\
196-\x00\x00\x00\x66\x00\x02\x00\x00\x00\x02\x00\x00\x00\x65\
197-\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x02\x00\x00\x00\x63\
198-\x00\x00\x00\xfa\x00\x02\x00\x00\x00\x05\x00\x00\x00\x5e\
199-\x00\x00\x00\x9c\x00\x02\x00\x00\x00\x09\x00\x00\x00\x55\
200-\x00\x00\x00\x14\x00\x02\x00\x00\x00\x0b\x00\x00\x00\x4a\
201+\x00\x00\x00\xb0\x00\x02\x00\x00\x00\x06\x00\x00\x00\x80\
202+\x00\x00\x00\x52\x00\x02\x00\x00\x00\x04\x00\x00\x00\x7c\
203+\x00\x00\x01\x1e\x00\x02\x00\x00\x00\x03\x00\x00\x00\x79\
204+\x00\x00\x00\x76\x00\x02\x00\x00\x00\x14\x00\x00\x00\x65\
205+\x00\x00\x00\x66\x00\x02\x00\x00\x00\x02\x00\x00\x00\x63\
206+\x00\x00\x00\x3a\x00\x02\x00\x00\x00\x02\x00\x00\x00\x61\
207+\x00\x00\x00\xfa\x00\x02\x00\x00\x00\x05\x00\x00\x00\x5c\
208+\x00\x00\x00\x9c\x00\x02\x00\x00\x00\x09\x00\x00\x00\x53\
209+\x00\x00\x00\x14\x00\x02\x00\x00\x00\x09\x00\x00\x00\x4a\
210 \x00\x00\x00\xbe\x00\x02\x00\x00\x00\x03\x00\x00\x00\x47\
211 \x00\x00\x01\x0c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x37\
212 \x00\x00\x00\x86\x00\x02\x00\x00\x00\x03\x00\x00\x00\x34\
213@@ -82512,23 +82417,23 @@
214 \x00\x00\x08\x0a\x00\x00\x00\x00\x00\x01\x00\x08\x96\xff\
215 \x00\x00\x08\x38\x00\x00\x00\x00\x00\x01\x00\x0b\x37\xe1\
216 \x00\x00\x07\xda\x00\x00\x00\x00\x00\x01\x00\x05\xf6\x1d\
217-\x00\x00\x13\x4a\x00\x00\x00\x00\x00\x01\x00\x13\xc3\x8e\
218-\x00\x00\x13\xba\x00\x00\x00\x00\x00\x01\x00\x13\xca\xd9\
219-\x00\x00\x12\xfa\x00\x00\x00\x00\x00\x01\x00\x13\xbe\x32\
220-\x00\x00\x14\x98\x00\x00\x00\x00\x00\x01\x00\x13\xdd\x57\
221-\x00\x00\x14\x1a\x00\x00\x00\x00\x00\x01\x00\x13\xd2\xef\
222-\x00\x00\x12\xa2\x00\x00\x00\x00\x00\x01\x00\x13\xb6\xfb\
223-\x00\x00\x14\xea\x00\x00\x00\x00\x00\x01\x00\x13\xe3\x5e\
224-\x00\x00\x13\xe2\x00\x00\x00\x00\x00\x01\x00\x13\xce\x4d\
225-\x00\x00\x15\x38\x00\x00\x00\x00\x00\x01\x00\x13\xe8\x8a\
226-\x00\x00\x12\xcc\x00\x00\x00\x00\x00\x01\x00\x13\xb9\x99\
227-\x00\x00\x14\xc4\x00\x00\x00\x00\x00\x01\x00\x13\xe0\x8a\
228-\x00\x00\x14\x6e\x00\x00\x00\x00\x00\x01\x00\x13\xda\xdf\
229-\x00\x00\x13\x20\x00\x00\x00\x00\x00\x01\x00\x13\xc1\x0c\
230-\x00\x00\x15\x14\x00\x00\x00\x00\x00\x01\x00\x13\xe6\x43\
231-\x00\x00\x14\x42\x00\x00\x00\x00\x00\x01\x00\x13\xd6\x34\
232-\x00\x00\x13\x96\x00\x00\x00\x00\x00\x01\x00\x13\xc7\xdc\
233-\x00\x00\x13\x70\x00\x00\x00\x00\x00\x01\x00\x13\xc5\xc5\
234+\x00\x00\x13\x04\x00\x00\x00\x00\x00\x01\x00\x13\xbe\x5f\
235+\x00\x00\x13\x74\x00\x00\x00\x00\x00\x01\x00\x13\xc5\xaa\
236+\x00\x00\x12\xb4\x00\x00\x00\x00\x00\x01\x00\x13\xb9\x03\
237+\x00\x00\x14\x52\x00\x00\x00\x00\x00\x01\x00\x13\xd8\x28\
238+\x00\x00\x13\xd4\x00\x00\x00\x00\x00\x01\x00\x13\xcd\xc0\
239+\x00\x00\x12\x5c\x00\x00\x00\x00\x00\x01\x00\x13\xb1\xcc\
240+\x00\x00\x14\xa4\x00\x00\x00\x00\x00\x01\x00\x13\xde\x2f\
241+\x00\x00\x13\x9c\x00\x00\x00\x00\x00\x01\x00\x13\xc9\x1e\
242+\x00\x00\x14\xf2\x00\x00\x00\x00\x00\x01\x00\x13\xe3\x5b\
243+\x00\x00\x12\x86\x00\x00\x00\x00\x00\x01\x00\x13\xb4\x6a\
244+\x00\x00\x14\x7e\x00\x00\x00\x00\x00\x01\x00\x13\xdb\x5b\
245+\x00\x00\x14\x28\x00\x00\x00\x00\x00\x01\x00\x13\xd5\xb0\
246+\x00\x00\x12\xda\x00\x00\x00\x00\x00\x01\x00\x13\xbb\xdd\
247+\x00\x00\x14\xce\x00\x00\x00\x00\x00\x01\x00\x13\xe1\x14\
248+\x00\x00\x13\xfc\x00\x00\x00\x00\x00\x01\x00\x13\xd1\x05\
249+\x00\x00\x13\x50\x00\x00\x00\x00\x00\x01\x00\x13\xc2\xad\
250+\x00\x00\x13\x2a\x00\x00\x00\x00\x00\x01\x00\x13\xc0\x96\
251 \x00\x00\x10\xb8\x00\x00\x00\x00\x00\x01\x00\x13\x99\xd5\
252 \x00\x00\x06\xcc\x00\x00\x00\x00\x00\x01\x00\x03\x48\x3a\
253 \x00\x00\x07\x4c\x00\x00\x00\x00\x00\x01\x00\x03\x4f\x00\
254@@ -82563,17 +82468,15 @@
255 \x00\x00\x08\xc0\x00\x00\x00\x00\x00\x01\x00\x10\x7c\x43\
256 \x00\x00\x08\xe0\x00\x00\x00\x00\x00\x01\x00\x10\x80\x20\
257 \x00\x00\x08\x9a\x00\x00\x00\x00\x00\x01\x00\x10\x79\xa5\
258-\x00\x00\x12\x1e\x00\x00\x00\x00\x00\x01\x00\x13\xb0\x3e\
259-\x00\x00\x12\x78\x00\x00\x00\x00\x00\x01\x00\x13\xb4\xf7\
260+\x00\x00\x11\xd8\x00\x00\x00\x00\x00\x01\x00\x13\xab\x0f\
261+\x00\x00\x12\x32\x00\x00\x00\x00\x00\x01\x00\x13\xaf\xc8\
262 \x00\x00\x11\x04\x00\x00\x00\x00\x00\x01\x00\x13\x9e\xa8\
263-\x00\x00\x11\x90\x00\x00\x00\x00\x00\x01\x00\x13\xa5\x36\
264-\x00\x00\x11\xfa\x00\x00\x00\x00\x00\x01\x00\x13\xad\x0b\
265-\x00\x00\x11\x5a\x00\x00\x00\x00\x00\x01\x00\x13\xa3\x3d\
266-\x00\x00\x11\xb4\x00\x00\x00\x00\x00\x01\x00\x13\xa7\xc7\
267-\x00\x00\x11\xd6\x00\x00\x00\x00\x00\x01\x00\x13\xa9\xda\
268-\x00\x00\x12\x54\x00\x00\x00\x00\x00\x01\x00\x13\xb2\x26\
269+\x00\x00\x11\xb4\x00\x00\x00\x00\x00\x01\x00\x13\xa7\xdc\
270+\x00\x00\x11\x38\x00\x00\x00\x00\x00\x01\x00\x13\xa0\x9f\
271+\x00\x00\x11\x6e\x00\x00\x00\x00\x00\x01\x00\x13\xa2\x98\
272+\x00\x00\x11\x90\x00\x00\x00\x00\x00\x01\x00\x13\xa4\xab\
273+\x00\x00\x12\x0e\x00\x00\x00\x00\x00\x01\x00\x13\xac\xf7\
274 \x00\x00\x10\xdc\x00\x00\x00\x00\x00\x01\x00\x13\x9b\xec\
275-\x00\x00\x11\x38\x00\x00\x00\x00\x00\x01\x00\x13\xa0\x9f\
276 \x00\x00\x0b\x2a\x00\x00\x00\x00\x00\x01\x00\x11\xe1\x6a\
277 \x00\x00\x0a\xae\x00\x00\x00\x00\x00\x01\x00\x11\xd8\x0f\
278 \x00\x00\x0a\x52\x00\x00\x00\x00\x00\x01\x00\x11\xd2\x4d\
279@@ -82640,3 +82543,4 @@
280 """
281 QtCore.qUnregisterResourceData(0x01, qt_resource_struct, qt_resource_name,
282 qt_resource_data)
283+
284
285=== modified file 'openlp/core/ui/maindisplay.py'
286--- openlp/core/ui/maindisplay.py 2011-09-24 12:19:28 +0000
287+++ openlp/core/ui/maindisplay.py 2011-10-05 17:12:24 +0000
288@@ -194,7 +194,6 @@
289 self.setGeometry(self.screen[u'size'])
290 self.frame.evaluateJavaScript(u'show_text("%s")' %
291 slide.replace(u'\\', u'\\\\').replace(u'\"', u'\\\"'))
292- return self.preview()
293
294 def alert(self, text):
295 """
296@@ -256,7 +255,6 @@
297 image = self.imageManager.get_image_bytes(name)
298 self.resetVideo()
299 self.displayImage(image)
300- return self.preview()
301
302 def displayImage(self, image):
303 """
304@@ -387,7 +385,6 @@
305 # Update the preview frame.
306 if self.isLive:
307 Receiver.send_message(u'maindisplay_active')
308- return self.preview()
309
310 def videoState(self, newState, oldState):
311 """
312@@ -455,9 +452,8 @@
313 self.setVisible(True)
314 else:
315 self.setVisible(True)
316- preview = QtGui.QImage(self.screen[u'size'].width(),
317- self.screen[u'size'].height(),
318- QtGui.QImage.Format_ARGB32_Premultiplied)
319+ preview = QtGui.QPixmap(self.screen[u'size'].width(),
320+ self.screen[u'size'].height())
321 painter = QtGui.QPainter(preview)
322 painter.setRenderHint(QtGui.QPainter.Antialiasing)
323 self.frame.render(painter)
324
325=== modified file 'openlp/core/ui/slidecontroller.py'
326--- openlp/core/ui/slidecontroller.py 2011-10-01 07:28:45 +0000
327+++ openlp/core/ui/slidecontroller.py 2011-10-05 17:12:24 +0000
328@@ -118,7 +118,7 @@
329 self.previewListWidget.horizontalHeader().setVisible(False)
330 self.previewListWidget.setColumnWidth(0, self.controller.width())
331 self.previewListWidget.isLive = self.isLive
332- self.previewListWidget.setObjectName(u'PreviewListWidget')
333+ self.previewListWidget.setObjectName(u'previewListWidget')
334 self.previewListWidget.setSelectionBehavior(
335 QtGui.QAbstractItemView.SelectRows)
336 self.previewListWidget.setSelectionMode(
337@@ -288,14 +288,14 @@
338 QtGui.QSizePolicy.Label))
339 self.previewFrame.setFrameShape(QtGui.QFrame.StyledPanel)
340 self.previewFrame.setFrameShadow(QtGui.QFrame.Sunken)
341- self.previewFrame.setObjectName(u'PreviewFrame')
342+ self.previewFrame.setObjectName(u'previewFrame')
343 self.grid = QtGui.QGridLayout(self.previewFrame)
344 self.grid.setMargin(8)
345 self.grid.setObjectName(u'grid')
346 self.slideLayout = QtGui.QVBoxLayout()
347 self.slideLayout.setSpacing(0)
348 self.slideLayout.setMargin(0)
349- self.slideLayout.setObjectName(u'SlideLayout')
350+ self.slideLayout.setObjectName(u'slideLayout')
351 if not self.isLive:
352 self.mediaObject = Phonon.MediaObject(self)
353 self.video = Phonon.VideoWidget()
354@@ -319,7 +319,7 @@
355 self.slidePreview.setFrameShadow(QtGui.QFrame.Plain)
356 self.slidePreview.setLineWidth(1)
357 self.slidePreview.setScaledContents(True)
358- self.slidePreview.setObjectName(u'SlidePreview')
359+ self.slidePreview.setObjectName(u'slidePreview')
360 self.slideLayout.insertWidget(0, self.slidePreview)
361 self.grid.addLayout(self.slideLayout, 0, 0, 1, 1)
362 # Signals
363@@ -329,8 +329,6 @@
364 QtCore.QObject.connect(self.volumeSlider,
365 QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume)
366 QtCore.QObject.connect(Receiver.get_receiver(),
367- QtCore.SIGNAL(u'maindisplay_active'), self.updatePreview)
368- QtCore.QObject.connect(Receiver.get_receiver(),
369 QtCore.SIGNAL(u'slidecontroller_live_spin_delay'),
370 self.receiveSpinDelay)
371 self.toolbar.makeWidgetsInvisible(self.loopList)
372@@ -352,18 +350,12 @@
373 QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.typePrefix),
374 self.onStopLoop)
375 QtCore.QObject.connect(Receiver.get_receiver(),
376- QtCore.SIGNAL(u'slidecontroller_%s_first' % self.typePrefix),
377- self.onSlideSelectedFirst)
378- QtCore.QObject.connect(Receiver.get_receiver(),
379 QtCore.SIGNAL(u'slidecontroller_%s_next' % self.typePrefix),
380 self.onSlideSelectedNext)
381 QtCore.QObject.connect(Receiver.get_receiver(),
382 QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.typePrefix),
383 self.onSlideSelectedPrevious)
384 QtCore.QObject.connect(Receiver.get_receiver(),
385- QtCore.SIGNAL(u'slidecontroller_%s_last' % self.typePrefix),
386- self.onSlideSelectedLast)
387- QtCore.QObject.connect(Receiver.get_receiver(),
388 QtCore.SIGNAL(u'slidecontroller_%s_change' % self.typePrefix),
389 self.onSlideChange)
390 QtCore.QObject.connect(Receiver.get_receiver(),
391@@ -375,9 +367,6 @@
392 QtCore.QObject.connect(Receiver.get_receiver(),
393 QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.typePrefix),
394 self.onSlideUnblank)
395- QtCore.QObject.connect(Receiver.get_receiver(),
396- QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.typePrefix),
397- self.onTextRequest)
398
399 def setPreviewHotkeys(self, parent=None):
400 self.previousItem.setObjectName(u'previousItemPreview')
401@@ -723,41 +712,7 @@
402 else:
403 self.__checkUpdateSelectedSlide(slideno)
404
405- def onTextRequest(self):
406- """
407- Return the text for the current item in controller
408- """
409- data = []
410- if self.serviceItem:
411- for framenumber, frame in enumerate(self.serviceItem.get_frames()):
412- dataItem = {}
413- if self.serviceItem.is_text():
414- dataItem[u'tag'] = unicode(frame[u'verseTag'])
415- dataItem[u'text'] = unicode(frame[u'html'])
416- else:
417- dataItem[u'tag'] = unicode(framenumber)
418- dataItem[u'text'] = u''
419- dataItem[u'selected'] = \
420- (self.previewListWidget.currentRow() == framenumber)
421- data.append(dataItem)
422- Receiver.send_message(u'slidecontroller_%s_text_response'
423- % self.typePrefix, data)
424-
425 # Screen event methods
426- def onSlideSelectedFirst(self):
427- """
428- Go to the first slide.
429- """
430- if not self.serviceItem:
431- return
432- if self.serviceItem.is_command():
433- Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(),
434- [self.serviceItem, self.isLive])
435- self.updatePreview()
436- else:
437- self.previewListWidget.selectRow(0)
438- self.slideSelected()
439-
440 def onSlideSelectedIndex(self, message):
441 """
442 Go to the requested slide
443@@ -936,20 +891,18 @@
444 Receiver.send_message(
445 u'%s_slide' % self.serviceItem.name.lower(),
446 [self.serviceItem, self.isLive, row])
447- self.updatePreview()
448 else:
449 toDisplay = self.serviceItem.get_rendered_frame(row)
450 if self.serviceItem.is_text():
451- frame = self.display.text(toDisplay)
452+ self.display.text(toDisplay)
453 else:
454 if start:
455 self.display.buildHtml(self.serviceItem, toDisplay)
456- frame = self.display.preview()
457 else:
458- frame = self.display.image(toDisplay)
459+ self.display.image(toDisplay)
460 # reset the store used to display first image
461 self.serviceItem.bg_image_bytes = None
462- self.slidePreview.setPixmap(QtGui.QPixmap.fromImage(frame))
463+ self.updatePreview()
464 self.selectedRow = row
465 self.__checkUpdateSelectedSlide(row)
466 Receiver.send_message(u'slidecontroller_%s_changed' % self.typePrefix,
467@@ -977,8 +930,7 @@
468 QtCore.QTimer.singleShot(0.5, self.grabMainDisplay)
469 QtCore.QTimer.singleShot(2.5, self.grabMainDisplay)
470 else:
471- self.slidePreview.setPixmap(
472- QtGui.QPixmap.fromImage(self.display.preview()))
473+ self.slidePreview.setPixmap(self.display.preview())
474
475 def grabMainDisplay(self):
476 """
477@@ -1041,21 +993,6 @@
478 self.previewListWidget.item(row + 1, 0))
479 self.previewListWidget.selectRow(row)
480
481- def onSlideSelectedLast(self):
482- """
483- Go to the last slide.
484- """
485- if not self.serviceItem:
486- return
487- Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(),
488- [self.serviceItem, self.isLive])
489- if self.serviceItem.is_command():
490- self.updatePreview()
491- else:
492- self.previewListWidget.selectRow(
493- self.previewListWidget.rowCount() - 1)
494- self.slideSelected()
495-
496 def onToggleLoop(self):
497 """
498 Toggles the loop state.
499
500=== modified file 'openlp/core/ui/themeform.py'
501--- openlp/core/ui/themeform.py 2011-08-20 15:02:57 +0000
502+++ openlp/core/ui/themeform.py 2011-10-05 17:12:24 +0000
503@@ -232,7 +232,7 @@
504 if self.page(pageId) == self.previewPage:
505 self.updateTheme()
506 frame = self.thememanager.generateImage(self.theme)
507- self.previewBoxLabel.setPixmap(QtGui.QPixmap.fromImage(frame))
508+ self.previewBoxLabel.setPixmap(frame)
509 self.displayAspectRatio = float(frame.width()) / frame.height()
510 self.resizeEvent()
511
512
513=== modified file 'resources/images/openlp-2.qrc'
514--- resources/images/openlp-2.qrc 2011-07-08 07:46:25 +0000
515+++ resources/images/openlp-2.qrc 2011-10-05 17:12:24 +0000
516@@ -60,8 +60,6 @@
517 </qresource>
518 <qresource prefix="slides">
519 <file>slide_close.png</file>
520- <file>slide_first.png</file>
521- <file>slide_last.png</file>
522 <file>slide_next.png</file>
523 <file>slide_blank.png</file>
524 <file>slide_desktop.png</file>
525
526=== removed file 'resources/images/slide_first.png'
527Binary files resources/images/slide_first.png 2010-09-14 18:18:47 +0000 and resources/images/slide_first.png 1970-01-01 00:00:00 +0000 differ
528=== removed file 'resources/images/slide_last.png'
529Binary files resources/images/slide_last.png 2010-09-14 18:18:47 +0000 and resources/images/slide_last.png 1970-01-01 00:00:00 +0000 differ
530=== modified file 'scripts/check_dependencies.py'
531--- scripts/check_dependencies.py 2011-09-02 11:10:07 +0000
532+++ scripts/check_dependencies.py 2011-10-05 17:12:24 +0000
533@@ -8,7 +8,7 @@
534 # Copyright (c) 2008-2011 Raoul Snyman #
535 # Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan #
536 # Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
537-# Armin Köhler, Joshua Millar, Stevan Pettit, Andreas Preikschat, Mattias #
538+# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
539 # Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
540 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
541 # --------------------------------------------------------------------------- #
542
543=== modified file 'scripts/generate_resources.sh'
544--- scripts/generate_resources.sh 2011-05-24 20:47:05 +0000
545+++ scripts/generate_resources.sh 2011-10-05 17:12:24 +0000
546@@ -5,11 +5,11 @@
547 # OpenLP - Open Source Lyrics Projection #
548 # --------------------------------------------------------------------------- #
549 # Copyright (c) 2008-2011 Raoul Snyman #
550-# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael #
551-# Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, Armin Köhler, #
552-# Andreas Preikschat, Mattias Põldaru, Christian Richter, Philip Ridout, #
553-# Jeffrey Smith, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode #
554-# Woldsund #
555+# Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan #
556+# Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
557+# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
558+# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
559+# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
560 # --------------------------------------------------------------------------- #
561 # This program is free software; you can redistribute it and/or modify it #
562 # under the terms of the GNU General Public License as published by the Free #
563
564=== modified file 'testing/conftest.py'
565--- testing/conftest.py 2011-09-12 20:35:39 +0000
566+++ testing/conftest.py 2011-10-05 17:12:24 +0000
567@@ -8,7 +8,7 @@
568 # Copyright (c) 2008-2011 Raoul Snyman #
569 # Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan #
570 # Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
571-# Armin Köhler, Joshua Millar, Stevan Pettit, Andreas Preikschat, Mattias #
572+# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
573 # Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
574 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
575 # --------------------------------------------------------------------------- #
576
577=== modified file 'testing/test_app.py'
578--- testing/test_app.py 2011-09-12 20:35:39 +0000
579+++ testing/test_app.py 2011-10-05 17:12:24 +0000
580@@ -8,7 +8,7 @@
581 # Copyright (c) 2008-2011 Raoul Snyman #
582 # Portions copyright (c) 2008-2011 Tim Bentley, Gerald Britton, Jonathan #
583 # Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, #
584-# Armin Köhler, Joshua Millar, Stevan Pettit, Andreas Preikschat, Mattias #
585+# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias #
586 # Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, #
587 # Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund #
588 # --------------------------------------------------------------------------- #