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 |
---|---|---|---|
Michael Gorven (community) | Approve | ||
Tim Bentley | Approve | ||
Raoul Snyman | Approve | ||
Review via email: mp+6161@code.launchpad.net |
Commit message
Description of the change
Tim Bentley (trb143) wrote : | # |
Raoul Snyman (raoul-snyman) wrote : | # |
880 + self.PreviewCon
881 + self.LiveController = SlideController
Just a note: I started naming things on forms before we had decided on a standard, so they're a little out of sync with the proper naming convention. I am cleaning them up in a cleanup branch, but just for reference, those two should probably be called "self.previewCo
982 + self.Toolbar.
983 + translate(
Not sure what the difference is between the first and second "move to top" strings is, but the first isn't u''
966 - self.Layout = QtGui.QVBoxLayo
967 + self.Layout = QVBoxLayout(self)
Please rather use "from PyQt4 import QtCore, QtGui" as it pollutes the local namespace less. (I'm also cleaning this up in my local cleanup branch).
970 self.Toolbar = OpenLPToolbar(self)
1002 + self.ThemeComboBox = QComboBox(
1004 + self.ThemeWidget = QWidgetAction(
As noted before, my bad, these should be camelCase not PascalCase - also busy cleaning up in my branch.
Apart from those few minor things, everything looks fine. I'll still have to see these things in action to get a real understanding of what's going on though...
review approve
Tim Bentley (trb143) : | # |
Michael Gorven (mgorven) wrote : | # |
Eric4 files are gone! Awesome branch! :-P
+ log.debug(
+ log.debug(
May I be extremely pedantic and ask why there are trailing spaces?
+ if self.displayBlank == False:
I prefer code like "if not self.displayBlank" (unless displayBlank could
legitimately be None and needs to be treated differently).
review approve
Martin Thompson (mjthompson) wrote : | # |
On Mon, May 04, 2009 at 06:35:06PM -0000 or thereabouts, Raoul Snyman wrote:
>
> 966 - self.Layout = QtGui.QVBoxLayo
> 967 + self.Layout = QVBoxLayout(self)
>
> Please rather use "from PyQt4 import QtCore, QtGui" as it pollutes
> the local namespace less. (I'm also cleaning this up in my local
> cleanup branch).
If I can throw in my 2p worth here... it appears to me to be more
Qt-like to *not* prefix everything with the, and it certainly reduces
the amount of typing, and faffing around remembering whether something
is Core, or Gui.
In addition, I found that the endless prefixes got in the way of my
understanding of the code, which is why I stopped using them in my
later code (after I'd seen somewhere suggesting it - can't recall
where though). This might be (yet another) case of Tim getting the
blame for my coding - sorry!
From the point of view of namespace pollution, all the Qt calls have a
Q on the front to avoid collisions, and I think that's likely to be
pretty successful...
Anyway, that was my thinking when I started doing it, but I'll go with
the consensus in future!
--
<email address hidden>
A man leaves his darkness when he follows the Son
- The Great American Novel (Larry Norman)
%
Preview Diff
1 | === added file '.bzrignore' | |||
2 | --- .bzrignore 1970-01-01 00:00:00 +0000 | |||
3 | +++ .bzrignore 2009-05-04 08:56:46 +0000 | |||
4 | @@ -0,0 +1,10 @@ | |||
5 | 1 | *.pyc | ||
6 | 2 | *.*~ | ||
7 | 3 | *.log | ||
8 | 4 | \#*\# | ||
9 | 5 | *.eric4project | ||
10 | 6 | *.ropeproject | ||
11 | 7 | *.e4* | ||
12 | 8 | .eric4project | ||
13 | 9 | list | ||
14 | 10 | openlp.org 2.0.e4* | ||
15 | 0 | 11 | ||
16 | === removed file '.eric4project/openlp.org 2.0.e4q' | |||
17 | --- .eric4project/openlp.org 2.0.e4q 2009-05-03 15:35:34 +0000 | |||
18 | +++ .eric4project/openlp.org 2.0.e4q 1970-01-01 00:00:00 +0000 | |||
19 | @@ -1,7 +0,0 @@ | |||
20 | 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
21 | 2 | <!DOCTYPE UserProject SYSTEM "UserProject-4.0.dtd"> | ||
22 | 3 | <!-- eric4 user project file for project openlp.org 2.0 --> | ||
23 | 4 | <!-- Saved: 2009-05-03, 17:33:30 --> | ||
24 | 5 | <!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org --> | ||
25 | 6 | <UserProject version="4.0"> | ||
26 | 7 | </UserProject> | ||
27 | 8 | \ No newline at end of file | 0 | \ No newline at end of file |
28 | 9 | 1 | ||
29 | === removed file '.eric4project/openlp.org 2.0.e4s' | |||
30 | --- .eric4project/openlp.org 2.0.e4s 2008-11-21 18:58:03 +0000 | |||
31 | +++ .eric4project/openlp.org 2.0.e4s 1970-01-01 00:00:00 +0000 | |||
32 | @@ -1,32 +0,0 @@ | |||
33 | 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
34 | 2 | <!DOCTYPE Session SYSTEM "Session-4.0.dtd"> | ||
35 | 3 | <!-- eric4 session file for project openlp.org 2.0 --> | ||
36 | 4 | <!-- This file was generated automatically, do not edit. --> | ||
37 | 5 | <!-- Saved: 2008-11-03, 22:49:15 --> | ||
38 | 6 | <Session version="4.0"> | ||
39 | 7 | <Filenames> | ||
40 | 8 | <Filename cline="24" cindex="13">/home/raoul/Projects/openlp-2/openlp.pyw</Filename> | ||
41 | 9 | <Filename cline="30" cindex="0">/home/raoul/Projects/openlp-2/openlp/ui/forms/splashscreen.py</Filename> | ||
42 | 10 | <Filename cline="31" cindex="30">/home/raoul/Projects/openlp-2/openlp/ui/forms/mainwindow.py</Filename> | ||
43 | 11 | <Filename cline="22" cindex="53">/home/raoul/Projects/openlp-2/openlp/ui/forms/__init__.py</Filename> | ||
44 | 12 | </Filenames> | ||
45 | 13 | <ActiveWindow cline="24" cindex="13">/home/raoul/Projects/openlp-2/openlp.pyw</ActiveWindow> | ||
46 | 14 | <Breakpoints> | ||
47 | 15 | </Breakpoints> | ||
48 | 16 | <Watchpoints> | ||
49 | 17 | </Watchpoints> | ||
50 | 18 | <DebugInfo> | ||
51 | 19 | <CommandLine></CommandLine> | ||
52 | 20 | <WorkingDirectory></WorkingDirectory> | ||
53 | 21 | <Environment></Environment> | ||
54 | 22 | <ReportExceptions value="True" /> | ||
55 | 23 | <Exceptions> | ||
56 | 24 | </Exceptions> | ||
57 | 25 | <AutoClearShell value="True" /> | ||
58 | 26 | <TracePython value="False" /> | ||
59 | 27 | <AutoContinue value="True" /> | ||
60 | 28 | <CovexcPattern></CovexcPattern> | ||
61 | 29 | </DebugInfo> | ||
62 | 30 | <Bookmarks> | ||
63 | 31 | </Bookmarks> | ||
64 | 32 | </Session> | ||
65 | 33 | \ No newline at end of file | 0 | \ No newline at end of file |
66 | 34 | 1 | ||
67 | === removed file '.eric4project/openlp.org 2.0.e4t' | |||
68 | --- .eric4project/openlp.org 2.0.e4t 2009-05-03 15:35:34 +0000 | |||
69 | +++ .eric4project/openlp.org 2.0.e4t 1970-01-01 00:00:00 +0000 | |||
70 | @@ -1,132 +0,0 @@ | |||
71 | 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
72 | 2 | <!DOCTYPE Tasks SYSTEM "Tasks-4.2.dtd"> | ||
73 | 3 | <!-- eric4 tasks file for project openlp.org 2.0 --> | ||
74 | 4 | <!-- Saved: 2009-05-03, 17:33:30 --> | ||
75 | 5 | <Tasks version="4.2"> | ||
76 | 6 | <Task priority="1" completed="False" bugfix="False"> | ||
77 | 7 | <Summary>TODO: what is the tags for bridge, pre-chorus?</Summary> | ||
78 | 8 | <Description></Description> | ||
79 | 9 | <Created>2008-11-26, 21:10:45</Created> | ||
80 | 10 | <Resource> | ||
81 | 11 | <Filename>openlp/song/song.py</Filename> | ||
82 | 12 | <Linenumber>138</Linenumber> | ||
83 | 13 | </Resource> | ||
84 | 14 | </Task> | ||
85 | 15 | <Task priority="1" completed="False" bugfix="False"> | ||
86 | 16 | <Summary>TODO: check font formatting</Summary> | ||
87 | 17 | <Description></Description> | ||
88 | 18 | <Created>2008-11-26, 21:10:45</Created> | ||
89 | 19 | <Resource> | ||
90 | 20 | <Filename>openlp/song/song.py</Filename> | ||
91 | 21 | <Linenumber>523</Linenumber> | ||
92 | 22 | </Resource> | ||
93 | 23 | </Task> | ||
94 | 24 | <Task priority="1" completed="False" bugfix="False"> | ||
95 | 25 | <Summary>TODO: Song: Logging - not all, but enough</Summary> | ||
96 | 26 | <Description></Description> | ||
97 | 27 | <Created>2008-12-07, 10:06:59</Created> | ||
98 | 28 | <Resource> | ||
99 | 29 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
100 | 30 | <Linenumber>39</Linenumber> | ||
101 | 31 | </Resource> | ||
102 | 32 | </Task> | ||
103 | 33 | <Task priority="1" completed="False" bugfix="False"> | ||
104 | 34 | <Summary>TODO: Song: Handle OpenLP2 format</Summary> | ||
105 | 35 | <Description></Description> | ||
106 | 36 | <Created>2008-12-07, 10:06:59</Created> | ||
107 | 37 | <Resource> | ||
108 | 38 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
109 | 39 | <Linenumber>40</Linenumber> | ||
110 | 40 | </Resource> | ||
111 | 41 | </Task> | ||
112 | 42 | <Task priority="1" completed="False" bugfix="False"> | ||
113 | 43 | <Summary>TODO: Song: Import OpenLP1</Summary> | ||
114 | 44 | <Description></Description> | ||
115 | 45 | <Created>2008-12-07, 10:06:59</Created> | ||
116 | 46 | <Resource> | ||
117 | 47 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
118 | 48 | <Linenumber>41</Linenumber> | ||
119 | 49 | </Resource> | ||
120 | 50 | </Task> | ||
121 | 51 | <Task priority="1" completed="False" bugfix="False"> | ||
122 | 52 | <Summary>TODO: Song: Export OpenLP1</Summary> | ||
123 | 53 | <Description></Description> | ||
124 | 54 | <Created>2008-12-07, 10:07:00</Created> | ||
125 | 55 | <Resource> | ||
126 | 56 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
127 | 57 | <Linenumber>42</Linenumber> | ||
128 | 58 | </Resource> | ||
129 | 59 | </Task> | ||
130 | 60 | <Task priority="1" completed="False" bugfix="False"> | ||
131 | 61 | <Summary>TODO: Song: Export Song to CCLI</Summary> | ||
132 | 62 | <Description></Description> | ||
133 | 63 | <Created>2008-12-07, 10:07:00</Created> | ||
134 | 64 | <Resource> | ||
135 | 65 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
136 | 66 | <Linenumber>43</Linenumber> | ||
137 | 67 | </Resource> | ||
138 | 68 | </Task> | ||
139 | 69 | <Task priority="1" completed="False" bugfix="False"> | ||
140 | 70 | <Summary>TODO: Song: Export Song to OpenSong</Summary> | ||
141 | 71 | <Description></Description> | ||
142 | 72 | <Created>2008-12-07, 10:07:00</Created> | ||
143 | 73 | <Resource> | ||
144 | 74 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
145 | 75 | <Linenumber>44</Linenumber> | ||
146 | 76 | </Resource> | ||
147 | 77 | </Task> | ||
148 | 78 | <Task priority="1" completed="False" bugfix="False"> | ||
149 | 79 | <Summary>TODO: Song: Import ChangingSong</Summary> | ||
150 | 80 | <Description></Description> | ||
151 | 81 | <Created>2008-12-07, 10:07:00</Created> | ||
152 | 82 | <Resource> | ||
153 | 83 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
154 | 84 | <Linenumber>45</Linenumber> | ||
155 | 85 | </Resource> | ||
156 | 86 | </Task> | ||
157 | 87 | <Task priority="1" completed="False" bugfix="False"> | ||
158 | 88 | <Summary>TODO: Song: Export ChangingSong</Summary> | ||
159 | 89 | <Description></Description> | ||
160 | 90 | <Created>2008-12-07, 10:07:00</Created> | ||
161 | 91 | <Resource> | ||
162 | 92 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
163 | 93 | <Linenumber>46</Linenumber> | ||
164 | 94 | </Resource> | ||
165 | 95 | </Task> | ||
166 | 96 | <Task priority="1" completed="False" bugfix="False"> | ||
167 | 97 | <Summary>TODO: what is the tags for bridge, pre-chorus?</Summary> | ||
168 | 98 | <Description></Description> | ||
169 | 99 | <Created>2008-12-07, 10:07:00</Created> | ||
170 | 100 | <Resource> | ||
171 | 101 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
172 | 102 | <Linenumber>149</Linenumber> | ||
173 | 103 | </Resource> | ||
174 | 104 | </Task> | ||
175 | 105 | <Task priority="1" completed="False" bugfix="False"> | ||
176 | 106 | <Summary>TODO: check font formatting</Summary> | ||
177 | 107 | <Description></Description> | ||
178 | 108 | <Created>2008-12-07, 10:07:00</Created> | ||
179 | 109 | <Resource> | ||
180 | 110 | <Filename>openlp/plugins/songs/songxml.py</Filename> | ||
181 | 111 | <Linenumber>534</Linenumber> | ||
182 | 112 | </Resource> | ||
183 | 113 | </Task> | ||
184 | 114 | <Task priority="1" completed="False" bugfix="False"> | ||
185 | 115 | <Summary>TODO: need to get rid of this once all plugins are up to date</Summary> | ||
186 | 116 | <Description></Description> | ||
187 | 117 | <Created>2009-03-01, 01:10:29</Created> | ||
188 | 118 | <Resource> | ||
189 | 119 | <Filename>openlp/core/pluginmanager.py</Filename> | ||
190 | 120 | <Linenumber>86</Linenumber> | ||
191 | 121 | </Resource> | ||
192 | 122 | </Task> | ||
193 | 123 | <Task priority="1" completed="False" bugfix="False"> | ||
194 | 124 | <Summary>TODO: These shouldn't be called here...</Summary> | ||
195 | 125 | <Description></Description> | ||
196 | 126 | <Created>2009-03-01, 01:10:29</Created> | ||
197 | 127 | <Resource> | ||
198 | 128 | <Filename>openlp/core/pluginmanager.py</Filename> | ||
199 | 129 | <Linenumber>108</Linenumber> | ||
200 | 130 | </Resource> | ||
201 | 131 | </Task> | ||
202 | 132 | </Tasks> | ||
203 | 133 | \ No newline at end of file | 0 | \ No newline at end of file |
204 | 134 | 1 | ||
205 | === removed file '.gitignore' | |||
206 | --- .gitignore 2009-02-14 08:33:32 +0000 | |||
207 | +++ .gitignore 1970-01-01 00:00:00 +0000 | |||
208 | @@ -1,7 +0,0 @@ | |||
209 | 1 | *.pyc | ||
210 | 2 | *.*~ | ||
211 | 3 | *.log | ||
212 | 4 | \#*\# | ||
213 | 5 | *.eric4project | ||
214 | 6 | *.ropeproject | ||
215 | 7 | *.e4* | ||
216 | 8 | 0 | ||
217 | === removed file 'openlp.org 2.0.e4p' | |||
218 | --- openlp.org 2.0.e4p 2009-05-01 22:26:43 +0000 | |||
219 | +++ openlp.org 2.0.e4p 1970-01-01 00:00:00 +0000 | |||
220 | @@ -1,330 +0,0 @@ | |||
221 | 1 | <?xml version="1.0" encoding="UTF-8"?> | ||
222 | 2 | <!DOCTYPE Project SYSTEM "Project-4.6.dtd"> | ||
223 | 3 | <!-- eric4 project file for project openlp.org 2.0 --> | ||
224 | 4 | <!-- Saved: 2009-05-02, 00:15:57 --> | ||
225 | 5 | <!-- Copyright (C) 2009 Raoul Snyman, raoulsnyman@openlp.org --> | ||
226 | 6 | <Project version="4.6"> | ||
227 | 7 | <Language>en</Language> | ||
228 | 8 | <ProgLanguage mixed="0">Python</ProgLanguage> | ||
229 | 9 | <ProjectType>Qt4</ProjectType> | ||
230 | 10 | <Description></Description> | ||
231 | 11 | <Version>1.9.0</Version> | ||
232 | 12 | <Author>Raoul Snyman</Author> | ||
233 | 13 | <Email>raoulsnyman@openlp.org</Email> | ||
234 | 14 | <Sources> | ||
235 | 15 | <Source>openlp.pyw</Source> | ||
236 | 16 | <Source>openlp/controls/__init__.py</Source> | ||
237 | 17 | <Source>openlp/core/test/test_render_theme.py</Source> | ||
238 | 18 | <Source>openlp/core/test/test_render.py</Source> | ||
239 | 19 | <Source>openlp/core/__init__.py</Source> | ||
240 | 20 | <Source>openlp/__init__.py</Source> | ||
241 | 21 | <Source>demo.py</Source> | ||
242 | 22 | <Source>openlp/core/settingsmanager.py</Source> | ||
243 | 23 | <Source>openlp/plugins/__init__.py</Source> | ||
244 | 24 | <Source>openlp/core/ui/__init__.py</Source> | ||
245 | 25 | <Source>openlp/core/ui/mainwindow.py</Source> | ||
246 | 26 | <Source>openlp/core/ui/splashscreen.py</Source> | ||
247 | 27 | <Source>openlp/core/ui/alertform.py</Source> | ||
248 | 28 | <Source>openlp/core/ui/about.py</Source> | ||
249 | 29 | <Source>openlp/plugins/songs/songsplugin.py</Source> | ||
250 | 30 | <Source>openlp/plugins/songs/__init__.py</Source> | ||
251 | 31 | <Source>openlp/plugins/songs/forms/__init__.py</Source> | ||
252 | 32 | <Source>openlp/plugins/songs/forms/openlpimportform.py</Source> | ||
253 | 33 | <Source>openlp/plugins/songs/forms/editsongform.py</Source> | ||
254 | 34 | <Source>openlp/plugins/songs/forms/opensongexportform.py</Source> | ||
255 | 35 | <Source>openlp/plugins/songs/forms/openlpexportform.py</Source> | ||
256 | 36 | <Source>openlp/plugins/songs/forms/opensongimportform.py</Source> | ||
257 | 37 | <Source>openlp/core/utils/__init__.py</Source> | ||
258 | 38 | <Source>openlp/core/theme/__init__.py</Source> | ||
259 | 39 | <Source>openlp/core/theme/theme.py</Source> | ||
260 | 40 | <Source>openlp/plugins/songs/test/test_song_opensong.py</Source> | ||
261 | 41 | <Source>openlp/plugins/songs/test/test_song_basic.py</Source> | ||
262 | 42 | <Source>openlp/plugins/songs/test/test_song_verse.py</Source> | ||
263 | 43 | <Source>openlp/plugins/songs/test/test_song_text.py</Source> | ||
264 | 44 | <Source>openlp/core/theme/test/test_theme.py</Source> | ||
265 | 45 | <Source>openlp/core/resources.py</Source> | ||
266 | 46 | <Source>openlp/core/lib/__init__.py</Source> | ||
267 | 47 | <Source>openlp/core/lib/xmlrootclass.py</Source> | ||
268 | 48 | <Source>openlp/core/lib/plugin.py</Source> | ||
269 | 49 | <Source>openlp/core/lib/mediamanageritem.py</Source> | ||
270 | 50 | <Source>openlp/core/lib/event.py</Source> | ||
271 | 51 | <Source>openlp/core/utils/confighelper.py</Source> | ||
272 | 52 | <Source>openlp/core/utils/winregistry.py</Source> | ||
273 | 53 | <Source>openlp/core/utils/registry.py</Source> | ||
274 | 54 | <Source>openlp/core/utils/linregistry.py</Source> | ||
275 | 55 | <Source>setup.py</Source> | ||
276 | 56 | <Source>openlp/core/lib/pluginconfig.py</Source> | ||
277 | 57 | <Source>openlp/core/test/test_plugin_manager.py</Source> | ||
278 | 58 | <Source>openlp/core/test/test_mediamanageritem.py</Source> | ||
279 | 59 | <Source>openlp/core/test/testplugins/testplugin1.py</Source> | ||
280 | 60 | <Source>openlp/core/test/testplugins/testplugin2/__init__.py</Source> | ||
281 | 61 | <Source>openlp/core/test/testplugins/testplugin2/testplugin2.py</Source> | ||
282 | 62 | <Source>openlp/plugins/bibles/bibleplugin.py</Source> | ||
283 | 63 | <Source>openlp/plugins/bibles/forms/bibleimportdialog.py</Source> | ||
284 | 64 | <Source>openlp/plugins/bibles/forms/bibleimportform.py</Source> | ||
285 | 65 | <Source>openlp/plugins/bibles/lib/bibleDBimpl.py</Source> | ||
286 | 66 | <Source>openlp/plugins/bibles/lib/bibleOSISimpl.py</Source> | ||
287 | 67 | <Source>openlp/plugins/bibles/lib/bibleHTTPimpl.py</Source> | ||
288 | 68 | <Source>openlp/plugins/bibles/lib/bibleCSVimpl.py</Source> | ||
289 | 69 | <Source>openlp/plugins/bibles/__init__.py</Source> | ||
290 | 70 | <Source>openlp/plugins/bibles/lib/__init__.py</Source> | ||
291 | 71 | <Source>openlp/plugins/bibles/forms/__init__.py</Source> | ||
292 | 72 | <Source>openlp/plugins/songs/lib/__init__.py</Source> | ||
293 | 73 | <Source>openlp/plugins/songs/lib/songxml.py</Source> | ||
294 | 74 | <Source>openlp/plugins/songs/lib/models.py</Source> | ||
295 | 75 | <Source>openlp/plugins/bibles/test/__init__.py</Source> | ||
296 | 76 | <Source>openlp/plugins/bibles/test/test_bibleManagerAPI.py</Source> | ||
297 | 77 | <Source>openlp/plugins/bibles/test/test_bibleManager.py</Source> | ||
298 | 78 | <Source>openlp/plugins/bibles/test/test_bibleManagerOSIS.py</Source> | ||
299 | 79 | <Source>openlp/plugins/bibles/test/test_bibleManagerCSV.py</Source> | ||
300 | 80 | <Source>openlp/plugins/presentations/lib/pptview.py</Source> | ||
301 | 81 | <Source>openlp/plugins/presentations/lib/impresscom.py</Source> | ||
302 | 82 | <Source>openlp/plugins/presentations/lib/powerpoint.py</Source> | ||
303 | 83 | <Source>openlp/plugins/presentations/lib/pptviewlib/ppttest.py</Source> | ||
304 | 84 | <Source>openlp/plugins/presentations/__init__.py</Source> | ||
305 | 85 | <Source>openlp/plugins/presentations/presentationplugin.py</Source> | ||
306 | 86 | <Source>openlp/plugins/videos/__init__.py</Source> | ||
307 | 87 | <Source>openlp/plugins/videos/videoplugin.py</Source> | ||
308 | 88 | <Source>openlp/plugins/images/__init__.py</Source> | ||
309 | 89 | <Source>openlp/plugins/images/imageplugin.py</Source> | ||
310 | 90 | <Source>openlp/plugins/songs/forms/editsongdialog.py</Source> | ||
311 | 91 | <Source>openlpcnv.pyw</Source> | ||
312 | 92 | <Source>openlp/plugins/songs/forms/songbookdialog.py</Source> | ||
313 | 93 | <Source>openlp/plugins/songs/forms/topicsdialog.py</Source> | ||
314 | 94 | <Source>openlp/plugins/songs/forms/authorsdialog.py</Source> | ||
315 | 95 | <Source>openlp/plugins/songs/forms/topicsform.py</Source> | ||
316 | 96 | <Source>openlp/plugins/songs/forms/authorsform.py</Source> | ||
317 | 97 | <Source>openlp/plugins/songs/forms/songbookform.py</Source> | ||
318 | 98 | <Source>openlp/migration/__init__.py</Source> | ||
319 | 99 | <Source>openlp/migration/migratefiles.py</Source> | ||
320 | 100 | <Source>openlp/migration/migratesongs.py</Source> | ||
321 | 101 | <Source>openlp/migration/display.py</Source> | ||
322 | 102 | <Source>openlp/migration/migratebibles.py</Source> | ||
323 | 103 | <Source>openlp/plugins/songs/lib/tables.py</Source> | ||
324 | 104 | <Source>openlp/plugins/songs/lib/classes.py</Source> | ||
325 | 105 | <Source>openlp/plugins/songs/lib/manager.py</Source> | ||
326 | 106 | <Source>openlp/plugins/bibles/lib/classes.py</Source> | ||
327 | 107 | <Source>openlp/plugins/bibles/lib/tables.py</Source> | ||
328 | 108 | <Source>openlp/plugins/bibles/lib/manager.py</Source> | ||
329 | 109 | <Source>openlp/plugins/bibles/lib/common.py</Source> | ||
330 | 110 | <Source>openlp/plugins/songs/lib/meta.py</Source> | ||
331 | 111 | <Source>openlp/core/test/testplugins/deeper/__init__.py</Source> | ||
332 | 112 | <Source>openlp/core/test/testplugins/deeper/toodeep/__init__.py</Source> | ||
333 | 113 | <Source>openlp/core/test/testplugins/deeper/toodeep/plugin3toodeep.py</Source> | ||
334 | 114 | <Source>openlp/core/lib/serviceitem.py</Source> | ||
335 | 115 | <Source>openlp/core/ui/slidecontroller.py</Source> | ||
336 | 116 | <Source>openlp/core/lib/eventreceiver.py</Source> | ||
337 | 117 | <Source>openlp/core/ui/servicemanager.py</Source> | ||
338 | 118 | <Source>openlp/core/lib/toolbar.py</Source> | ||
339 | 119 | <Source>openlp/core/ui/settingsform.py</Source> | ||
340 | 120 | <Source>openlp/core/ui/generaltab.py</Source> | ||
341 | 121 | <Source>openlp/core/ui/themestab.py</Source> | ||
342 | 122 | <Source>openlp/core/ui/alertstab.py</Source> | ||
343 | 123 | <Source>openlp/core/ui/settingsdialog.py</Source> | ||
344 | 124 | <Source>openlp/core/lib/settingstab.py</Source> | ||
345 | 125 | <Source>openlp/plugins/bibles/lib/biblestab.py</Source> | ||
346 | 126 | <Source>openlp/plugins/songs/lib/songstab.py</Source> | ||
347 | 127 | <Source>openlp/plugins/videos/lib/__init__.py</Source> | ||
348 | 128 | <Source>openlp/plugins/videos/lib/videotab.py</Source> | ||
349 | 129 | <Source>openlp/core/ui/test/test_service_manager.py</Source> | ||
350 | 130 | <Source>openlp/plugins/images/lib/__init__.py</Source> | ||
351 | 131 | <Source>openlp/plugins/images/lib/imageserviceitem.py</Source> | ||
352 | 132 | <Source>openlp/plugins/images/lib/listwithpreviews.py</Source> | ||
353 | 133 | <Source>openlp/plugins/songs/forms/editverseform.py</Source> | ||
354 | 134 | <Source>openlp/plugins/songs/forms/editversedialog.py</Source> | ||
355 | 135 | <Source>openlp/plugins/custom/__init__.py</Source> | ||
356 | 136 | <Source>openlp/plugins/custom/customplugin.py</Source> | ||
357 | 137 | <Source>openlp/plugins/custom/forms/__init__.py</Source> | ||
358 | 138 | <Source>openlp/plugins/custom/forms/editcustomform.py</Source> | ||
359 | 139 | <Source>openlp/plugins/custom/forms/editcustomdialog.py</Source> | ||
360 | 140 | <Source>openlp/plugins/custom/lib/__init__.py</Source> | ||
361 | 141 | <Source>openlp/plugins/custom/lib/customtab.py</Source> | ||
362 | 142 | <Source>openlp/plugins/custom/lib/classes.py</Source> | ||
363 | 143 | <Source>openlp/plugins/custom/lib/tables.py</Source> | ||
364 | 144 | <Source>openlp/plugins/custom/lib/meta.py</Source> | ||
365 | 145 | <Source>openlp/plugins/custom/lib/models.py</Source> | ||
366 | 146 | <Source>openlp/plugins/custom/lib/manager.py</Source> | ||
367 | 147 | <Source>openlp/plugins/images/lib/mediaitem.py</Source> | ||
368 | 148 | <Source>openlp/plugins/songs/lib/mediaitem.py</Source> | ||
369 | 149 | <Source>openlp/core/ui/maindisplay.py</Source> | ||
370 | 150 | <Source>openlp/core/ui/amendthemedialog.py</Source> | ||
371 | 151 | <Source>openlp/core/ui/thememanager.py</Source> | ||
372 | 152 | <Source>openlp/core/ui/amendthemeform.py</Source> | ||
373 | 153 | <Source>openlp/core/lib/eventmanager.py</Source> | ||
374 | 154 | <Source>openlp/core/lib/rendermanager.py</Source> | ||
375 | 155 | <Source>openlp/core/lib/renderer.py</Source> | ||
376 | 156 | <Source>openlp/core/lib/songxmlhandler.py</Source> | ||
377 | 157 | <Source>openlp/core/lib/pluginmanager.py</Source> | ||
378 | 158 | <Source>openlp/core/lib/themexmlhandler.py</Source> | ||
379 | 159 | <Source>openlp/plugins/bibles/lib/mediaitem.py</Source> | ||
380 | 160 | <Source>openlp/plugins/bibles/lib/textlistdata.py</Source> | ||
381 | 161 | <Source>openlp/plugins/presentations/lib/__init__.py</Source> | ||
382 | 162 | <Source>openlp/plugins/presentations/lib/mediaitem.py</Source> | ||
383 | 163 | <Source>openlp/plugins/presentations/lib/filelistdata.py</Source> | ||
384 | 164 | <Source>openlp/plugins/videos/lib/mediaitem.py</Source> | ||
385 | 165 | <Source>openlp/plugins/videos/lib/filelistdata.py</Source> | ||
386 | 166 | <Source>openlp/plugins/custom/lib/mediaitem.py</Source> | ||
387 | 167 | <Source>openlp/plugins/custom/lib/textlistdata.py</Source> | ||
388 | 168 | <Source>openlp/plugins/custom/lib/customserviceitem.py</Source> | ||
389 | 169 | <Source>resources/images/openlp-2_rc.py</Source> | ||
390 | 170 | </Sources> | ||
391 | 171 | <Forms> | ||
392 | 172 | <Form>resources/forms/openlpexportform.ui</Form> | ||
393 | 173 | <Form>resources/forms/opensongexportform.ui</Form> | ||
394 | 174 | <Form>resources/forms/about.ui</Form> | ||
395 | 175 | <Form>resources/forms/settings.ui</Form> | ||
396 | 176 | <Form>resources/forms/themewizard.ui</Form> | ||
397 | 177 | <Form>resources/forms/opensongimportform.ui</Form> | ||
398 | 178 | <Form>resources/forms/alertform.ui</Form> | ||
399 | 179 | <Form>resources/forms/mainwindow.ui</Form> | ||
400 | 180 | <Form>resources/forms/songexport.ui</Form> | ||
401 | 181 | <Form>resources/forms/openlpimportform.ui</Form> | ||
402 | 182 | <Form>resources/forms/splashscreen.ui</Form> | ||
403 | 183 | <Form>resources/forms/authorsdialog.ui</Form> | ||
404 | 184 | <Form>resources/forms/bibleimportdialog.ui</Form> | ||
405 | 185 | <Form>resources/forms/songbookdialog.ui</Form> | ||
406 | 186 | <Form>resources/forms/topicsdialog.ui</Form> | ||
407 | 187 | <Form>resources/forms/editsongdialog.ui</Form> | ||
408 | 188 | <Form>resources/forms/editversedialog.ui</Form> | ||
409 | 189 | <Form>resources/forms/editcustomdialog.ui</Form> | ||
410 | 190 | <Form>resources/forms/amendthemedialog.ui</Form> | ||
411 | 191 | </Forms> | ||
412 | 192 | <Translations> | ||
413 | 193 | </Translations> | ||
414 | 194 | <Resources> | ||
415 | 195 | <Resource>resources/images/openlp-2.qrc</Resource> | ||
416 | 196 | </Resources> | ||
417 | 197 | <Interfaces> | ||
418 | 198 | </Interfaces> | ||
419 | 199 | <Others> | ||
420 | 200 | <Other>copyright.txt</Other> | ||
421 | 201 | <Other>documentation/SongFormat.txt</Other> | ||
422 | 202 | <Other>documentation/pyqt-sql-py2exe.txt</Other> | ||
423 | 203 | <Other>documentation/PluginDevelopersGuide.txt</Other> | ||
424 | 204 | </Others> | ||
425 | 205 | <MainScript>openlp.pyw</MainScript> | ||
426 | 206 | <Vcs> | ||
427 | 207 | <VcsType>None</VcsType> | ||
428 | 208 | <VcsOptions> | ||
429 | 209 | <dict> | ||
430 | 210 | <key> | ||
431 | 211 | <string>add</string> | ||
432 | 212 | </key> | ||
433 | 213 | <value> | ||
434 | 214 | <list> | ||
435 | 215 | <string></string> | ||
436 | 216 | </list> | ||
437 | 217 | </value> | ||
438 | 218 | <key> | ||
439 | 219 | <string>checkout</string> | ||
440 | 220 | </key> | ||
441 | 221 | <value> | ||
442 | 222 | <list> | ||
443 | 223 | <string></string> | ||
444 | 224 | </list> | ||
445 | 225 | </value> | ||
446 | 226 | <key> | ||
447 | 227 | <string>commit</string> | ||
448 | 228 | </key> | ||
449 | 229 | <value> | ||
450 | 230 | <list> | ||
451 | 231 | <string></string> | ||
452 | 232 | </list> | ||
453 | 233 | </value> | ||
454 | 234 | <key> | ||
455 | 235 | <string>diff</string> | ||
456 | 236 | </key> | ||
457 | 237 | <value> | ||
458 | 238 | <list> | ||
459 | 239 | <string></string> | ||
460 | 240 | </list> | ||
461 | 241 | </value> | ||
462 | 242 | <key> | ||
463 | 243 | <string>export</string> | ||
464 | 244 | </key> | ||
465 | 245 | <value> | ||
466 | 246 | <list> | ||
467 | 247 | <string></string> | ||
468 | 248 | </list> | ||
469 | 249 | </value> | ||
470 | 250 | <key> | ||
471 | 251 | <string>global</string> | ||
472 | 252 | </key> | ||
473 | 253 | <value> | ||
474 | 254 | <list> | ||
475 | 255 | <string></string> | ||
476 | 256 | </list> | ||
477 | 257 | </value> | ||
478 | 258 | <key> | ||
479 | 259 | <string>history</string> | ||
480 | 260 | </key> | ||
481 | 261 | <value> | ||
482 | 262 | <list> | ||
483 | 263 | <string></string> | ||
484 | 264 | </list> | ||
485 | 265 | </value> | ||
486 | 266 | <key> | ||
487 | 267 | <string>log</string> | ||
488 | 268 | </key> | ||
489 | 269 | <value> | ||
490 | 270 | <list> | ||
491 | 271 | <string></string> | ||
492 | 272 | </list> | ||
493 | 273 | </value> | ||
494 | 274 | <key> | ||
495 | 275 | <string>remove</string> | ||
496 | 276 | </key> | ||
497 | 277 | <value> | ||
498 | 278 | <list> | ||
499 | 279 | <string></string> | ||
500 | 280 | </list> | ||
501 | 281 | </value> | ||
502 | 282 | <key> | ||
503 | 283 | <string>status</string> | ||
504 | 284 | </key> | ||
505 | 285 | <value> | ||
506 | 286 | <list> | ||
507 | 287 | <string></string> | ||
508 | 288 | </list> | ||
509 | 289 | </value> | ||
510 | 290 | <key> | ||
511 | 291 | <string>tag</string> | ||
512 | 292 | </key> | ||
513 | 293 | <value> | ||
514 | 294 | <list> | ||
515 | 295 | <string></string> | ||
516 | 296 | </list> | ||
517 | 297 | </value> | ||
518 | 298 | <key> | ||
519 | 299 | <string>update</string> | ||
520 | 300 | </key> | ||
521 | 301 | <value> | ||
522 | 302 | <list> | ||
523 | 303 | <string></string> | ||
524 | 304 | </list> | ||
525 | 305 | </value> | ||
526 | 306 | </dict> | ||
527 | 307 | </VcsOptions> | ||
528 | 308 | <VcsOtherData> | ||
529 | 309 | <dict> | ||
530 | 310 | <key> | ||
531 | 311 | <string>standardLayout</string> | ||
532 | 312 | </key> | ||
533 | 313 | <value> | ||
534 | 314 | <bool>True</bool> | ||
535 | 315 | </value> | ||
536 | 316 | </dict> | ||
537 | 317 | </VcsOtherData> | ||
538 | 318 | </Vcs> | ||
539 | 319 | <FiletypeAssociations> | ||
540 | 320 | <FiletypeAssociation pattern="*.ui" type="FORMS" /> | ||
541 | 321 | <FiletypeAssociation pattern="*.idl" type="INTERFACES" /> | ||
542 | 322 | <FiletypeAssociation pattern="*.qm" type="TRANSLATIONS" /> | ||
543 | 323 | <FiletypeAssociation pattern="*.ptl" type="SOURCES" /> | ||
544 | 324 | <FiletypeAssociation pattern="*.pyw" type="SOURCES" /> | ||
545 | 325 | <FiletypeAssociation pattern="*.ui.h" type="FORMS" /> | ||
546 | 326 | <FiletypeAssociation pattern="*.ts" type="TRANSLATIONS" /> | ||
547 | 327 | <FiletypeAssociation pattern="*.py" type="SOURCES" /> | ||
548 | 328 | <FiletypeAssociation pattern="*.qrc" type="RESOURCES" /> | ||
549 | 329 | </FiletypeAssociations> | ||
550 | 330 | </Project> | ||
551 | 331 | \ No newline at end of file | 0 | \ No newline at end of file |
552 | 332 | 1 | ||
553 | === removed file 'openlp.org 2.0.e4x' | |||
554 | --- openlp.org 2.0.e4x 2008-11-03 19:32:54 +0000 | |||
555 | +++ openlp.org 2.0.e4x 1970-01-01 00:00:00 +0000 | |||
556 | @@ -1,45 +0,0 @@ | |||
557 | 1 | SOURCES = openlp/theme/test/test_theme.py \ | ||
558 | 2 | openlp/theme/__init__.py \ | ||
559 | 3 | openlp/theme/theme.py \ | ||
560 | 4 | openlp/controls/__init__.py \ | ||
561 | 5 | openlp/core/test/test_render_theme.py \ | ||
562 | 6 | openlp/core/test/test_render.py \ | ||
563 | 7 | openlp/core/interpolate.py \ | ||
564 | 8 | openlp/core/__init__.py \ | ||
565 | 9 | openlp/core/render.py \ | ||
566 | 10 | openlp/ui/__init__.py \ | ||
567 | 11 | openlp/ui/forms/__init__.py \ | ||
568 | 12 | openlp/__init__.py \ | ||
569 | 13 | openlp/utils/ConfigHelper.py \ | ||
570 | 14 | openlp/utils/__init__.py \ | ||
571 | 15 | demo.py \ | ||
572 | 16 | openlp/core/settingsmanager.py \ | ||
573 | 17 | openlp/resources/openlp_rc.py \ | ||
574 | 18 | openlp/resources/__init__.py \ | ||
575 | 19 | openlp/ui/forms/about.py \ | ||
576 | 20 | openlp/ui/forms/mainwindow.py \ | ||
577 | 21 | openlp/core/plugin.py \ | ||
578 | 22 | openlp/core/xmlrootclass.py \ | ||
579 | 23 | openlp/song/__init__.py \ | ||
580 | 24 | openlp/song/song.py \ | ||
581 | 25 | openlp/song/test/test_song_opensong.py \ | ||
582 | 26 | openlp/song/test/test_song_basic.py \ | ||
583 | 27 | openlp/song/test/test_song_text.py \ | ||
584 | 28 | openlp/plugins/biblemanager/__init__.py \ | ||
585 | 29 | openlp/plugins/biblemanager/BibleDBImpl.py \ | ||
586 | 30 | openlp/plugins/biblemanager/BibleManager.py \ | ||
587 | 31 | openlp/plugins/biblemanager/BibleHTTPImpl.py \ | ||
588 | 32 | openlp/plugins/biblemanager/test/__init__.py \ | ||
589 | 33 | openlp/plugins/biblemanager/test/test_bibleManager.py | ||
590 | 34 | |||
591 | 35 | FORMS = openlp/resources/forms/mainwindow.ui \ | ||
592 | 36 | openlp/resources/forms/settings.ui \ | ||
593 | 37 | openlp/resources/forms/themewizard.ui \ | ||
594 | 38 | openlp/resources/forms/about.ui \ | ||
595 | 39 | openlp/resources/forms/editsongform.ui \ | ||
596 | 40 | openlp/resources/forms/alertform.ui \ | ||
597 | 41 | openlp/resources/forms/openlpimportform.ui \ | ||
598 | 42 | openlp/resources/forms/openlpexportform.ui | ||
599 | 43 | |||
600 | 44 | TRANSLATIONS = openlp_en.ts | ||
601 | 45 | |||
602 | 46 | 0 | ||
603 | === modified file 'openlp.pyw' | |||
604 | --- openlp.pyw 2009-05-01 11:50:09 +0000 | |||
605 | +++ openlp.pyw 2009-05-04 13:48:12 +0000 | |||
606 | @@ -27,7 +27,7 @@ | |||
607 | 27 | 27 | ||
608 | 28 | logging.basicConfig(level=logging.DEBUG, | 28 | logging.basicConfig(level=logging.DEBUG, |
609 | 29 | format=u'%(asctime)s %(name)-12s %(levelname)-8s %(message)s', | 29 | format=u'%(asctime)s %(name)-12s %(levelname)-8s %(message)s', |
611 | 30 | datefmt=u'%m-%d %H:%M', | 30 | datefmt=u'%m-%d %H:%M:%S', |
612 | 31 | filename=u'openlp.log', | 31 | filename=u'openlp.log', |
613 | 32 | filemode=u'w') | 32 | filemode=u'w') |
614 | 33 | 33 | ||
615 | 34 | 34 | ||
616 | === modified file 'openlp/core/lib/renderer.py' | |||
617 | --- openlp/core/lib/renderer.py 2009-05-01 05:02:53 +0000 | |||
618 | +++ openlp/core/lib/renderer.py 2009-05-04 13:48:12 +0000 | |||
619 | @@ -114,7 +114,6 @@ | |||
620 | 114 | 114 | ||
621 | 115 | def render_screen(self, screennum): | 115 | def render_screen(self, screennum): |
622 | 116 | log.debug(u'render screen\n %s %s ', screennum, self.words[screennum]) | 116 | log.debug(u'render screen\n %s %s ', screennum, self.words[screennum]) |
623 | 117 | import time | ||
624 | 118 | t=0.0 | 117 | t=0.0 |
625 | 119 | words=self.words[screennum] | 118 | words=self.words[screennum] |
626 | 120 | retval=self._render_lines(words) | 119 | retval=self._render_lines(words) |
627 | @@ -173,7 +172,6 @@ | |||
628 | 173 | else: | 172 | else: |
629 | 174 | p.fillRect(self._paint.rect(), QtGui.QColor(u'#000000')) | 173 | p.fillRect(self._paint.rect(), QtGui.QColor(u'#000000')) |
630 | 175 | p.end() | 174 | p.end() |
631 | 176 | log.debug(u'render background done') | ||
632 | 177 | 175 | ||
633 | 178 | def split_set_of_lines(self, lines, footer): | 176 | def split_set_of_lines(self, lines, footer): |
634 | 179 | 177 | ||
635 | @@ -252,7 +250,7 @@ | |||
636 | 252 | 250 | ||
637 | 253 | def render_lines(self, lines, footer_lines=None): | 251 | def render_lines(self, lines, footer_lines=None): |
638 | 254 | """render a set of lines according to the theme, return bounding box""" | 252 | """render a set of lines according to the theme, return bounding box""" |
640 | 255 | #log.debug(u'_render_lines %s', lines) | 253 | log.debug(u'_render_lines %s', lines) |
641 | 256 | 254 | ||
642 | 257 | bbox=self._render_lines_unaligned(lines, False) # Main font | 255 | bbox=self._render_lines_unaligned(lines, False) # Main font |
643 | 258 | if footer_lines is not None: | 256 | if footer_lines is not None: |
644 | @@ -264,11 +262,8 @@ | |||
645 | 264 | bbox=self._render_lines_unaligned(lines, False, (x, y)) | 262 | bbox=self._render_lines_unaligned(lines, False, (x, y)) |
646 | 265 | 263 | ||
647 | 266 | if footer_lines is not None: | 264 | if footer_lines is not None: |
648 | 267 | #x, y = self._correctAlignment(self._rect_footer, bbox1) | ||
649 | 268 | bbox=self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) ) | 265 | bbox=self._render_lines_unaligned(footer_lines, True, (self._rect_footer.left(), self._rect_footer.top()) ) |
650 | 269 | 266 | ||
651 | 270 | log.debug(u'render lines DONE') | ||
652 | 271 | |||
653 | 272 | return bbox | 267 | return bbox |
654 | 273 | 268 | ||
655 | 274 | def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)): | 269 | def _render_lines_unaligned(self, lines, footer, tlcorner=(0,0)): |
656 | @@ -279,7 +274,7 @@ | |||
657 | 279 | than a screenful (eg. by using split_set_of_lines) | 274 | than a screenful (eg. by using split_set_of_lines) |
658 | 280 | 275 | ||
659 | 281 | Returns the bounding box of the text as QRect""" | 276 | Returns the bounding box of the text as QRect""" |
661 | 282 | log.debug(u'render unaligned %s', lines) | 277 | log.debug(u'render lines unaligned %s', lines) |
662 | 283 | x, y=tlcorner | 278 | x, y=tlcorner |
663 | 284 | brx=x | 279 | brx=x |
664 | 285 | bry=y | 280 | bry=y |
665 | @@ -298,7 +293,7 @@ | |||
666 | 298 | p.setPen(QtGui.QPen(QtGui.QColor(0,0,255))) | 293 | p.setPen(QtGui.QPen(QtGui.QColor(0,0,255))) |
667 | 299 | p.drawRect(retval) | 294 | p.drawRect(retval) |
668 | 300 | p.end() | 295 | p.end() |
670 | 301 | log.debug(u'render unaligned DONE') | 296 | |
671 | 302 | 297 | ||
672 | 303 | return retval | 298 | return retval |
673 | 304 | 299 | ||
674 | @@ -410,7 +405,7 @@ | |||
675 | 410 | 405 | ||
676 | 411 | return width and height of text as a tuple (w,h)""" | 406 | return width and height of text as a tuple (w,h)""" |
677 | 412 | # setup defaults | 407 | # setup defaults |
679 | 413 | #log.debug(u"_get_extent_and_render %s %s %s ", [line], tlcorner, draw) | 408 | log.debug(u'_get_extent_and_render %s %s %s ', [line], tlcorner, draw) |
680 | 414 | p=QtGui.QPainter() | 409 | p=QtGui.QPainter() |
681 | 415 | p.begin(self._paint) | 410 | p.begin(self._paint) |
682 | 416 | # 'twould be more efficient to set this once when theme changes | 411 | # 'twould be more efficient to set this once when theme changes |
683 | 417 | 412 | ||
684 | === modified file 'openlp/core/lib/rendermanager.py' | |||
685 | --- openlp/core/lib/rendermanager.py 2009-05-02 11:16:08 +0000 | |||
686 | +++ openlp/core/lib/rendermanager.py 2009-05-04 13:48:12 +0000 | |||
687 | @@ -18,6 +18,7 @@ | |||
688 | 18 | Place, Suite 330, Boston, MA 02111-1307 USA | 18 | Place, Suite 330, Boston, MA 02111-1307 USA |
689 | 19 | """ | 19 | """ |
690 | 20 | import logging | 20 | import logging |
691 | 21 | import time | ||
692 | 21 | import os, os.path | 22 | import os, os.path |
693 | 22 | import sys | 23 | import sys |
694 | 23 | from PyQt4 import QtGui, QtCore, Qt | 24 | from PyQt4 import QtGui, QtCore, Qt |
695 | @@ -41,21 +42,20 @@ | |||
696 | 41 | self.current_display = 0 | 42 | self.current_display = 0 |
697 | 42 | self.renderer = Renderer(None) | 43 | self.renderer = Renderer(None) |
698 | 43 | self.calculate_default(self.screen_list[self.current_display]['size']) | 44 | self.calculate_default(self.screen_list[self.current_display]['size']) |
699 | 44 | self.frame = None | ||
700 | 45 | 45 | ||
701 | 46 | def set_override_theme(self, theme): | 46 | def set_override_theme(self, theme): |
703 | 47 | log.debug("set override theme to %s", theme) | 47 | log.debug(u'set override theme to %s', theme) |
704 | 48 | if theme is not None: | 48 | if theme is not None: |
705 | 49 | self.theme = theme | 49 | self.theme = theme |
706 | 50 | else: | 50 | else: |
707 | 51 | self.theme = self.default_theme | 51 | self.theme = self.default_theme |
709 | 52 | log.debug("theme is now %s", self.theme) | 52 | log.debug(u'theme is now %s', self.theme) |
710 | 53 | self.themedata = self.theme_manager.getThemeData(self.theme) | 53 | self.themedata = self.theme_manager.getThemeData(self.theme) |
711 | 54 | self.renderer.set_theme(self.themedata) | 54 | self.renderer.set_theme(self.themedata) |
712 | 55 | self.build_text_rectangle(self.themedata) | 55 | self.build_text_rectangle(self.themedata) |
713 | 56 | 56 | ||
714 | 57 | def build_text_rectangle(self, theme): | 57 | def build_text_rectangle(self, theme): |
716 | 58 | 58 | log.debug(u'build_text_rectangle ') | |
717 | 59 | main_rect = None | 59 | main_rect = None |
718 | 60 | footer_rect = None | 60 | footer_rect = None |
719 | 61 | 61 | ||
720 | @@ -74,6 +74,7 @@ | |||
721 | 74 | self.renderer.set_text_rectangle(main_rect,footer_rect) | 74 | self.renderer.set_text_rectangle(main_rect,footer_rect) |
722 | 75 | 75 | ||
723 | 76 | def generate_preview(self, themedata): | 76 | def generate_preview(self, themedata): |
724 | 77 | log.debug(u'generate preview ') | ||
725 | 77 | self.calculate_default(QtCore.QSize(800,600)) | 78 | self.calculate_default(QtCore.QSize(800,600)) |
726 | 78 | self.renderer.set_theme(themedata) | 79 | self.renderer.set_theme(themedata) |
727 | 79 | self.build_text_rectangle(themedata) | 80 | self.build_text_rectangle(themedata) |
728 | @@ -94,25 +95,23 @@ | |||
729 | 94 | return frame | 95 | return frame |
730 | 95 | 96 | ||
731 | 96 | def format_slide(self, words, footer): | 97 | def format_slide(self, words, footer): |
735 | 97 | self.calculate_default(QtCore.QSize(800,600)) | 98 | log.debug(u'format slide') |
736 | 98 | frame = QtGui.QPixmap(self.width, self.height) | 99 | self.calculate_default(self.screen_list[self.current_display]['size']) |
737 | 99 | self.renderer.set_paint_dest(frame) | 100 | self.renderer.set_paint_dest(QtGui.QPixmap(self.width, self.height)) |
738 | 100 | return self.renderer.format_slide(words, footer) | 101 | return self.renderer.format_slide(words, footer) |
739 | 101 | 102 | ||
743 | 102 | def generate_slide(self,main_text, footer_text, preview=True): | 103 | def generate_slide(self,main_text, footer_text): |
744 | 103 | if preview == True: | 104 | log.debug(u'generate slide') |
745 | 104 | self.calculate_default(QtCore.QSize(800,600)) | 105 | self.calculate_default(self.screen_list[self.current_display]['size']) |
746 | 105 | 106 | ||
747 | 106 | frame = QtGui.QPixmap(self.width, self.height) | 107 | frame = QtGui.QPixmap(self.width, self.height) |
748 | 107 | self.renderer.set_paint_dest(frame) | 108 | self.renderer.set_paint_dest(frame) |
749 | 108 | |||
750 | 109 | answer=self.renderer.render_lines(main_text, footer_text) | 109 | answer=self.renderer.render_lines(main_text, footer_text) |
751 | 110 | return frame | 110 | return frame |
752 | 111 | 111 | ||
753 | 112 | def calculate_default(self, screen): | 112 | def calculate_default(self, screen): |
754 | 113 | log.debug(u'calculate default %s' , screen) | ||
755 | 113 | self.width = screen.width() | 114 | self.width = screen.width() |
756 | 114 | self.height = screen.height() | 115 | self.height = screen.height() |
757 | 116 | log.debug(u'calculate default %d,%d' , self.width, self.height) | ||
758 | 115 | self.footer_start = int(self.height*0.95) # 95% is start of footer | 117 | self.footer_start = int(self.height*0.95) # 95% is start of footer |
759 | 116 | #update the rederer frame | ||
760 | 117 | self.frame = QtGui.QPixmap(self.width, self.height) | ||
761 | 118 | self.renderer.set_paint_dest(self.frame) | ||
762 | 119 | 118 | ||
763 | === modified file 'openlp/core/lib/serviceitem.py' | |||
764 | --- openlp/core/lib/serviceitem.py 2009-05-02 18:56:27 +0000 | |||
765 | +++ openlp/core/lib/serviceitem.py 2009-05-04 13:48:12 +0000 | |||
766 | @@ -19,7 +19,8 @@ | |||
767 | 19 | """ | 19 | """ |
768 | 20 | import logging | 20 | import logging |
769 | 21 | import types | 21 | import types |
771 | 22 | from PyQt4 import QtCore, QtGui | 22 | import time |
772 | 23 | |||
773 | 23 | from PyQt4.QtCore import * | 24 | from PyQt4.QtCore import * |
774 | 24 | from PyQt4.QtGui import * | 25 | from PyQt4.QtGui import * |
775 | 25 | 26 | ||
776 | @@ -51,34 +52,34 @@ | |||
777 | 51 | 52 | ||
778 | 52 | def addIcon(self, icon): | 53 | def addIcon(self, icon): |
779 | 53 | ButtonIcon = None | 54 | ButtonIcon = None |
781 | 54 | if type(icon) is QtGui.QIcon: | 55 | if type(icon) is QIcon: |
782 | 55 | ButtonIcon = icon | 56 | ButtonIcon = icon |
783 | 56 | elif type(icon) is types.StringType or type(icon) is types.UnicodeType: | 57 | elif type(icon) is types.StringType or type(icon) is types.UnicodeType: |
785 | 57 | ButtonIcon = QtGui.QIcon() | 58 | ButtonIcon = QIcon() |
786 | 58 | if icon.startswith(u':/'): | 59 | if icon.startswith(u':/'): |
789 | 59 | ButtonIcon.addPixmap(QtGui.QPixmap(icon), QtGui.QIcon.Normal, | 60 | ButtonIcon.addPixmap(QPixmap(icon), QIcon.Normal, |
790 | 60 | QtGui.QIcon.Off) | 61 | QIcon.Off) |
791 | 61 | else: | 62 | else: |
794 | 62 | ButtonIcon.addPixmap(QtGui.QPixmap.fromImage(QtGui.QImage(icon)), | 63 | ButtonIcon.addPixmap(QPixmap.fromImage(QImage(icon)), |
795 | 63 | QtGui.QIcon.Normal, QtGui.QIcon.Off) | 64 | QIcon.Normal, QIcon.Off) |
796 | 64 | self.iconic_representation = ButtonIcon | 65 | self.iconic_representation = ButtonIcon |
797 | 65 | 66 | ||
798 | 66 | def render(self): | 67 | def render(self): |
799 | 67 | """ | 68 | """ |
802 | 68 | The render method is what the plugin uses to render it's meda to the | 69 | The render method is what renders the frames for the screen. |
801 | 69 | screen. | ||
803 | 70 | """ | 70 | """ |
804 | 71 | log.debug(u'Render called') | 71 | log.debug(u'Render called') |
805 | 72 | if self.theme == None: | 72 | if self.theme == None: |
806 | 73 | self.render_manager.set_override_theme(None) | 73 | self.render_manager.set_override_theme(None) |
807 | 74 | else: | 74 | else: |
808 | 75 | self.render_manager.set_override_theme(self.theme) | 75 | self.render_manager.set_override_theme(self.theme) |
810 | 76 | 76 | log.debug(u'Formatting slides') | |
811 | 77 | for slide in self.raw_slides: | 77 | for slide in self.raw_slides: |
812 | 78 | self.format_slides.append(self.render_manager.format_slide(slide, False)) | 78 | self.format_slides.append(self.render_manager.format_slide(slide, False)) |
813 | 79 | log.debug(u'Rendering slides') | ||
814 | 79 | for slide in self.format_slides: | 80 | for slide in self.format_slides: |
815 | 81 | self.frames.append(self.render_manager.generate_slide(slide, self.raw_footer)) | ||
816 | 80 | 82 | ||
817 | 81 | self.frames.append(self.render_manager.generate_slide(slide, self.raw_footer, False)) | ||
818 | 82 | 83 | ||
819 | 83 | def get_parent_node(self): | 84 | def get_parent_node(self): |
820 | 84 | """ | 85 | """ |
821 | 85 | 86 | ||
822 | === modified file 'openlp/core/ui/maindisplay.py' | |||
823 | --- openlp/core/ui/maindisplay.py 2009-05-03 07:20:15 +0000 | |||
824 | +++ openlp/core/ui/maindisplay.py 2009-05-04 13:51:56 +0000 | |||
825 | @@ -29,6 +29,9 @@ | |||
826 | 29 | self.setWindowTitle(u'OpenLP Display') | 29 | self.setWindowTitle(u'OpenLP Display') |
827 | 30 | self.screens = screens | 30 | self.screens = screens |
828 | 31 | self.display = QtGui.QLabel(self) | 31 | self.display = QtGui.QLabel(self) |
829 | 32 | self.display.setScaledContents(True) | ||
830 | 33 | self.displayBlank = False | ||
831 | 34 | self.blankFrame= None | ||
832 | 32 | 35 | ||
833 | 33 | def setup(self, screenNumber): | 36 | def setup(self, screenNumber): |
834 | 34 | """ | 37 | """ |
835 | @@ -51,8 +54,24 @@ | |||
836 | 51 | else: | 54 | else: |
837 | 52 | self.showMinimized() | 55 | self.showMinimized() |
838 | 53 | 56 | ||
839 | 57 | painter=QtGui.QPainter() | ||
840 | 58 | self.blankFrame = QtGui.QPixmap(800, 600) | ||
841 | 59 | painter.begin(self.blankFrame) | ||
842 | 60 | painter.fillRect(self.blankFrame.rect(), QtGui.QColor(u'#000000')) | ||
843 | 61 | |||
844 | 54 | def frameView(self, frame): | 62 | def frameView(self, frame): |
846 | 55 | self.display.setPixmap(frame) | 63 | if self.displayBlank == False: |
847 | 64 | self.display.setPixmap(frame) | ||
848 | 65 | self.frame = frame | ||
849 | 66 | |||
850 | 67 | def blankDisplay(self): | ||
851 | 68 | if self.displayBlank == False: | ||
852 | 69 | self.displayBlank = True | ||
853 | 70 | self.display.setPixmap(self.blankFrame) | ||
854 | 71 | else: | ||
855 | 72 | self.displayBlank = False | ||
856 | 73 | self.frameView(self.frame) | ||
857 | 74 | |||
858 | 56 | 75 | ||
859 | 57 | def kill(self): | 76 | def kill(self): |
860 | 58 | pass | 77 | pass |
861 | 59 | 78 | ||
862 | === modified file 'openlp/core/ui/mainwindow.py' | |||
863 | --- openlp/core/ui/mainwindow.py 2009-05-03 07:20:15 +0000 | |||
864 | +++ openlp/core/ui/mainwindow.py 2009-05-04 08:15:48 +0000 | |||
865 | @@ -97,8 +97,6 @@ | |||
866 | 97 | 97 | ||
867 | 98 | # Initialise SlideControllers | 98 | # Initialise SlideControllers |
868 | 99 | log.info(u'Set Up SlideControllers') | 99 | log.info(u'Set Up SlideControllers') |
869 | 100 | self.PreviewController.isLive = False | ||
870 | 101 | self.LiveController.isLive = True | ||
871 | 102 | self.LiveController.mainDisplay = self.main_display | 100 | self.LiveController.mainDisplay = self.main_display |
872 | 103 | 101 | ||
873 | 104 | def setupUi(self): | 102 | def setupUi(self): |
874 | @@ -130,8 +128,8 @@ | |||
875 | 130 | self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal) | 128 | self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal) |
876 | 131 | self.ControlSplitter.setObjectName(u'ControlSplitter') | 129 | self.ControlSplitter.setObjectName(u'ControlSplitter') |
877 | 132 | self.MainContentLayout.addWidget(self.ControlSplitter) | 130 | self.MainContentLayout.addWidget(self.ControlSplitter) |
880 | 133 | self.PreviewController = SlideController(self.ControlSplitter) | 131 | self.PreviewController = SlideController(self.ControlSplitter, False) |
881 | 134 | self.LiveController = SlideController(self.ControlSplitter) | 132 | self.LiveController = SlideController(self.ControlSplitter, True) |
882 | 135 | self.MenuBar = QtGui.QMenuBar(self.main_window) | 133 | self.MenuBar = QtGui.QMenuBar(self.main_window) |
883 | 136 | self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27)) | 134 | self.MenuBar.setGeometry(QtCore.QRect(0, 0, 1087, 27)) |
884 | 137 | self.MenuBar.setObjectName(u'MenuBar') | 135 | self.MenuBar.setObjectName(u'MenuBar') |
885 | @@ -296,10 +294,10 @@ | |||
886 | 296 | QtGui.QIcon.Normal, QtGui.QIcon.Off) | 294 | QtGui.QIcon.Normal, QtGui.QIcon.Off) |
887 | 297 | self.ToolsAddToolItem.setIcon(AddToolIcon) | 295 | self.ToolsAddToolItem.setIcon(AddToolIcon) |
888 | 298 | self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem') | 296 | self.ToolsAddToolItem.setObjectName(u'ToolsAddToolItem') |
893 | 299 | self.action_Preview_Pane = QtGui.QAction(self.main_window) | 297 | self.action_Preview_Panel = QtGui.QAction(self.main_window) |
894 | 300 | self.action_Preview_Pane.setCheckable(True) | 298 | self.action_Preview_Panel.setCheckable(True) |
895 | 301 | self.action_Preview_Pane.setChecked(True) | 299 | self.action_Preview_Panel.setChecked(True) |
896 | 302 | self.action_Preview_Pane.setObjectName(u'action_Preview_Pane') | 300 | self.action_Preview_Panel.setObjectName(u'action_Preview_Panel') |
897 | 303 | self.ModeLiveItem = QtGui.QAction(self.main_window) | 301 | self.ModeLiveItem = QtGui.QAction(self.main_window) |
898 | 304 | self.ModeLiveItem.setObjectName(u'ModeLiveItem') | 302 | self.ModeLiveItem.setObjectName(u'ModeLiveItem') |
899 | 305 | self.FileImportMenu.addAction(self.ImportThemeItem) | 303 | self.FileImportMenu.addAction(self.ImportThemeItem) |
900 | @@ -322,7 +320,7 @@ | |||
901 | 322 | self.OptionsViewMenu.addAction(self.ViewServiceManagerItem) | 320 | self.OptionsViewMenu.addAction(self.ViewServiceManagerItem) |
902 | 323 | self.OptionsViewMenu.addAction(self.ViewThemeManagerItem) | 321 | self.OptionsViewMenu.addAction(self.ViewThemeManagerItem) |
903 | 324 | self.OptionsViewMenu.addSeparator() | 322 | self.OptionsViewMenu.addSeparator() |
905 | 325 | self.OptionsViewMenu.addAction(self.action_Preview_Pane) | 323 | self.OptionsViewMenu.addAction(self.action_Preview_Panel) |
906 | 326 | self.OptionsLanguageMenu.addAction(self.LanguageEnglishItem) | 324 | self.OptionsLanguageMenu.addAction(self.LanguageEnglishItem) |
907 | 327 | self.OptionsLanguageMenu.addSeparator() | 325 | self.OptionsLanguageMenu.addSeparator() |
908 | 328 | self.OptionsLanguageMenu.addAction(self.LanguageTranslateItem) | 326 | self.OptionsLanguageMenu.addAction(self.LanguageTranslateItem) |
909 | @@ -353,8 +351,8 @@ | |||
910 | 353 | QtCore.SIGNAL(u'triggered(bool)'), self.ServiceManagerDock.setVisible) | 351 | QtCore.SIGNAL(u'triggered(bool)'), self.ServiceManagerDock.setVisible) |
911 | 354 | QtCore.QObject.connect(self.ViewThemeManagerItem, | 352 | QtCore.QObject.connect(self.ViewThemeManagerItem, |
912 | 355 | QtCore.SIGNAL(u'triggered(bool)'), self.ThemeManagerDock.setVisible) | 353 | QtCore.SIGNAL(u'triggered(bool)'), self.ThemeManagerDock.setVisible) |
915 | 356 | QtCore.QObject.connect(self.action_Preview_Pane, | 354 | QtCore.QObject.connect(self.action_Preview_Panel, |
916 | 357 | QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Pane.setVisible) | 355 | QtCore.SIGNAL(u'toggled(bool)'), self.PreviewController.Panel.setVisible) |
917 | 358 | QtCore.QObject.connect(self.MediaManagerDock, | 356 | QtCore.QObject.connect(self.MediaManagerDock, |
918 | 359 | QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked) | 357 | QtCore.SIGNAL(u'visibilityChanged(bool)'), self.ViewMediaManagerItem.setChecked) |
919 | 360 | QtCore.QObject.connect(self.ServiceManagerDock, | 358 | QtCore.QObject.connect(self.ServiceManagerDock, |
920 | @@ -451,7 +449,7 @@ | |||
921 | 451 | self.LanguageEnglishItem.setStatusTip(translate(u'main_window', u'Set the interface language to English')) | 449 | self.LanguageEnglishItem.setStatusTip(translate(u'main_window', u'Set the interface language to English')) |
922 | 452 | self.ToolsAddToolItem.setText(translate(u'main_window', u'&Add Tool...')) | 450 | self.ToolsAddToolItem.setText(translate(u'main_window', u'&Add Tool...')) |
923 | 453 | self.ToolsAddToolItem.setStatusTip(translate(u'main_window', u'Add an application to the list of tools')) | 451 | self.ToolsAddToolItem.setStatusTip(translate(u'main_window', u'Add an application to the list of tools')) |
925 | 454 | self.action_Preview_Pane.setText(translate(u'main_window', u'&Preview Pane')) | 452 | self.action_Preview_Panel.setText(translate(u'main_window', u'&Preview Pane')) |
926 | 455 | self.ModeLiveItem.setText(translate(u'main_window', u'&Live')) | 453 | self.ModeLiveItem.setText(translate(u'main_window', u'&Live')) |
927 | 456 | 454 | ||
928 | 457 | def show(self): | 455 | def show(self): |
929 | 458 | 456 | ||
930 | === modified file 'openlp/core/ui/servicemanager.py' | |||
931 | --- openlp/core/ui/servicemanager.py 2009-05-02 18:56:27 +0000 | |||
932 | +++ openlp/core/ui/servicemanager.py 2009-05-04 08:15:48 +0000 | |||
933 | @@ -21,15 +21,16 @@ | |||
934 | 21 | 21 | ||
935 | 22 | from time import sleep | 22 | from time import sleep |
936 | 23 | from copy import deepcopy | 23 | from copy import deepcopy |
939 | 24 | from PyQt4 import * | 24 | |
938 | 25 | from PyQt4 import QtCore, QtGui | ||
940 | 26 | from PyQt4.QtCore import * | 25 | from PyQt4.QtCore import * |
941 | 27 | from PyQt4.QtGui import * | 26 | from PyQt4.QtGui import * |
942 | 27 | |||
943 | 28 | # from openlp.core.resources import * | 28 | # from openlp.core.resources import * |
944 | 29 | # from openlp.core.ui import AboutForm, AlertForm, SettingsForm, SlideController | 29 | # from openlp.core.ui import AboutForm, AlertForm, SettingsForm, SlideController |
945 | 30 | from openlp.core.lib import OpenLPToolbar | 30 | from openlp.core.lib import OpenLPToolbar |
946 | 31 | from openlp.core.lib import ServiceItem | 31 | from openlp.core.lib import ServiceItem |
947 | 32 | from openlp.core.lib import RenderManager | 32 | from openlp.core.lib import RenderManager |
948 | 33 | from openlp.core import translate | ||
949 | 33 | 34 | ||
950 | 34 | # from openlp.core import PluginManager | 35 | # from openlp.core import PluginManager |
951 | 35 | import logging | 36 | import logging |
952 | @@ -47,6 +48,9 @@ | |||
953 | 47 | self.items=[] | 48 | self.items=[] |
954 | 48 | log.info("Starting") | 49 | log.info("Starting") |
955 | 49 | 50 | ||
956 | 51 | def clearItems(self): | ||
957 | 52 | self.items = [] | ||
958 | 53 | |||
959 | 50 | def columnCount(self, parent): | 54 | def columnCount(self, parent): |
960 | 51 | return 1; # always only a single column (for now) | 55 | return 1; # always only a single column (for now) |
961 | 52 | 56 | ||
962 | @@ -122,33 +126,73 @@ | |||
963 | 122 | def __init__(self, parent): | 126 | def __init__(self, parent): |
964 | 123 | QWidget.__init__(self) | 127 | QWidget.__init__(self) |
965 | 124 | self.parent=parent | 128 | self.parent=parent |
967 | 125 | self.Layout = QtGui.QVBoxLayout(self) | 129 | self.Layout = QVBoxLayout(self) |
968 | 126 | self.Layout.setSpacing(0) | 130 | self.Layout.setSpacing(0) |
969 | 127 | self.Layout.setMargin(0) | 131 | self.Layout.setMargin(0) |
970 | 128 | self.Toolbar = OpenLPToolbar(self) | 132 | self.Toolbar = OpenLPToolbar(self) |
982 | 129 | self.Toolbar.addToolbarButton("Move to top", ":/services/service_top.png") | 133 | self.Toolbar.addToolbarButton("Move to top", ":/services/service_top.png", |
983 | 130 | self.Toolbar.addToolbarButton("Move up", ":/services/service_up.png") | 134 | translate(u'ServiceManager', u'Move to start'), self.onServiceTop) |
984 | 131 | self.Toolbar.addToolbarButton("Move down", ":/services/service_down.png") | 135 | self.Toolbar.addToolbarButton("Move up", ":/services/service_up.png", |
985 | 132 | self.Toolbar.addToolbarButton("Move to bottom", ":/services/service_bottom.png") | 136 | translate(u'ServiceManager', u'Move up order'), self.onServiceUp) |
986 | 133 | self.Toolbar.addSeparator() | 137 | self.Toolbar.addToolbarButton("Move down", ":/services/service_down.png", |
987 | 134 | self.Toolbar.addToolbarButton("New Service", ":/services/service_new.png") | 138 | translate(u'ServiceManager', u'Move down order'), self.onServiceDown) |
988 | 135 | self.Toolbar.addToolbarButton("Save Service", ":/services/service_save.png") | 139 | self.Toolbar.addToolbarButton("Move to bottom", ":/services/service_bottom.png", |
989 | 136 | self.Toolbar.addSeparator() | 140 | translate(u'ServiceManager', u'Move to end'), self.onServiceEnd) |
990 | 137 | self.ThemeComboBox = QtGui.QComboBox(self.Toolbar) | 141 | self.Toolbar.addSeparator() |
991 | 138 | self.ThemeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents) | 142 | self.Toolbar.addToolbarButton("New Service", ":/services/service_new.png", |
992 | 139 | self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar) | 143 | translate(u'ServiceManager', u'Create a new Service'), self.onNewService) |
993 | 144 | self.Toolbar.addToolbarButton("Delete From Service", ":/services/service_delete.png", | ||
994 | 145 | translate(u'ServiceManager', u'Delete From Service'), self.onDeleteFromService) | ||
995 | 146 | self.Toolbar.addSeparator() | ||
996 | 147 | self.Toolbar.addToolbarButton("Save Service", ":/services/service_save.png", | ||
997 | 148 | translate(u'ServiceManager', u'Save Service'), self.onSaveService) | ||
998 | 149 | self.Toolbar.addToolbarButton("Load Service", ":/services/service_open.png", | ||
999 | 150 | translate(u'ServiceManager', u'Load Existing'), self.onLoadService) | ||
1000 | 151 | |||
1001 | 152 | self.Toolbar.addSeparator() | ||
1002 | 153 | self.ThemeComboBox = QComboBox(self.Toolbar) | ||
1003 | 154 | self.ThemeComboBox.setSizeAdjustPolicy(QComboBox.AdjustToContents) | ||
1004 | 155 | self.ThemeWidget = QWidgetAction(self.Toolbar) | ||
1005 | 140 | self.ThemeWidget.setDefaultWidget(self.ThemeComboBox) | 156 | self.ThemeWidget.setDefaultWidget(self.ThemeComboBox) |
1006 | 141 | self.Toolbar.addAction(self.ThemeWidget) | 157 | self.Toolbar.addAction(self.ThemeWidget) |
1007 | 142 | 158 | ||
1008 | 143 | self.Layout.addWidget(self.Toolbar) | 159 | self.Layout.addWidget(self.Toolbar) |
1009 | 144 | 160 | ||
1011 | 145 | self.TreeView = QtGui.QTreeView(self) | 161 | self.TreeView = QTreeView(self) |
1012 | 146 | self.service_data=ServiceData() | 162 | self.service_data=ServiceData() |
1013 | 147 | self.TreeView.setModel(self.service_data) | 163 | self.TreeView.setModel(self.service_data) |
1014 | 164 | self.TreeView.setAlternatingRowColors(True) | ||
1015 | 148 | self.Layout.addWidget(self.TreeView) | 165 | self.Layout.addWidget(self.TreeView) |
1016 | 149 | 166 | ||
1019 | 150 | QtCore.QObject.connect(self.ThemeComboBox, | 167 | QObject.connect(self.ThemeComboBox, |
1020 | 151 | QtCore.SIGNAL("activated(int)"), self.onThemeComboBoxSelected) | 168 | SIGNAL("activated(int)"), self.onThemeComboBoxSelected) |
1021 | 169 | |||
1022 | 170 | def onServiceTop(self): | ||
1023 | 171 | pass | ||
1024 | 172 | |||
1025 | 173 | def onServiceUp(self): | ||
1026 | 174 | pass | ||
1027 | 175 | |||
1028 | 176 | def onServiceDown(self): | ||
1029 | 177 | pass | ||
1030 | 178 | |||
1031 | 179 | def onServiceEnd(self): | ||
1032 | 180 | pass | ||
1033 | 181 | |||
1034 | 182 | def onNewService(self): | ||
1035 | 183 | self.service_data.clearItems() | ||
1036 | 184 | |||
1037 | 185 | def onDeleteFromService(self): | ||
1038 | 186 | pass | ||
1039 | 187 | |||
1040 | 188 | def onSaveService(self): | ||
1041 | 189 | Pass | ||
1042 | 190 | |||
1043 | 191 | def onLoadService(self): | ||
1044 | 192 | Pass | ||
1045 | 193 | |||
1046 | 194 | |||
1047 | 195 | |||
1048 | 152 | 196 | ||
1049 | 153 | def onThemeComboBoxSelected(self, currentIndex): | 197 | def onThemeComboBoxSelected(self, currentIndex): |
1050 | 154 | self.renderManager.default_theme = self.ThemeComboBox.currentText() | 198 | self.renderManager.default_theme = self.ThemeComboBox.currentText() |
1051 | 155 | 199 | ||
1052 | === modified file 'openlp/core/ui/slidecontroller.py' | |||
1053 | --- openlp/core/ui/slidecontroller.py 2009-05-03 07:20:15 +0000 | |||
1054 | +++ openlp/core/ui/slidecontroller.py 2009-05-04 13:48:12 +0000 | |||
1055 | @@ -20,10 +20,12 @@ | |||
1056 | 20 | import logging | 20 | import logging |
1057 | 21 | import os | 21 | import os |
1058 | 22 | 22 | ||
1059 | 23 | from PyQt4 import QtCore, QtGui | ||
1060 | 24 | from PyQt4.QtCore import * | 23 | from PyQt4.QtCore import * |
1061 | 25 | from PyQt4.QtGui import * | 24 | from PyQt4.QtGui import * |
1062 | 26 | 25 | ||
1063 | 26 | from openlp.core.lib import OpenLPToolbar | ||
1064 | 27 | from openlp.core import translate | ||
1065 | 28 | |||
1066 | 27 | class SlideData(QAbstractListModel): | 29 | class SlideData(QAbstractListModel): |
1067 | 28 | """ | 30 | """ |
1068 | 29 | Tree of items for an order of Theme. | 31 | Tree of items for an order of Theme. |
1069 | @@ -46,14 +48,14 @@ | |||
1070 | 46 | def columnCount(self, parent): | 48 | def columnCount(self, parent): |
1071 | 47 | return 1 | 49 | return 1 |
1072 | 48 | 50 | ||
1074 | 49 | def rowCount(self, parent): | 51 | def rowCount(self, parent=None): |
1075 | 50 | return len(self.items) | 52 | return len(self.items) |
1076 | 51 | 53 | ||
1077 | 52 | def insertRow(self, row, frame): | 54 | def insertRow(self, row, frame): |
1078 | 53 | self.beginInsertRows(QModelIndex(),row,row) | 55 | self.beginInsertRows(QModelIndex(),row,row) |
1079 | 54 | log.info(u'insert row %d' % row) | 56 | log.info(u'insert row %d' % row) |
1080 | 55 | # create a preview image | 57 | # create a preview image |
1082 | 56 | frame1 = frame.scaled(QtCore.QSize(350,260)) | 58 | frame1 = frame.scaled(QSize(350,260)) |
1083 | 57 | self.items.insert(row,(frame1)) | 59 | self.items.insert(row,(frame1)) |
1084 | 58 | log.info(u'Items: %s' % self.items) | 60 | log.info(u'Items: %s' % self.items) |
1085 | 59 | self.endInsertRows() | 61 | self.endInsertRows() |
1086 | @@ -99,48 +101,112 @@ | |||
1087 | 99 | return filelist | 101 | return filelist |
1088 | 100 | 102 | ||
1089 | 101 | 103 | ||
1091 | 102 | class SlideController(QtGui.QWidget): | 104 | class SlideController(QWidget): |
1092 | 103 | global log | 105 | global log |
1093 | 104 | log=logging.getLogger(u'SlideController') | 106 | log=logging.getLogger(u'SlideController') |
1094 | 105 | 107 | ||
1107 | 106 | def __init__(self, control_splitter): | 108 | def __init__(self, control_splitter, isLive): |
1108 | 107 | QtGui.QWidget.__init__(self) | 109 | QWidget.__init__(self) |
1109 | 108 | self.Pane = QtGui.QWidget(control_splitter) | 110 | self.isLive = isLive |
1110 | 109 | self.Splitter = QtGui.QSplitter(self.Pane) | 111 | self.Panel = QWidget(control_splitter) |
1111 | 110 | self.Splitter.setOrientation(QtCore.Qt.Vertical) | 112 | self.Splitter = QSplitter(self.Panel) |
1112 | 111 | 113 | self.Splitter.setOrientation(Qt.Vertical) | |
1113 | 112 | self.PaneLayout = QtGui.QVBoxLayout(self.Pane) | 114 | |
1114 | 113 | self.PaneLayout.addWidget(self.Splitter) | 115 | self.PanelLayout = QVBoxLayout(self.Panel) |
1115 | 114 | self.PaneLayout.setSpacing(50) | 116 | self.PanelLayout.addWidget(self.Splitter) |
1116 | 115 | self.PaneLayout.setMargin(0) | 117 | self.PanelLayout.setSpacing(50) |
1117 | 116 | 118 | self.PanelLayout.setMargin(0) | |
1118 | 117 | self.Controller = QtGui.QScrollArea(self.Splitter) | 119 | |
1119 | 120 | self.Controller = QScrollArea(self.Splitter) | ||
1120 | 118 | self.Controller.setWidgetResizable(True) | 121 | self.Controller.setWidgetResizable(True) |
1121 | 119 | 122 | ||
1123 | 120 | self.PreviewListView = QtGui.QListView(self.Splitter) | 123 | self.PreviewListView = QListView(self.Splitter) |
1124 | 121 | self.PreviewListView.setAlternatingRowColors(True) | 124 | self.PreviewListView.setAlternatingRowColors(True) |
1125 | 122 | self.PreviewListData = SlideData() | 125 | self.PreviewListData = SlideData() |
1126 | 123 | self.PreviewListView.setModel(self.PreviewListData) | 126 | self.PreviewListView.setModel(self.PreviewListData) |
1127 | 124 | self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536)) | ||
1128 | 125 | 127 | ||
1129 | 128 | self.Controller.setGeometry(QRect(0, 0, 828, 536)) | ||
1130 | 126 | self.Controller.setWidget(self.PreviewListView) | 129 | self.Controller.setWidget(self.PreviewListView) |
1131 | 127 | 130 | ||
1134 | 128 | self.SlidePreview = QtGui.QLabel(self.Splitter) | 131 | self.Toolbar = OpenLPToolbar(self.Splitter) |
1135 | 129 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) | 132 | sizeToolbarPolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) |
1136 | 133 | sizeToolbarPolicy.setHorizontalStretch(0) | ||
1137 | 134 | sizeToolbarPolicy.setVerticalStretch(0) | ||
1138 | 135 | sizeToolbarPolicy.setHeightForWidth(self.Toolbar.sizePolicy().hasHeightForWidth()) | ||
1139 | 136 | |||
1140 | 137 | if self.isLive: | ||
1141 | 138 | self.Toolbar.addToolbarButton("First Slide", ":/slides/slide_first.png", | ||
1142 | 139 | translate(u'SlideController', u'Move to first'), self.onSlideSelectedFirst) | ||
1143 | 140 | self.Toolbar.addToolbarButton("Last Slide", ":/slides/slide_previous.png", | ||
1144 | 141 | translate(u'SlideController', u'Move to previous'), self.onSlideSelectedPrevious) | ||
1145 | 142 | self.Toolbar.addToolbarButton("First Slide", ":/slides/slide_next.png", | ||
1146 | 143 | translate(u'SlideController', u'Move to next'), self.onSlideSelectedNext) | ||
1147 | 144 | if self.isLive: | ||
1148 | 145 | self.Toolbar.addToolbarButton("Last Slide", ":/slides/slide_last.png", | ||
1149 | 146 | translate(u'SlideController', u'Move to last'), self.onSlideSelectedLast) | ||
1150 | 147 | self.Toolbar.addSeparator() | ||
1151 | 148 | self.Toolbar.addToolbarButton("Close Sscreen", ":/slides/slide_close.png", | ||
1152 | 149 | translate(u'SlideController', u'Close Screen'), self.onBlankScreen) | ||
1153 | 150 | |||
1154 | 151 | self.Toolbar.setSizePolicy(sizeToolbarPolicy) | ||
1155 | 152 | |||
1156 | 153 | self.SlidePreview = QLabel(self.Splitter) | ||
1157 | 154 | sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) | ||
1158 | 130 | sizePolicy.setHorizontalStretch(0) | 155 | sizePolicy.setHorizontalStretch(0) |
1159 | 131 | sizePolicy.setVerticalStretch(0) | 156 | sizePolicy.setVerticalStretch(0) |
1160 | 132 | sizePolicy.setHeightForWidth(self.SlidePreview.sizePolicy().hasHeightForWidth()) | 157 | sizePolicy.setHeightForWidth(self.SlidePreview.sizePolicy().hasHeightForWidth()) |
1161 | 133 | self.SlidePreview.setSizePolicy(sizePolicy) | 158 | self.SlidePreview.setSizePolicy(sizePolicy) |
1165 | 134 | self.SlidePreview.setMinimumSize(QtCore.QSize(250, 190)) | 159 | self.SlidePreview.setMinimumSize(QSize(250, 190)) |
1166 | 135 | self.SlidePreview.setFrameShape(QtGui.QFrame.WinPanel) | 160 | self.SlidePreview.setFrameShape(QFrame.WinPanel) |
1167 | 136 | self.SlidePreview.setFrameShadow(QtGui.QFrame.Sunken) | 161 | self.SlidePreview.setFrameShadow(QFrame.Sunken) |
1168 | 137 | self.SlidePreview.setLineWidth(1) | 162 | self.SlidePreview.setLineWidth(1) |
1169 | 138 | self.SlidePreview.setScaledContents(True) | 163 | self.SlidePreview.setScaledContents(True) |
1170 | 139 | self.SlidePreview.setObjectName("SlidePreview") | 164 | self.SlidePreview.setObjectName("SlidePreview") |
1171 | 140 | 165 | ||
1175 | 141 | QtCore.QObject.connect(self.PreviewListView, | 166 | QObject.connect(self.PreviewListView, |
1176 | 142 | QtCore.SIGNAL("clicked(QModelIndex)"), self.onSlideSelected) | 167 | SIGNAL("clicked(QModelIndex)"), self.onSlideSelected) |
1177 | 143 | 168 | ||
1178 | 169 | def onSlideSelectedFirst(self): | ||
1179 | 170 | row = self.PreviewListData.createIndex(0, 0) | ||
1180 | 171 | if row.isValid(): | ||
1181 | 172 | self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent) | ||
1182 | 173 | self.onSlideSelected(row) | ||
1183 | 174 | |||
1184 | 175 | def onSlideSelectedNext(self): | ||
1185 | 176 | indexes = self.PreviewListView.selectedIndexes() | ||
1186 | 177 | rowNumber = 0 | ||
1187 | 178 | for index in indexes: | ||
1188 | 179 | if index.row() == self.PreviewListData.rowCount() - 1: | ||
1189 | 180 | rowNumber = 0 | ||
1190 | 181 | else: | ||
1191 | 182 | rowNumber = index.row() + 1 | ||
1192 | 183 | row = self.PreviewListData.createIndex(rowNumber , 0) | ||
1193 | 184 | if row.isValid(): | ||
1194 | 185 | self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent) | ||
1195 | 186 | self.onSlideSelected(row) | ||
1196 | 187 | |||
1197 | 188 | |||
1198 | 189 | def onSlideSelectedPrevious(self): | ||
1199 | 190 | indexes = self.PreviewListView.selectedIndexes() | ||
1200 | 191 | rowNumber = 0 | ||
1201 | 192 | for index in indexes: | ||
1202 | 193 | if index.row() == 0: | ||
1203 | 194 | rowNumber = self.PreviewListData.rowCount() - 1 | ||
1204 | 195 | else: | ||
1205 | 196 | rowNumber = index.row() - 1 | ||
1206 | 197 | row = self.PreviewListData.createIndex(rowNumber , 0) | ||
1207 | 198 | if row.isValid(): | ||
1208 | 199 | self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent) | ||
1209 | 200 | self.onSlideSelected(row) | ||
1210 | 201 | |||
1211 | 202 | def onSlideSelectedLast(self): | ||
1212 | 203 | row = self.PreviewListData.createIndex(self.PreviewListData.rowCount() - 1 , 0) | ||
1213 | 204 | if row.isValid(): | ||
1214 | 205 | self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent) | ||
1215 | 206 | self.onSlideSelected(row) | ||
1216 | 207 | |||
1217 | 208 | def onBlankScreen(self): | ||
1218 | 209 | self.mainDisplay.blankDisplay() | ||
1219 | 144 | 210 | ||
1220 | 145 | def onSlideSelected(self, index): | 211 | def onSlideSelected(self, index): |
1221 | 146 | frame = self.PreviewListData.getValue(index) | 212 | frame = self.PreviewListData.getValue(index) |
1222 | @@ -152,11 +218,17 @@ | |||
1223 | 152 | self.mainDisplay.frameView(frame) | 218 | self.mainDisplay.frameView(frame) |
1224 | 153 | 219 | ||
1225 | 154 | def addServiceItem(self, serviceitem): | 220 | def addServiceItem(self, serviceitem): |
1226 | 221 | log.debug(u'addServiceItem') | ||
1227 | 155 | self.serviceitem = serviceitem | 222 | self.serviceitem = serviceitem |
1228 | 156 | self.serviceitem.render() | 223 | self.serviceitem.render() |
1229 | 157 | self.PreviewListData.clearItems() | 224 | self.PreviewListData.clearItems() |
1230 | 158 | for frame in self.serviceitem.frames: | 225 | for frame in self.serviceitem.frames: |
1231 | 159 | self.PreviewListData.addRow(frame) | 226 | self.PreviewListData.addRow(frame) |
1232 | 160 | 227 | ||
1233 | 228 | row = self.PreviewListData.createIndex(0, 0) | ||
1234 | 229 | if row.isValid(): | ||
1235 | 230 | self.PreviewListView.selectionModel().setCurrentIndex(row, QItemSelectionModel.SelectCurrent) | ||
1236 | 231 | self.onSlideSelected(row) | ||
1237 | 232 | |||
1238 | 161 | def render(self): | 233 | def render(self): |
1239 | 162 | pass | 234 | pass |
1240 | 163 | 235 | ||
1241 | === modified file 'openlp/core/ui/thememanager.py' | |||
1242 | --- openlp/core/ui/thememanager.py 2009-05-02 18:56:27 +0000 | |||
1243 | +++ openlp/core/ui/thememanager.py 2009-05-04 08:15:48 +0000 | |||
1244 | @@ -164,12 +164,13 @@ | |||
1245 | 164 | translate(u'ThemeManager', u'Export a theme'), self.onExportTheme) | 164 | translate(u'ThemeManager', u'Export a theme'), self.onExportTheme) |
1246 | 165 | self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar) | 165 | self.ThemeWidget = QtGui.QWidgetAction(self.Toolbar) |
1247 | 166 | self.Layout.addWidget(self.Toolbar) | 166 | self.Layout.addWidget(self.Toolbar) |
1248 | 167 | |||
1249 | 167 | self.ThemeListView = QtGui.QListView(self) | 168 | self.ThemeListView = QtGui.QListView(self) |
1250 | 168 | self.themeData = ThemeData() | 169 | self.themeData = ThemeData() |
1251 | 169 | self.ThemeListView.setModel(self.themeData) | 170 | self.ThemeListView.setModel(self.themeData) |
1252 | 170 | self.ThemeListView.setAlternatingRowColors(True) | 171 | self.ThemeListView.setAlternatingRowColors(True) |
1253 | 171 | self.Layout.addWidget(self.ThemeListView) | 172 | self.Layout.addWidget(self.ThemeListView) |
1255 | 172 | self.ThemeListView.setAlternatingRowColors(True) | 173 | |
1256 | 173 | self.themelist = [] | 174 | self.themelist = [] |
1257 | 174 | self.path = os.path.join(ConfigHelper.get_data_path(), u'themes') | 175 | self.path = os.path.join(ConfigHelper.get_data_path(), u'themes') |
1258 | 175 | self.checkThemesExists(self.path) | 176 | self.checkThemesExists(self.path) |
1259 | 176 | 177 | ||
1260 | === modified file 'openlp/plugins/bibles/lib/mediaitem.py' | |||
1261 | --- openlp/plugins/bibles/lib/mediaitem.py 2009-05-02 18:56:27 +0000 | |||
1262 | +++ openlp/plugins/bibles/lib/mediaitem.py 2009-05-04 08:15:48 +0000 | |||
1263 | @@ -371,10 +371,10 @@ | |||
1264 | 371 | if len(raw_footer) <= 1: | 371 | if len(raw_footer) <= 1: |
1265 | 372 | raw_footer.append(book) | 372 | raw_footer.append(book) |
1266 | 373 | 373 | ||
1271 | 374 | service_item.theme = None | 374 | if len(raw_slides) > 0: |
1272 | 375 | 375 | service_item.theme = None | |
1273 | 376 | service_item.raw_slides = raw_slides | 376 | service_item.raw_slides = raw_slides |
1274 | 377 | service_item.raw_footer = raw_footer | 377 | service_item.raw_footer = raw_footer |
1275 | 378 | 378 | ||
1276 | 379 | def formatVerse(self, old_chapter, chapter, verse, opening, closing): | 379 | def formatVerse(self, old_chapter, chapter, verse, opening, closing): |
1277 | 380 | loc = opening | 380 | loc = opening |
1278 | 381 | 381 | ||
1279 | === modified file 'openlp/plugins/custom/lib/mediaitem.py' | |||
1280 | --- openlp/plugins/custom/lib/mediaitem.py 2009-05-02 18:56:27 +0000 | |||
1281 | +++ openlp/plugins/custom/lib/mediaitem.py 2009-05-04 13:48:12 +0000 | |||
1282 | @@ -187,6 +187,7 @@ | |||
1283 | 187 | self.CustomListData.deleteRow(index) | 187 | self.CustomListData.deleteRow(index) |
1284 | 188 | 188 | ||
1285 | 189 | def onCustomPreviewClick(self): | 189 | def onCustomPreviewClick(self): |
1286 | 190 | log.debug(u'Custom Preview Requested') | ||
1287 | 190 | service_item = ServiceItem(self.parent) | 191 | service_item = ServiceItem(self.parent) |
1288 | 191 | service_item.addIcon( ":/media/media_song.png") | 192 | service_item.addIcon( ":/media/media_song.png") |
1289 | 192 | service_item.render_manager = self.parent.render_manager | 193 | service_item.render_manager = self.parent.render_manager |
1290 | @@ -194,6 +195,7 @@ | |||
1291 | 194 | self.parent.preview_controller.addServiceItem(service_item) | 195 | self.parent.preview_controller.addServiceItem(service_item) |
1292 | 195 | 196 | ||
1293 | 196 | def onCustomLiveClick(self): | 197 | def onCustomLiveClick(self): |
1294 | 198 | log.debug(u'Custom Live Requested') | ||
1295 | 197 | service_item = ServiceItem(self.parent) | 199 | service_item = ServiceItem(self.parent) |
1296 | 198 | service_item.addIcon( ":/media/media_song.png") | 200 | service_item.addIcon( ":/media/media_song.png") |
1297 | 199 | service_item.render_manager = self.parent.render_manager | 201 | service_item.render_manager = self.parent.render_manager |
1298 | @@ -201,6 +203,7 @@ | |||
1299 | 201 | self.parent.live_controller.addServiceItem(service_item) | 203 | self.parent.live_controller.addServiceItem(service_item) |
1300 | 202 | 204 | ||
1301 | 203 | def onCustomAddClick(self): | 205 | def onCustomAddClick(self): |
1302 | 206 | log.debug(u'Custom Add Requested') | ||
1303 | 204 | service_item = ServiceItem(self.parent) | 207 | service_item = ServiceItem(self.parent) |
1304 | 205 | service_item.addIcon( ":/media/media_song.png") | 208 | service_item.addIcon( ":/media/media_song.png") |
1305 | 206 | service_item.render_manager = self.parent.render_manager | 209 | service_item.render_manager = self.parent.render_manager |
1306 | @@ -226,6 +229,7 @@ | |||
1307 | 226 | for verse in verseList: | 229 | for verse in verseList: |
1308 | 227 | raw_slides.append(verse[1]) | 230 | raw_slides.append(verse[1]) |
1309 | 228 | raw_footer.append(title + u' '+ credit) | 231 | raw_footer.append(title + u' '+ credit) |
1313 | 229 | service_item.title = title | 232 | if theme is not None: |
1314 | 230 | service_item.raw_slides = raw_slides | 233 | service_item.title = title |
1315 | 231 | service_item.raw_footer = raw_footer | 234 | service_item.raw_slides = raw_slides |
1316 | 235 | service_item.raw_footer = raw_footer |
Added buttons, paging and screen closure
Added more logging to tray and see why the 4 page screen was slow.
Cleanups and fixes.