Status: | Merged | ||||||||
---|---|---|---|---|---|---|---|---|---|
Merged at revision: | not available | ||||||||
Proposed branch: | lp:~trb143/openlp/bugfixes | ||||||||
Merge into: | lp:openlp | ||||||||
Diff against target: | None lines | ||||||||
To merge this branch: | bzr merge lp:~trb143/openlp/bugfixes | ||||||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Raoul Snyman | Approve | ||
Review via email: mp+9022@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) wrote : | # |
Revision history for this message
Raoul Snyman (raoul-snyman) wrote : | # |
On line 586 of openlp/
Just kidding!
review:
Approve
lp:~trb143/openlp/bugfixes
updated
- 495. By Tim Bentley
-
Fix song editing so it works
Added now images for Song editors
Fix up Alert code so now works.
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'cnvdb.py' (properties changed: -x to +x) | |||
2 | --- cnvdb.py 2009-07-08 06:55:08 +0000 | |||
3 | +++ cnvdb.py 2009-07-19 06:31:08 +0000 | |||
4 | @@ -21,7 +21,7 @@ | |||
5 | 21 | import codecs | 21 | import codecs |
6 | 22 | import sys | 22 | import sys |
7 | 23 | 23 | ||
9 | 24 | def convert_file(self, inname, outname): | 24 | def convert_file(inname, outname): |
10 | 25 | """ | 25 | """ |
11 | 26 | Convert a file from another encoding into UTF-8. | 26 | Convert a file from another encoding into UTF-8. |
12 | 27 | 27 | ||
13 | @@ -35,7 +35,8 @@ | |||
14 | 35 | writefile = codecs.open(outname, 'w', encoding='utf-8') | 35 | writefile = codecs.open(outname, 'w', encoding='utf-8') |
15 | 36 | for line in infile: | 36 | for line in infile: |
16 | 37 | #replace the quotes with quotes | 37 | #replace the quotes with quotes |
18 | 38 | line = line.replace(u'\'\'', u'\'') | 38 | #TODO fix double quotes |
19 | 39 | #line = line.replace(u'\'\'', u'@') | ||
20 | 39 | writefile.write(line) | 40 | writefile.write(line) |
21 | 40 | infile.close() | 41 | infile.close() |
22 | 41 | writefile.close() | 42 | writefile.close() |
23 | 42 | 43 | ||
24 | === modified file 'openlp/core/lib/plugin.py' | |||
25 | --- openlp/core/lib/plugin.py 2009-07-10 13:16:15 +0000 | |||
26 | +++ openlp/core/lib/plugin.py 2009-07-18 05:43:50 +0000 | |||
27 | @@ -243,3 +243,9 @@ | |||
28 | 243 | """ | 243 | """ |
29 | 244 | pass | 244 | pass |
30 | 245 | 245 | ||
31 | 246 | def shutdown(self): | ||
32 | 247 | """ | ||
33 | 248 | Called by the plugin Manager to cleanup things | ||
34 | 249 | """ | ||
35 | 250 | pass | ||
36 | 251 | |||
37 | 246 | 252 | ||
38 | === modified file 'openlp/core/lib/pluginmanager.py' | |||
39 | --- openlp/core/lib/pluginmanager.py 2009-07-10 13:16:15 +0000 | |||
40 | +++ openlp/core/lib/pluginmanager.py 2009-07-18 05:43:50 +0000 | |||
41 | @@ -174,3 +174,10 @@ | |||
42 | 174 | for plugin in self.plugins: | 174 | for plugin in self.plugins: |
43 | 175 | plugin.initialise() | 175 | plugin.initialise() |
44 | 176 | 176 | ||
45 | 177 | def cleanup_plugins(self): | ||
46 | 178 | """ | ||
47 | 179 | Loop through all the plugins and give them an opportunity to | ||
48 | 180 | clean themselves up | ||
49 | 181 | """ | ||
50 | 182 | for plugin in self.plugins: | ||
51 | 183 | plugin.cleanup() | ||
52 | 177 | 184 | ||
53 | === modified file 'openlp/core/resources.py' | |||
54 | --- openlp/core/resources.py 2009-07-03 19:08:21 +0000 | |||
55 | +++ openlp/core/resources.py 2009-07-18 05:43:50 +0000 | |||
56 | @@ -2,7 +2,7 @@ | |||
57 | 2 | 2 | ||
58 | 3 | # Resource object code | 3 | # Resource object code |
59 | 4 | # | 4 | # |
61 | 5 | # Created: Fri Jul 3 19:41:53 2009 | 5 | # Created: Sat Jul 18 06:20:33 2009 |
62 | 6 | # by: The Resource Compiler for PyQt (Qt v4.5.0) | 6 | # by: The Resource Compiler for PyQt (Qt v4.5.0) |
63 | 7 | # | 7 | # |
64 | 8 | # WARNING! All changes made in this file will be lost! | 8 | # WARNING! All changes made in this file will be lost! |
65 | @@ -52405,6 +52405,48 @@ | |||
66 | 52405 | \x1f\x00\xf7\xed\xe4\x0a\x00\x92\x24\x02\x70\x1c\xc7\x3f\xb4\x2c\ | 52405 | \x1f\x00\xf7\xed\xe4\x0a\x00\x92\x24\x02\x70\x1c\xc7\x3f\xb4\x2c\ |
67 | 52406 | \x21\xd5\x80\x04\x87\x89\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ | 52406 | \x21\xd5\x80\x04\x87\x89\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\ |
68 | 52407 | \x60\x82\ | 52407 | \x60\x82\ |
69 | 52408 | \x00\x00\x02\x7c\ | ||
70 | 52409 | \x89\ | ||
71 | 52410 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | ||
72 | 52411 | \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ | ||
73 | 52412 | \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ | ||
74 | 52413 | \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\ | ||
75 | 52414 | \x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ | ||
76 | 52415 | \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ | ||
77 | 52416 | \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xf9\x49\x44\ | ||
78 | 52417 | \x41\x54\x78\xda\x8d\x92\x4d\x6b\x13\x41\x18\xc7\x9f\x79\xd9\x97\ | ||
79 | 52418 | \xec\xa6\xbb\xcd\xdb\x46\x52\x2b\x6d\x4a\x40\x41\xaa\xd6\x82\x07\ | ||
80 | 52419 | \x11\xf2\x05\x04\x11\x85\x7e\x82\xa2\x07\x3d\x79\x11\xbc\xf4\xe2\ | ||
81 | 52420 | \xc1\x8b\x9f\xc0\xb3\x62\x11\xfd\x06\x42\x41\x04\x7b\x10\xa5\x15\ | ||
82 | 52421 | \x84\x46\x0d\x6a\x68\x0c\xd8\xa4\x6c\xb7\x99\x9d\x9d\x19\xc7\x15\ | ||
83 | 52422 | \x2a\x94\x4d\x9b\x1f\x3c\x0c\x3c\x03\xbf\x79\xe6\x3f\x83\x94\x52\ | ||
84 | 52423 | \x30\x8a\xf5\x17\x8f\x97\x28\x21\xdd\x0b\xd7\xee\xbe\x86\x11\x64\ | ||
85 | 52424 | \x0a\xde\x3c\x7d\x74\x66\x38\x64\xef\xc2\x30\xca\x97\xaa\x35\x70\ | ||
86 | 52425 | \x1c\x67\x97\xa8\xf8\xd4\xb9\xab\xb7\x07\x70\x08\x0c\x19\x48\x09\ | ||
87 | 52426 | \xcf\x13\xa9\xf2\x12\x14\x60\xc3\x04\x2f\xa8\x79\xc4\xb4\x5f\x41\ | ||
88 | 52427 | \x06\x14\x32\xc8\xb9\xee\xd4\xf9\xc5\x45\x40\x4e\x19\x84\xfa\x67\ | ||
89 | 52428 | \xfc\xfc\xf3\x5b\x63\x2c\xc1\x8f\xb7\xab\xb9\x4a\xb9\x30\x40\x86\ | ||
90 | 52429 | \x55\xa0\xa6\x0d\xa6\x61\xa5\xfd\xda\x4c\xfd\x3b\x68\x8e\xbd\xc2\ | ||
91 | 52430 | \x16\xab\x70\xcf\x73\x3b\x80\x30\x20\x04\x1a\x05\x4a\x49\x98\xf0\ | ||
92 | 52431 | \x26\x5a\x63\x09\x9a\xcd\x66\xa2\x12\x7e\x1f\x12\x06\x20\x19\x28\ | ||
93 | 52432 | \x1e\xe9\x25\x4a\x08\x52\xf7\xb2\x05\x19\x14\x17\x6e\xac\xb5\xbf\ | ||
94 | 52433 | \xb6\x12\x11\xf5\x41\xc5\x11\x6c\x7c\x5c\x67\xf9\xfa\xe5\xed\xb1\ | ||
95 | 52434 | \x43\x4c\xb1\x0b\xfd\xcd\x4f\x1b\xe5\x98\x09\xc8\x4f\x06\xe9\xf8\ | ||
96 | 52435 | \x63\x4f\x90\x24\x12\x9d\x9c\x3b\x5b\x68\xcc\x5f\x01\xcb\xf5\x21\ | ||
97 | 52436 | \x98\x9e\xad\xeb\x1e\x3e\x56\xd0\x19\x88\x6a\xaf\xb7\xf7\xf0\x77\ | ||
98 | 52437 | \x3f\xdc\x1e\xd2\x8a\xe4\xd4\x87\xe2\xf4\xbc\x32\x4a\x0d\x22\xa5\ | ||
99 | 52438 | \x6c\x31\xc6\x1f\x70\x2e\x82\xcc\x9f\xd8\xed\x0e\x6e\x62\x4c\x9e\ | ||
100 | 52439 | \x39\x2e\xc5\x04\x93\x34\x7d\x8c\xf1\xa1\x0f\xa6\x40\x08\x11\x1b\ | ||
101 | 52440 | \x06\x5d\x32\x4d\xfa\xf2\x40\x30\x64\x9c\x6c\xb5\x7f\xed\x4f\x55\ | ||
102 | 52441 | \x7d\xc3\xb6\x4c\x40\x08\xc1\x28\xf4\x04\x20\xa4\xda\xcd\xd9\x46\ | ||
103 | 52442 | \x60\x99\x94\xa5\x47\x7c\xe9\xf4\xee\x14\x7d\xd7\xd0\x3e\xd0\xc2\ | ||
104 | 52443 | \x23\x4b\xfe\x2d\x29\xbc\x9d\x70\xef\xfa\xc1\x2b\xec\xf4\xc2\xaa\ | ||
105 | 52444 | \x59\x25\x52\x6f\x61\x4a\x31\x10\x9c\x99\x57\x2a\x60\x2c\x86\x30\ | ||
106 | 52445 | \x62\x52\xe7\x34\x77\xa2\xe8\xff\xcf\x60\x65\x65\xd5\x0c\x66\x4a\ | ||
107 | 52446 | \xcd\x4b\x0b\xb3\xb7\x72\xb6\x7d\x5a\x2a\xe1\x4a\x01\xb6\x54\x12\ | ||
108 | 52447 | \x00\xa1\x08\xe9\xb1\xf7\x59\xbc\xf9\xfe\x43\xfb\x09\xe6\x93\x6b\ | ||
109 | 52448 | \xcb\xcb\x17\x39\x68\xfe\x00\x58\x95\xf6\xff\x16\xb1\xc6\xc2\x00\ | ||
110 | 52449 | \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ | ||
111 | 52408 | \x00\x00\x02\x43\ | 52450 | \x00\x00\x02\x43\ |
112 | 52409 | \x89\ | 52451 | \x89\ |
113 | 52410 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | 52452 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ |
114 | @@ -52488,6 +52530,44 @@ | |||
115 | 52488 | \x9c\x62\xb1\x98\x2b\x97\xcb\x93\x00\x42\x25\x11\x09\xec\x46\xd1\ | 52530 | \x9c\x62\xb1\x98\x2b\x97\xcb\x93\x00\x42\x25\x11\x09\xec\x46\xd1\ |
116 | 52489 | \xd9\x1b\x95\x91\x88\xea\x2f\xfb\x5c\xf8\xbd\xf0\xc1\x4d\x21\x00\ | 52531 | \xd9\x1b\x95\x91\x88\xea\x2f\xfb\x5c\xf8\xbd\xf0\xc1\x4d\x21\x00\ |
117 | 52490 | \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ | 52532 | \x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ |
118 | 52533 | \x00\x00\x02\x31\ | ||
119 | 52534 | \x89\ | ||
120 | 52535 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | ||
121 | 52536 | \x00\x00\x10\x00\x00\x00\x10\x08\x06\x00\x00\x00\x1f\xf3\xff\x61\ | ||
122 | 52537 | \x00\x00\x00\x04\x73\x42\x49\x54\x08\x08\x08\x08\x7c\x08\x64\x88\ | ||
123 | 52538 | \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\ | ||
124 | 52539 | \x01\x3a\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\ | ||
125 | 52540 | \x74\x77\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\ | ||
126 | 52541 | \x70\x65\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\xae\x49\x44\ | ||
127 | 52542 | \x41\x54\x78\xda\x8d\x90\xbb\x8e\xd3\x40\x14\x40\xcf\x78\x1e\xb6\ | ||
128 | 52543 | \x43\xd8\x6c\xc4\xa6\x58\x68\xa1\x03\x21\xf1\x05\x20\xa8\x68\xa0\ | ||
129 | 52544 | \xa1\x82\x8e\x6f\x80\x0a\xd1\xd2\xf0\x09\x14\xf0\x1f\x34\xfb\x07\ | ||
130 | 52545 | \x34\x80\x28\x58\x21\x2d\xac\x28\x48\xd8\x0d\x4b\xec\xf8\x31\x97\ | ||
131 | 52546 | \x31\x96\x23\xa2\x18\x96\xd3\xcd\xbd\xd6\xf1\x99\x51\x22\x82\x9a\ | ||
132 | 52547 | \x5c\x79\x71\xde\xcd\x1e\x66\x59\xc6\xf7\xf4\x12\x5c\xbe\xcf\xa9\ | ||
133 | 52548 | \xe4\xf3\x47\xb2\xf7\xe4\xb9\x69\x4f\xfe\xe2\xf5\x9b\xb7\x78\xfc\ | ||
134 | 52549 | \xf4\x19\xff\xc3\xab\xbd\xcf\xbc\x7c\xbd\x7f\x17\x68\x05\x7c\x7b\ | ||
135 | 52550 | \x77\xf4\xf6\xfd\x88\x7b\xb7\x6f\x50\x4f\xae\x31\xb8\xfa\x80\xb2\ | ||
136 | 52551 | \xf6\x14\x95\xd0\xe1\x4c\x14\xce\x9e\x86\xba\x2a\xb1\xe5\x62\x17\ | ||
137 | 52552 | \xc0\xd0\xf2\x66\x7b\x67\xf7\xce\xc1\x74\xc9\x56\x3c\x26\x1d\x4d\ | ||
138 | 52553 | \xb8\x30\xb4\x7c\x99\x2d\xe9\x50\x0a\x46\x36\x62\x51\xb4\x92\x1f\ | ||
139 | 52554 | \xd3\xc3\x83\x4e\xb0\xc2\x57\x15\x3a\x8a\xf0\xd2\xfc\x0d\xce\x9d\ | ||
140 | 52555 | \x8d\x39\xc9\x6b\x3a\x6c\xa8\x88\xa5\x15\x58\x6b\xd9\x14\xf8\x1a\ | ||
141 | 52556 | \xad\x35\x2e\x2c\xf3\x0a\xb6\x12\x4d\xe9\x23\x44\xa0\x41\x80\x41\ | ||
142 | 52557 | \x98\x55\x35\x18\xeb\x36\x05\x22\x82\x09\x05\xb1\x6d\xc7\x45\x0d\ | ||
143 | 52558 | \x3b\xa1\x62\x9e\xad\x2a\xc2\x5e\x85\x4a\x09\x35\x3d\x02\x90\x50\ | ||
144 | 52559 | \x10\x35\x05\x7f\x4c\x60\x98\xe8\x20\x13\x3a\x12\x03\xa6\xef\x0a\ | ||
145 | 52560 | \x11\x60\x8c\x0e\x99\x6e\x4d\x1b\x1b\x85\xf3\x82\xf7\xdd\x83\x2a\ | ||
146 | 52561 | \xac\x8b\x7b\x04\xbf\xf3\x1d\xc3\x34\x59\x13\x28\x25\x24\x4a\x21\ | ||
147 | 52562 | \x1e\x7c\x73\x06\xdc\xa6\xa0\xcd\xda\x1e\x8f\x39\x93\xb6\xcb\x35\ | ||
148 | 52563 | \x79\x10\x40\xa8\x10\x01\x54\x10\xf4\xbc\x81\xd5\x86\x34\x49\x18\ | ||
149 | 52564 | \xc4\x31\x7d\x68\xd5\x08\x42\x09\x82\xb5\x7d\x05\xc6\x10\x89\x90\ | ||
150 | 52565 | \xc6\x8e\x1e\x56\xd7\x21\x48\x6c\x5f\x81\x36\x9a\x3c\x5f\x34\x0f\ | ||
151 | 52566 | \xf9\x77\xc1\xea\x5b\xbb\x29\x40\x45\xe4\xcb\x9c\x65\x51\x72\x1a\ | ||
152 | 52567 | \x4a\xe9\x35\xc1\xa7\x93\xf9\x11\xd9\xcf\x63\xa6\xb3\x63\x3e\x7c\ | ||
153 | 52568 | \xdc\xe7\x5f\x14\x75\xc5\x22\xcb\xbe\x02\xfc\x02\xce\x8e\x94\x0e\ | ||
154 | 52569 | \x4b\x04\xe7\x86\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ | ||
155 | 52570 | \ | ||
156 | 52491 | \x00\x00\x02\x7e\ | 52571 | \x00\x00\x02\x7e\ |
157 | 52492 | \x89\ | 52572 | \x89\ |
158 | 52493 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | 52573 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ |
159 | @@ -52530,6 +52610,60 @@ | |||
160 | 52530 | \x2d\x7f\x6b\xac\x3a\x6f\x91\x45\x04\x05\x3c\x58\x29\xdf\x95\x98\ | 52610 | \x2d\x7f\x6b\xac\x3a\x6f\x91\x45\x04\x05\x3c\x58\x29\xdf\x95\x98\ |
161 | 52531 | \x70\x35\xf3\x6f\x89\x5a\x6e\xe0\x0f\xd5\xf2\x24\x09\x1c\xd8\x9f\ | 52611 | \x70\x35\xf3\x6f\x89\x5a\x6e\xe0\x0f\xd5\xf2\x24\x09\x1c\xd8\x9f\ |
162 | 52532 | \xe3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ | 52612 | \xe3\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ |
163 | 52613 | \x00\x00\x03\x3e\ | ||
164 | 52614 | \x89\ | ||
165 | 52615 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | ||
166 | 52616 | \x00\x00\x10\x00\x00\x00\x10\x08\x03\x00\x00\x00\x28\x2d\x0f\x53\ | ||
167 | 52617 | \x00\x00\x00\x09\x70\x48\x59\x73\x00\x00\x0b\x13\x00\x00\x0b\x13\ | ||
168 | 52618 | \x01\x00\x9a\x9c\x18\x00\x00\x00\x04\x67\x41\x4d\x41\x00\x00\xb1\ | ||
169 | 52619 | \x8e\x7c\xfb\x51\x93\x00\x00\x00\x20\x63\x48\x52\x4d\x00\x00\x7a\ | ||
170 | 52620 | \x25\x00\x00\x80\x83\x00\x00\xf9\xff\x00\x00\x80\xe9\x00\x00\x75\ | ||
171 | 52621 | \x30\x00\x00\xea\x60\x00\x00\x3a\x98\x00\x00\x17\x6f\x92\x5f\xc5\ | ||
172 | 52622 | \x46\x00\x00\x01\xb0\x50\x4c\x54\x45\x00\x00\x00\xff\xff\xff\xdf\ | ||
173 | 52623 | \x98\x00\xe6\xa0\x0c\xe7\xa3\x10\xdf\x98\x00\xe6\xa2\x0e\xe7\xa2\ | ||
174 | 52624 | \x10\xdf\x98\x00\xe5\xa0\x0d\xe3\x9d\x08\xe1\x9e\x01\xe1\x9f\x00\ | ||
175 | 52625 | \xe1\x9f\x01\xe1\x9f\x0d\xe1\x9f\x12\xe3\xa1\x11\xe5\xa5\x1a\x00\ | ||
176 | 52626 | \x56\xff\x10\x60\xef\x10\x60\xf2\x20\x99\xdd\x30\x80\xce\x50\x8b\ | ||
177 | 52627 | \xb1\x50\xb2\xad\x8e\xb2\xa2\x8f\xad\x72\x8f\xb2\x9e\x9f\xbb\x66\ | ||
178 | 52628 | \xc3\x4d\x02\xc4\x4f\x01\xcc\x5d\x03\xd4\x69\x02\xdc\x84\x0c\xdc\ | ||
179 | 52629 | \x8d\x05\xe1\x90\x09\xe3\x9b\x0b\xe5\x99\x0a\xe5\xa8\x01\xe7\x9d\ | ||
180 | 52630 | \x09\xe7\xad\x02\xe7\xae\x01\xe7\xaf\x01\xe7\xb0\x01\xe7\xb0\x03\ | ||
181 | 52631 | \xe7\xb0\x09\xe7\xb0\x10\xe7\xb1\x1c\xe7\xb1\x1f\xe7\xb1\x33\xe7\ | ||
182 | 52632 | \xb2\x38\xe7\xb2\x40\xe9\xb4\x43\xeb\xb6\x04\xeb\xb8\x45\xeb\xbb\ | ||
183 | 52633 | \x20\xeb\xbc\x2d\xec\xb9\x48\xef\xbd\x3a\xef\xc4\x65\xf3\xb9\x17\ | ||
184 | 52634 | \xf4\xb8\x14\xf5\xba\x13\xf7\xcd\x0e\xf7\xcf\x0d\xf7\xd1\x0f\xf7\ | ||
185 | 52635 | \xd7\x18\xf7\xdc\x61\xf7\xe4\x91\xf7\xe6\xa5\xf8\xce\x11\xf8\xe7\ | ||
186 | 52636 | \xbf\xfb\xc8\x1d\xfb\xca\x1b\xfb\xd8\x10\xfc\xcd\x1a\xfc\xfd\xac\ | ||
187 | 52637 | \xfd\xd2\x17\xfd\xfa\x60\xfd\xfb\x7c\xfd\xfc\x7e\xfd\xfc\x84\xfd\ | ||
188 | 52638 | \xfe\xd2\xfe\xf8\x20\xfe\xf8\x24\xfe\xf9\x37\xfe\xf9\x3b\xfe\xfa\ | ||
189 | 52639 | \x47\xfe\xfa\x4f\xfe\xfc\x9c\xfe\xfc\xa3\xfe\xfe\xd9\xff\xd0\x1f\ | ||
190 | 52640 | \xff\xd1\x1e\xff\xd2\x1d\xff\xd3\x1d\xff\xd4\x1c\xff\xd5\x1b\xff\ | ||
191 | 52641 | \xd6\x1a\xff\xd6\x1b\xff\xd9\x18\xff\xda\x17\xff\xda\x22\xff\xda\ | ||
192 | 52642 | \x24\xff\xdb\x19\xff\xdc\x16\xff\xdf\x19\xff\xdf\x41\xff\xe0\x12\ | ||
193 | 52643 | \xff\xe2\x3c\xff\xe3\x10\xff\xe4\x19\xff\xe5\x0e\xff\xe6\x0e\xff\ | ||
194 | 52644 | \xe7\x0d\xff\xe7\x61\xff\xe9\x20\xff\xea\x0a\xff\xea\x1a\xff\xeb\ | ||
195 | 52645 | \x0a\xff\xed\x08\xff\xed\x67\xff\xef\x06\xff\xf0\x06\xff\xf1\x04\ | ||
196 | 52646 | \xff\xf2\x5d\xff\xf2\x7c\xff\xf4\x53\xff\xf4\x82\xff\xf5\x03\xff\ | ||
197 | 52647 | \xf6\x05\xff\xf7\x07\xff\xf8\x16\xff\xf8\x17\xff\xf8\x6c\xff\xf8\ | ||
198 | 52648 | \x87\xff\xf9\x30\xff\xfa\x78\xff\xfb\x7d\xff\xfd\xaf\xff\xfd\xc0\ | ||
199 | 52649 | \xff\xfe\xe1\xff\xff\xf2\xff\xff\xf5\xc6\x84\xb0\x01\x00\x00\x00\ | ||
200 | 52650 | \x12\x74\x52\x4e\x53\x00\x00\x20\x20\x20\x60\x60\x60\x8f\x8f\x9f\ | ||
201 | 52651 | \xdf\xdf\xdf\xdf\xdf\xdf\xdf\xb4\xb2\xe3\xac\x00\x00\x00\xda\x49\ | ||
202 | 52652 | \x44\x41\x54\x18\x95\x63\x60\x44\x03\x0c\x8c\x0c\x0c\x0c\x2c\x9c\ | ||
203 | 52653 | \x82\x26\xc6\xfc\x1c\x4c\x40\x26\x58\x80\xdd\xd2\xbd\x3f\x3a\xaa\ | ||
204 | 52654 | \xdb\xc5\x90\x15\x22\xc0\x66\xdd\x17\xe4\x13\x10\x11\xd2\x54\x6f\ | ||
205 | 52655 | \xc1\x0a\x12\x60\x36\xeb\x8d\x0c\xf4\xf7\x0b\x6b\x6d\xac\x28\xd3\ | ||
206 | 52656 | \x63\x02\x0a\x70\xb9\x76\x85\x4b\x4a\x87\x05\xcb\x48\x95\xe6\x39\ | ||
207 | 52657 | \x71\x00\x05\x04\x7a\x3a\x42\x85\x44\x5a\x9a\x85\x85\x4a\x72\xf2\ | ||
208 | 52658 | \x79\x81\x02\x46\xed\x6d\x9d\x62\x12\x8d\x35\xe2\xa2\x95\xc5\x19\ | ||
209 | 52659 | \x3a\x40\x01\xc3\x86\x5a\xfd\xea\xaa\x8a\xf2\x22\x2f\xab\xec\x34\ | ||
210 | 52660 | \x6d\xa0\x00\x5f\x5d\x81\x9c\x52\x51\x61\x5e\x8e\x8a\xac\x4d\x26\ | ||
211 | 52661 | \x0f\x50\x80\xc3\x39\xcb\x4d\x55\x41\x5d\x59\x5e\xd1\xd3\xc3\x01\ | ||
212 | 52662 | \x64\x28\x93\x41\x6e\x4a\x8a\xaf\x9d\xad\x77\x5c\x4c\x92\x1a\xc8\ | ||
213 | 52663 | \x5a\x06\x56\xf3\xf4\xf8\xf8\xb8\xd8\x98\x98\x64\x53\x56\x88\xd3\ | ||
214 | 52664 | \x59\x75\x1d\x33\x13\x13\x52\xed\x35\xa0\x4e\x67\x60\x60\xe2\xe0\ | ||
215 | 52665 | \xd1\xd2\xe4\x86\x79\x0e\x0d\x00\x00\x00\x82\x2d\xeb\x05\xb0\x41\ | ||
216 | 52666 | \x76\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ | ||
217 | 52533 | \x00\x00\x02\x9a\ | 52667 | \x00\x00\x02\x9a\ |
218 | 52534 | \x89\ | 52668 | \x89\ |
219 | 52535 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ | 52669 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ |
220 | @@ -53680,6 +53814,11 @@ | |||
221 | 53680 | \x03\x8c\x2f\x27\ | 53814 | \x03\x8c\x2f\x27\ |
222 | 53681 | \x00\x69\ | 53815 | \x00\x69\ |
223 | 53682 | \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ | 53816 | \x00\x6d\x00\x61\x00\x67\x00\x65\x00\x5f\x00\x6c\x00\x6f\x00\x61\x00\x64\x00\x2e\x00\x70\x00\x6e\x00\x67\ |
224 | 53817 | \x00\x14\ | ||
225 | 53818 | \x07\xde\x82\x27\ | ||
226 | 53819 | \x00\x73\ | ||
227 | 53820 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x61\x00\x75\x00\x74\x00\x68\x00\x6f\x00\x72\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\ | ||
228 | 53821 | \x00\x70\x00\x6e\x00\x67\ | ||
229 | 53683 | \x00\x0c\ | 53822 | \x00\x0c\ |
230 | 53684 | \x0b\x86\xcd\x87\ | 53823 | \x0b\x86\xcd\x87\ |
231 | 53685 | \x00\x73\ | 53824 | \x00\x73\ |
232 | @@ -53688,10 +53827,20 @@ | |||
233 | 53688 | \x0f\xce\xfd\xc7\ | 53827 | \x0f\xce\xfd\xc7\ |
234 | 53689 | \x00\x73\ | 53828 | \x00\x73\ |
235 | 53690 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ | 53829 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ |
236 | 53830 | \x00\x12\ | ||
237 | 53831 | \x07\x52\x49\x67\ | ||
238 | 53832 | \x00\x73\ | ||
239 | 53833 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x62\x00\x6f\x00\x6f\x00\x6b\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\x00\x6e\ | ||
240 | 53834 | \x00\x67\ | ||
241 | 53691 | \x00\x0f\ | 53835 | \x00\x0f\ |
242 | 53692 | \x0f\x3d\x20\x27\ | 53836 | \x0f\x3d\x20\x27\ |
243 | 53693 | \x00\x73\ | 53837 | \x00\x73\ |
244 | 53694 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ | 53838 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x65\x00\x78\x00\x70\x00\x6f\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ |
245 | 53839 | \x00\x13\ | ||
246 | 53840 | \x0e\x4b\x25\x27\ | ||
247 | 53841 | \x00\x73\ | ||
248 | 53842 | \x00\x6f\x00\x6e\x00\x67\x00\x5f\x00\x74\x00\x6f\x00\x70\x00\x69\x00\x63\x00\x5f\x00\x65\x00\x64\x00\x69\x00\x74\x00\x2e\x00\x70\ | ||
249 | 53843 | \x00\x6e\x00\x67\ | ||
250 | 53695 | \x00\x0f\ | 53844 | \x00\x0f\ |
251 | 53696 | \x05\x0e\x96\x87\ | 53845 | \x05\x0e\x96\x87\ |
252 | 53697 | \x00\x73\ | 53846 | \x00\x73\ |
253 | @@ -53780,10 +53929,10 @@ | |||
254 | 53780 | 53929 | ||
255 | 53781 | qt_resource_struct = "\ | 53930 | qt_resource_struct = "\ |
256 | 53782 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\ | 53931 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x11\x00\x00\x00\x01\ |
261 | 53783 | \x00\x00\x00\xa6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x56\ | 53932 | \x00\x00\x00\xa6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x59\ |
262 | 53784 | \x00\x00\x00\x38\x00\x02\x00\x00\x00\x04\x00\x00\x00\x52\ | 53933 | \x00\x00\x00\x38\x00\x02\x00\x00\x00\x04\x00\x00\x00\x55\ |
263 | 53785 | \x00\x00\x01\x02\x00\x02\x00\x00\x00\x08\x00\x00\x00\x4a\ | 53934 | \x00\x00\x01\x02\x00\x02\x00\x00\x00\x08\x00\x00\x00\x4d\ |
264 | 53786 | \x00\x00\x00\x5c\x00\x02\x00\x00\x00\x04\x00\x00\x00\x46\ | 53935 | \x00\x00\x00\x5c\x00\x02\x00\x00\x00\x07\x00\x00\x00\x46\ |
265 | 53787 | \x00\x00\x00\x4c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x44\ | 53936 | \x00\x00\x00\x4c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x44\ |
266 | 53788 | \x00\x00\x01\x12\x00\x02\x00\x00\x00\x02\x00\x00\x00\x42\ | 53937 | \x00\x00\x01\x12\x00\x02\x00\x00\x00\x02\x00\x00\x00\x42\ |
267 | 53789 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3f\ | 53938 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00\x3f\ |
268 | @@ -53798,10 +53947,10 @@ | |||
269 | 53798 | \x00\x00\x00\x24\x00\x02\x00\x00\x00\x04\x00\x00\x00\x13\ | 53947 | \x00\x00\x00\x24\x00\x02\x00\x00\x00\x04\x00\x00\x00\x13\ |
270 | 53799 | \x00\x00\x00\xc6\x00\x02\x00\x00\x00\x01\x00\x00\x00\x12\ | 53948 | \x00\x00\x00\xc6\x00\x02\x00\x00\x00\x01\x00\x00\x00\x12\ |
271 | 53800 | \x00\x00\x06\x58\x00\x00\x00\x00\x00\x01\x00\x00\x55\x3f\ | 53949 | \x00\x00\x06\x58\x00\x00\x00\x00\x00\x01\x00\x00\x55\x3f\ |
276 | 53801 | \x00\x00\x0b\x5a\x00\x00\x00\x00\x00\x01\x00\x0c\xde\x36\ | 53950 | \x00\x00\x0b\xde\x00\x00\x00\x00\x00\x01\x00\x0c\xe6\x2d\ |
277 | 53802 | \x00\x00\x0b\x8e\x00\x00\x00\x00\x00\x01\x00\x0c\xe1\x98\ | 53951 | \x00\x00\x0c\x12\x00\x00\x00\x00\x00\x01\x00\x0c\xe9\x8f\ |
278 | 53803 | \x00\x00\x0b\xb6\x00\x00\x00\x00\x00\x01\x00\x0c\xe4\x36\ | 53952 | \x00\x00\x0c\x3a\x00\x00\x00\x00\x00\x01\x00\x0c\xec\x2d\ |
279 | 53804 | \x00\x00\x0b\xe4\x00\x00\x00\x00\x00\x01\x00\x0c\xe7\x4a\ | 53953 | \x00\x00\x0c\x68\x00\x00\x00\x00\x00\x01\x00\x0c\xef\x41\ |
280 | 53805 | \x00\x00\x05\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xfb\ | 53954 | \x00\x00\x05\xbc\x00\x00\x00\x00\x00\x01\x00\x00\x4a\xfb\ |
281 | 53806 | \x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x32\ | 53955 | \x00\x00\x05\xe2\x00\x00\x00\x00\x00\x01\x00\x00\x4d\x32\ |
282 | 53807 | \x00\x00\x06\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x52\x74\ | 53956 | \x00\x00\x06\x2e\x00\x00\x00\x00\x00\x01\x00\x00\x52\x74\ |
283 | @@ -53835,24 +53984,27 @@ | |||
284 | 53835 | \x00\x00\x06\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xfc\x9c\ | 53984 | \x00\x00\x06\xd0\x00\x00\x00\x00\x00\x01\x00\x02\xfc\x9c\ |
285 | 53836 | \x00\x00\x06\xf6\x00\x00\x00\x00\x00\x01\x00\x02\xff\x14\ | 53985 | \x00\x00\x06\xf6\x00\x00\x00\x00\x00\x01\x00\x02\xff\x14\ |
286 | 53837 | \x00\x00\x06\x8a\x00\x00\x00\x00\x00\x01\x00\x02\xf6\x21\ | 53986 | \x00\x00\x06\x8a\x00\x00\x00\x00\x00\x01\x00\x02\xf6\x21\ |
292 | 53838 | \x00\x00\x0c\x94\x00\x00\x00\x00\x00\x01\x00\x0c\xf3\xd4\ | 53987 | \x00\x00\x0d\x18\x00\x00\x00\x00\x00\x01\x00\x0c\xfb\xcb\ |
293 | 53839 | \x00\x00\x0c\x2a\x00\x00\x00\x00\x00\x01\x00\x0c\xeb\xff\ | 53988 | \x00\x00\x0c\xae\x00\x00\x00\x00\x00\x01\x00\x0c\xf3\xf6\ |
294 | 53840 | \x00\x00\x0c\x4e\x00\x00\x00\x00\x00\x01\x00\x0c\xee\x90\ | 53989 | \x00\x00\x0c\xd2\x00\x00\x00\x00\x00\x01\x00\x0c\xf6\x87\ |
295 | 53841 | \x00\x00\x0c\x70\x00\x00\x00\x00\x00\x01\x00\x0c\xf0\xa3\ | 53990 | \x00\x00\x0c\xf4\x00\x00\x00\x00\x00\x01\x00\x0c\xf8\x9a\ |
296 | 53842 | \x00\x00\x0c\x08\x00\x00\x00\x00\x00\x01\x00\x0c\xe9\x61\ | 53991 | \x00\x00\x0c\x8c\x00\x00\x00\x00\x00\x01\x00\x0c\xf1\x58\ |
297 | 53843 | \x00\x00\x09\xc0\x00\x00\x00\x00\x00\x01\x00\x0c\xc1\x6c\ | 53992 | \x00\x00\x09\xc0\x00\x00\x00\x00\x00\x01\x00\x0c\xc1\x6c\ |
298 | 53844 | \x00\x00\x09\x9a\x00\x00\x00\x00\x00\x01\x00\x0c\xbe\xce\ | 53993 | \x00\x00\x09\x9a\x00\x00\x00\x00\x00\x01\x00\x0c\xbe\xce\ |
302 | 53845 | \x00\x00\x0c\xe2\x00\x00\x00\x00\x00\x01\x00\x0c\xf8\x78\ | 53994 | \x00\x00\x0d\x66\x00\x00\x00\x00\x00\x01\x00\x0d\x00\x6f\ |
303 | 53846 | \x00\x00\x0d\x0a\x00\x00\x00\x00\x00\x01\x00\x0c\xfb\x16\ | 53995 | \x00\x00\x0d\x8e\x00\x00\x00\x00\x00\x01\x00\x0d\x03\x0d\ |
304 | 53847 | \x00\x00\x0c\xbe\x00\x00\x00\x00\x00\x01\x00\x0c\xf5\xd8\ | 53996 | \x00\x00\x0d\x42\x00\x00\x00\x00\x00\x01\x00\x0c\xfd\xcf\ |
305 | 53848 | \x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\ | 53997 | \x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x00\x09\x05\ |
306 | 53849 | \x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xa3\ | 53998 | \x00\x00\x02\x12\x00\x00\x00\x00\x00\x01\x00\x00\x0b\xa3\ |
310 | 53850 | \x00\x00\x0a\x68\x00\x00\x00\x00\x00\x01\x00\x0c\xcd\x8a\ | 53999 | \x00\x00\x0a\xec\x00\x00\x00\x00\x00\x01\x00\x0c\xd5\x81\ |
311 | 53851 | \x00\x00\x0a\x8c\x00\x00\x00\x00\x00\x01\x00\x0c\xd0\x88\ | 54000 | \x00\x00\x0b\x10\x00\x00\x00\x00\x00\x01\x00\x0c\xd8\x7f\ |
312 | 53852 | \x00\x00\x0a\x44\x00\x00\x00\x00\x00\x01\x00\x0c\xca\xec\ | 54001 | \x00\x00\x0a\xc8\x00\x00\x00\x00\x00\x01\x00\x0c\xd2\xe3\ |
313 | 54002 | \x00\x00\x0a\x4e\x00\x00\x00\x00\x00\x01\x00\x0c\xca\xea\ | ||
314 | 53853 | \x00\x00\x09\xe2\x00\x00\x00\x00\x00\x01\x00\x0c\xc3\x83\ | 54003 | \x00\x00\x09\xe2\x00\x00\x00\x00\x00\x01\x00\x0c\xc3\x83\ |
317 | 53854 | \x00\x00\x0a\x20\x00\x00\x00\x00\x00\x01\x00\x0c\xc8\x6a\ | 54004 | \x00\x00\x0a\x10\x00\x00\x00\x00\x00\x01\x00\x0c\xc6\x03\ |
318 | 53855 | \x00\x00\x0a\x00\x00\x00\x00\x00\x00\x01\x00\x0c\xc5\xca\ | 54005 | \x00\x00\x0a\x9c\x00\x00\x00\x00\x00\x01\x00\x0c\xcf\xa1\ |
319 | 54006 | \x00\x00\x0a\x78\x00\x00\x00\x00\x00\x01\x00\x0c\xcd\x1f\ | ||
320 | 54007 | \x00\x00\x0a\x2e\x00\x00\x00\x00\x00\x01\x00\x0c\xc8\x4a\ | ||
321 | 53856 | \x00\x00\x02\x66\x00\x00\x00\x00\x00\x01\x00\x00\x10\x0c\ | 54008 | \x00\x00\x02\x66\x00\x00\x00\x00\x00\x01\x00\x00\x10\x0c\ |
322 | 53857 | \x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x17\xff\ | 54009 | \x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x00\x17\xff\ |
323 | 53858 | \x00\x00\x03\x04\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x2a\ | 54010 | \x00\x00\x03\x04\x00\x00\x00\x00\x00\x01\x00\x00\x1a\x2a\ |
324 | @@ -53861,10 +54013,10 @@ | |||
325 | 53861 | \x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x20\x24\ | 54013 | \x00\x00\x03\x4a\x00\x00\x00\x00\x00\x01\x00\x00\x20\x24\ |
326 | 53862 | \x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xba\ | 54014 | \x00\x00\x02\x42\x00\x00\x00\x00\x00\x01\x00\x00\x0d\xba\ |
327 | 53863 | \x00\x00\x03\x26\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x8d\ | 54015 | \x00\x00\x03\x26\x00\x00\x00\x00\x00\x01\x00\x00\x1c\x8d\ |
332 | 53864 | \x00\x00\x0a\xac\x00\x00\x00\x00\x00\x01\x00\x0c\xd3\x0b\ | 54016 | \x00\x00\x0b\x30\x00\x00\x00\x00\x00\x01\x00\x0c\xdb\x02\ |
333 | 53865 | \x00\x00\x0b\x0e\x00\x00\x00\x00\x00\x01\x00\x0c\xd9\x81\ | 54017 | \x00\x00\x0b\x92\x00\x00\x00\x00\x00\x01\x00\x0c\xe1\x78\ |
334 | 53866 | \x00\x00\x0a\xe0\x00\x00\x00\x00\x00\x01\x00\x0c\xd6\x6d\ | 54018 | \x00\x00\x0b\x64\x00\x00\x00\x00\x00\x01\x00\x0c\xde\x64\ |
335 | 53867 | \x00\x00\x0b\x36\x00\x00\x00\x00\x00\x01\x00\x0c\xdc\x1f\ | 54019 | \x00\x00\x0b\xba\x00\x00\x00\x00\x00\x01\x00\x0c\xe4\x16\ |
336 | 53868 | \x00\x00\x07\xce\x00\x00\x00\x00\x00\x01\x00\x03\x3e\xa4\ | 54020 | \x00\x00\x07\xce\x00\x00\x00\x00\x00\x01\x00\x03\x3e\xa4\ |
337 | 53869 | \x00\x00\x07\x6e\x00\x00\x00\x00\x00\x01\x00\x03\x0f\x64\ | 54021 | \x00\x00\x07\x6e\x00\x00\x00\x00\x00\x01\x00\x03\x0f\x64\ |
338 | 53870 | \x00\x00\x07\x3e\x00\x00\x00\x00\x00\x01\x00\x03\x04\xd0\ | 54022 | \x00\x00\x07\x3e\x00\x00\x00\x00\x00\x01\x00\x03\x04\xd0\ |
339 | 53871 | 54023 | ||
340 | === modified file 'openlp/core/ui/maindisplay.py' | |||
341 | --- openlp/core/ui/maindisplay.py 2009-07-03 19:08:21 +0000 | |||
342 | +++ openlp/core/ui/maindisplay.py 2009-07-19 07:40:31 +0000 | |||
343 | @@ -18,7 +18,7 @@ | |||
344 | 18 | Place, Suite 330, Boston, MA 02111-1307 USA | 18 | Place, Suite 330, Boston, MA 02111-1307 USA |
345 | 19 | """ | 19 | """ |
346 | 20 | 20 | ||
348 | 21 | from PyQt4 import QtCore, QtGui, QtTest | 21 | from PyQt4 import QtCore, QtGui |
349 | 22 | 22 | ||
350 | 23 | from time import sleep | 23 | from time import sleep |
351 | 24 | from openlp.core.lib import translate | 24 | from openlp.core.lib import translate |
352 | @@ -41,6 +41,7 @@ | |||
353 | 41 | self.alertactive = False | 41 | self.alertactive = False |
354 | 42 | self.alerttext = u'' | 42 | self.alerttext = u'' |
355 | 43 | self.alertTab = None | 43 | self.alertTab = None |
356 | 44 | self.timer_id = 0 | ||
357 | 44 | 45 | ||
358 | 45 | def setup(self, screenNumber): | 46 | def setup(self, screenNumber): |
359 | 46 | """ | 47 | """ |
360 | @@ -69,11 +70,18 @@ | |||
361 | 69 | self.frameView(self.blankFrame) | 70 | self.frameView(self.blankFrame) |
362 | 70 | 71 | ||
363 | 71 | def frameView(self, frame): | 72 | def frameView(self, frame): |
364 | 73 | """ | ||
365 | 74 | Called from a slide controller to display a frame | ||
366 | 75 | if the alert is in progress the alert is added on top | ||
367 | 76 | ``frame`` | ||
368 | 77 | Image frame to be rendered | ||
369 | 78 | """ | ||
370 | 79 | |||
371 | 72 | self.frame = frame | 80 | self.frame = frame |
373 | 73 | if not self.displayBlank: | 81 | if self.timer_id != 0 : |
374 | 82 | self.displayAlert() | ||
375 | 83 | elif not self.displayBlank: | ||
376 | 74 | self.display.setPixmap(QtGui.QPixmap.fromImage(frame)) | 84 | self.display.setPixmap(QtGui.QPixmap.fromImage(frame)) |
377 | 75 | elif self.alertactive: | ||
378 | 76 | self.displayAlert() | ||
379 | 77 | 85 | ||
380 | 78 | def blankDisplay(self): | 86 | def blankDisplay(self): |
381 | 79 | if not self.displayBlank: | 87 | if not self.displayBlank: |
382 | @@ -85,17 +93,17 @@ | |||
383 | 85 | 93 | ||
384 | 86 | def alert(self, alertTab, text): | 94 | def alert(self, alertTab, text): |
385 | 87 | """ | 95 | """ |
390 | 88 | Called from the Alert Tab | 96 | Called from the Alert Tab to display an alert |
391 | 89 | alertTab = details from AlertTab | 97 | ``alertTab`` |
392 | 90 | text = display text | 98 | details from AlertTab |
393 | 91 | screen = screen number to be displayed on. | 99 | |
394 | 100 | ``text`` | ||
395 | 101 | display text | ||
396 | 92 | """ | 102 | """ |
397 | 93 | self.alerttext = text | 103 | self.alerttext = text |
398 | 94 | self.alertTab = alertTab | 104 | self.alertTab = alertTab |
399 | 95 | if len(text) > 0: | 105 | if len(text) > 0: |
400 | 96 | self.alertactive = True | ||
401 | 97 | self.displayAlert() | 106 | self.displayAlert() |
402 | 98 | self.alertactive = False | ||
403 | 99 | 107 | ||
404 | 100 | def displayAlert(self): | 108 | def displayAlert(self): |
405 | 101 | alertframe = QtGui.QPixmap.fromImage(self.frame) | 109 | alertframe = QtGui.QPixmap.fromImage(self.frame) |
406 | @@ -113,5 +121,12 @@ | |||
407 | 113 | painter.drawText(x, y+metrics.height()-metrics.descent()-1, self.alerttext) | 121 | painter.drawText(x, y+metrics.height()-metrics.descent()-1, self.alerttext) |
408 | 114 | painter.end() | 122 | painter.end() |
409 | 115 | self.display.setPixmap(alertframe) | 123 | self.display.setPixmap(alertframe) |
412 | 116 | QtTest.QTest.qWait(self.alertTab.timeout*1000) | 124 | # check to see if we have a timer running |
413 | 117 | self.display.setPixmap(QtGui.QPixmap.fromImage(self.frame)) | 125 | if self.timer_id == 0: |
414 | 126 | self.timer_id = self.startTimer(int(self.alertTab.timeout) * 1000) | ||
415 | 127 | |||
416 | 128 | def timerEvent(self, event): | ||
417 | 129 | if event.timerId() == self.timer_id: | ||
418 | 130 | self.display.setPixmap(QtGui.QPixmap.fromImage(self.frame)) | ||
419 | 131 | self.killTimer(self.timer_id) | ||
420 | 132 | self.timer_id = 0 | ||
421 | 118 | 133 | ||
422 | === modified file 'openlp/core/ui/mainwindow.py' | |||
423 | --- openlp/core/ui/mainwindow.py 2009-07-09 05:15:26 +0000 | |||
424 | +++ openlp/core/ui/mainwindow.py 2009-07-18 05:43:50 +0000 | |||
425 | @@ -139,16 +139,24 @@ | |||
426 | 139 | if ret == QtGui.QMessageBox.Save: | 139 | if ret == QtGui.QMessageBox.Save: |
427 | 140 | self.ServiceManagerContents.onSaveService() | 140 | self.ServiceManagerContents.onSaveService() |
428 | 141 | self.mainDisplay.close() | 141 | self.mainDisplay.close() |
429 | 142 | self.cleanUp() | ||
430 | 142 | event.accept() | 143 | event.accept() |
431 | 143 | elif ret == QtGui.QMessageBox.Discard: | 144 | elif ret == QtGui.QMessageBox.Discard: |
432 | 144 | self.mainDisplay.close() | 145 | self.mainDisplay.close() |
433 | 146 | self.cleanUp() | ||
434 | 145 | event.accept() | 147 | event.accept() |
435 | 146 | else: | 148 | else: |
436 | 147 | event.ignore() | 149 | event.ignore() |
437 | 148 | else: | 150 | else: |
438 | 149 | self.mainDisplay.close() | 151 | self.mainDisplay.close() |
439 | 152 | self.cleanUp() | ||
440 | 150 | event.accept() | 153 | event.accept() |
441 | 151 | 154 | ||
442 | 155 | def cleanUp(self): | ||
443 | 156 | # Call the cleanup method to shutdown plugins. | ||
444 | 157 | log.info(u'cleanup plugins') | ||
445 | 158 | self.plugin_manager.initialise_plugins() | ||
446 | 159 | |||
447 | 152 | def OosChanged(self, reset = False, oosName = None): | 160 | def OosChanged(self, reset = False, oosName = None): |
448 | 153 | """ | 161 | """ |
449 | 154 | Hook to change the title if the OOS has been changed | 162 | Hook to change the title if the OOS has been changed |
450 | 155 | 163 | ||
451 | === modified file 'openlp/migration/migratesongs.py' | |||
452 | --- openlp/migration/migratesongs.py 2009-07-14 18:38:33 +0000 | |||
453 | +++ openlp/migration/migratesongs.py 2009-07-18 07:30:26 +0000 | |||
454 | @@ -137,8 +137,7 @@ | |||
455 | 137 | self.db_url = u'sqlite:///' + self.data_path + u'/songs.sqlite' | 137 | self.db_url = u'sqlite:///' + self.data_path + u'/songs.sqlite' |
456 | 138 | print self.db_url | 138 | print self.db_url |
457 | 139 | self.session = init_models(self.db_url) | 139 | self.session = init_models(self.db_url) |
460 | 140 | if not songs_table.exists(): | 140 | metadata.create_all(checkfirst=True) |
459 | 141 | metadata.create_all() | ||
461 | 142 | results = self.session.query(TSong).order_by(TSong.songid).all() | 141 | results = self.session.query(TSong).order_by(TSong.songid).all() |
462 | 143 | for songs_temp in results: | 142 | for songs_temp in results: |
463 | 144 | song = Song() | 143 | song = Song() |
464 | @@ -151,18 +150,21 @@ | |||
465 | 151 | aa = self.session.execute(u'select * from songauthors_temp where songid =' + unicode(songs_temp.songid) ) | 150 | aa = self.session.execute(u'select * from songauthors_temp where songid =' + unicode(songs_temp.songid) ) |
466 | 152 | for row in aa: | 151 | for row in aa: |
467 | 153 | a = row['authorid'] | 152 | a = row['authorid'] |
468 | 154 | author = Author() | ||
469 | 155 | authors_temp = self.session.query(TAuthor).get(a) | 153 | authors_temp = self.session.query(TAuthor).get(a) |
473 | 156 | author.display_name = authors_temp.authorname | 154 | bb = self.session.execute(u'select * from authors where display_name = \"%s\"' % unicode(authors_temp.authorname) ).fetchone() |
474 | 157 | author.first_name = u'' | 155 | if bb is None: |
475 | 158 | author.last_name = u'' | 156 | author = Author() |
476 | 157 | author.display_name = authors_temp.authorname | ||
477 | 158 | else: | ||
478 | 159 | id = int(bb[0]) | ||
479 | 160 | author = self.session.query(Author).get(bb[0]) | ||
480 | 159 | song.authors.append(author) | 161 | song.authors.append(author) |
487 | 160 | try: | 162 | try: |
488 | 161 | self.session.add(song) | 163 | self.session.add(song) |
489 | 162 | self.session.commit() | 164 | self.session.commit() |
490 | 163 | except: | 165 | except: |
491 | 164 | self.session.rollback() | 166 | self.session.rollback() |
492 | 165 | print u'Errow thrown = ', sys.exc_info()[1] | 167 | print u'Errow thrown = ', sys.exc_info()[1] |
493 | 166 | 168 | ||
494 | 167 | def _v1_9_0_cleanup(self, database): | 169 | def _v1_9_0_cleanup(self, database): |
495 | 168 | self.display.sub_output(u'Update Internal Data ' + database) | 170 | self.display.sub_output(u'Update Internal Data ' + database) |
496 | @@ -184,5 +186,4 @@ | |||
497 | 184 | conn.execute(u'drop table songauthors_temp;') | 186 | conn.execute(u'drop table songauthors_temp;') |
498 | 185 | conn.commit() | 187 | conn.commit() |
499 | 186 | conn.execute(u'drop table settings;') | 188 | conn.execute(u'drop table settings;') |
500 | 187 | |||
501 | 188 | conn.commit() | 189 | conn.commit() |
502 | 189 | 190 | ||
503 | === modified file 'openlp/plugins/bibles/lib/bibleDBimpl.py' | |||
504 | --- openlp/plugins/bibles/lib/bibleDBimpl.py 2009-07-14 19:44:15 +0000 | |||
505 | +++ openlp/plugins/bibles/lib/bibleDBimpl.py 2009-07-18 05:43:50 +0000 | |||
506 | @@ -58,7 +58,6 @@ | |||
507 | 58 | 58 | ||
508 | 59 | def add_verse(self, bookid, chap, vse, text): | 59 | def add_verse(self, bookid, chap, vse, text): |
509 | 60 | #log.debug(u'add_verse %s,%s,%s", bookid, chap, vse) | 60 | #log.debug(u'add_verse %s,%s,%s", bookid, chap, vse) |
510 | 61 | #metadata.bind.echo = False | ||
511 | 62 | verse = Verse() | 61 | verse = Verse() |
512 | 63 | verse.book_id = bookid | 62 | verse.book_id = bookid |
513 | 64 | verse.chapter = chap | 63 | verse.chapter = chap |
514 | @@ -69,8 +68,6 @@ | |||
515 | 69 | 68 | ||
516 | 70 | def create_chapter(self, bookid, chap, textlist): | 69 | def create_chapter(self, bookid, chap, textlist): |
517 | 71 | log.debug(u'create_chapter %s,%s', bookid, chap) | 70 | log.debug(u'create_chapter %s,%s', bookid, chap) |
518 | 72 | #log.debug(u'Text %s ", textlist) | ||
519 | 73 | #metadata.bind.echo = False | ||
520 | 74 | #text list has book and chapter as first to elements of the array | 71 | #text list has book and chapter as first to elements of the array |
521 | 75 | for verse_number, verse_text in textlist.iteritems(): | 72 | for verse_number, verse_text in textlist.iteritems(): |
522 | 76 | verse = Verse() | 73 | verse = Verse() |
523 | @@ -83,7 +80,6 @@ | |||
524 | 83 | 80 | ||
525 | 84 | def create_book(self, bookname, bookabbrev, testament=1): | 81 | def create_book(self, bookname, bookabbrev, testament=1): |
526 | 85 | log.debug(u'create_book %s,%s', bookname, bookabbrev) | 82 | log.debug(u'create_book %s,%s', bookname, bookabbrev) |
527 | 86 | #metadata.bind.echo = False | ||
528 | 87 | book = Book() | 83 | book = Book() |
529 | 88 | book.testament_id = testament | 84 | book.testament_id = testament |
530 | 89 | book.name = bookname | 85 | book.name = bookname |
531 | @@ -94,7 +90,6 @@ | |||
532 | 94 | 90 | ||
533 | 95 | def save_meta(self, key, value): | 91 | def save_meta(self, key, value): |
534 | 96 | log.debug(u'save_meta %s/%s', key, value) | 92 | log.debug(u'save_meta %s/%s', key, value) |
535 | 97 | #metadata.bind.echo = False | ||
536 | 98 | bmeta = BibleMeta() | 93 | bmeta = BibleMeta() |
537 | 99 | bmeta.key = key | 94 | bmeta.key = key |
538 | 100 | bmeta.value = value | 95 | bmeta.value = value |
539 | @@ -116,7 +111,6 @@ | |||
540 | 116 | 111 | ||
541 | 117 | def _load_testament(self, testament): | 112 | def _load_testament(self, testament): |
542 | 118 | log.debug(u'load_testaments %s', testament) | 113 | log.debug(u'load_testaments %s', testament) |
543 | 119 | #metadata.bind.echo = False | ||
544 | 120 | test = ONTestament() | 114 | test = ONTestament() |
545 | 121 | test.name = testament | 115 | test.name = testament |
546 | 122 | self.session.add(test) | 116 | self.session.add(test) |
547 | @@ -128,17 +122,11 @@ | |||
548 | 128 | 122 | ||
549 | 129 | def get_max_bible_book_verses(self, bookname, chapter): | 123 | def get_max_bible_book_verses(self, bookname, chapter): |
550 | 130 | log.debug(u'get_max_bible_book_verses %s, %s', bookname, chapter) | 124 | log.debug(u'get_max_bible_book_verses %s, %s', bookname, chapter) |
551 | 131 | #metadata.bind.echo = False | ||
552 | 132 | #s = text (u'select max(verse.verse) from verse,book where chapter = :c and book_id = book.id and book.name = :b ') | ||
553 | 133 | #return self.db.execute(s, c=chapter, b=bookname).fetchone() | ||
554 | 134 | verse = self.session.query(Verse).join(Book).filter(Book.name==bookname).filter(Verse.chapter==chapter).order_by(Verse.verse.desc()).first() | 125 | verse = self.session.query(Verse).join(Book).filter(Book.name==bookname).filter(Verse.chapter==chapter).order_by(Verse.verse.desc()).first() |
555 | 135 | return verse.verse | 126 | return verse.verse |
556 | 136 | 127 | ||
557 | 137 | def get_max_bible_book_chapter(self, bookname): | 128 | def get_max_bible_book_chapter(self, bookname): |
558 | 138 | log.debug(u'get_max_bible_book_chapter %s', bookname) | 129 | log.debug(u'get_max_bible_book_chapter %s', bookname) |
559 | 139 | #metadata.bind.echo = False | ||
560 | 140 | #s = text (u'select max(verse.chapter) from verse,book where book_id = book.id and book.name = :b') | ||
561 | 141 | #return self.db.execute(s, b=bookname).fetchone() | ||
562 | 142 | verse = self.session.query(Verse).join(Book).filter(Book.name==bookname).order_by(Verse.chapter.desc()).first() | 130 | verse = self.session.query(Verse).join(Book).filter(Book.name==bookname).order_by(Verse.chapter.desc()).first() |
563 | 143 | return verse.chapter | 131 | return verse.chapter |
564 | 144 | 132 | ||
565 | @@ -151,34 +139,24 @@ | |||
566 | 151 | 139 | ||
567 | 152 | def get_bible_chapter(self, id, chapter): | 140 | def get_bible_chapter(self, id, chapter): |
568 | 153 | log.debug(u'get_bible_chapter %s, %s', id, chapter) | 141 | log.debug(u'get_bible_chapter %s, %s', id, chapter) |
569 | 154 | #metadata.bind.echo = False | ||
570 | 155 | return self.session.query(Verse).filter_by(chapter=chapter).filter_by(book_id=id).first() | 142 | return self.session.query(Verse).filter_by(chapter=chapter).filter_by(book_id=id).first() |
571 | 156 | 143 | ||
572 | 157 | def get_bible_text(self, bookname, chapter, sverse, everse): | 144 | def get_bible_text(self, bookname, chapter, sverse, everse): |
573 | 158 | log.debug(u'get_bible_text %s, %s, %s, %s', bookname, chapter, sverse, everse) | 145 | log.debug(u'get_bible_text %s, %s, %s, %s', bookname, chapter, sverse, everse) |
574 | 159 | #metadata.bind.echo = False | ||
575 | 160 | #bookname = bookname + u"%" | ||
576 | 161 | #s = text (u'select name,chapter,verse.verse, verse.text FROM verse , book where verse.book_id == book.id AND verse.chapter == :c AND (verse.verse between :v1 and :v2) and (book.name like :b)') | ||
577 | 162 | #return self.db.execute(s, c=chapter, v1=sverse , v2=everse, b=bookname).fetchall() | ||
578 | 163 | verses = self.session.query(Verse).join(Book).filter(Book.name==bookname).filter(Verse.chapter==chapter).filter(Verse.verse>=sverse).filter(Verse.verse<=everse).order_by(Verse.verse).all() | 146 | verses = self.session.query(Verse).join(Book).filter(Book.name==bookname).filter(Verse.chapter==chapter).filter(Verse.verse>=sverse).filter(Verse.verse<=everse).order_by(Verse.verse).all() |
579 | 164 | return verses | 147 | return verses |
580 | 165 | 148 | ||
581 | 166 | def get_verses_from_text(self, versetext): | 149 | def get_verses_from_text(self, versetext): |
582 | 167 | log.debug(u'get_verses_from_text %s',versetext) | 150 | log.debug(u'get_verses_from_text %s',versetext) |
583 | 168 | #metadata.bind.echo = False | ||
584 | 169 | versetext = u'%%%s%%' % versetext | 151 | versetext = u'%%%s%%' % versetext |
585 | 170 | #s = text (u'select book.name, verse.chapter, verse.verse, verse.text FROM verse , book where verse.book_id == book.id and verse.text like :t') | ||
586 | 171 | #return self.db.execute(s, t=versetext).fetchall() | ||
587 | 172 | verses = self.session.query(Verse).filter(Verse.text.like(versetext)).all() | 152 | verses = self.session.query(Verse).filter(Verse.text.like(versetext)).all() |
588 | 173 | return verses | 153 | return verses |
589 | 174 | 154 | ||
590 | 175 | def dump_bible(self): | 155 | def dump_bible(self): |
591 | 176 | log.debug( u'.........Dumping Bible Database') | 156 | log.debug( u'.........Dumping Bible Database') |
592 | 177 | log.debug( '...............................Books ') | 157 | log.debug( '...............................Books ') |
593 | 178 | #s = text (u'select * FROM book ') | ||
594 | 179 | books = self.session.query(Book).all() | 158 | books = self.session.query(Book).all() |
595 | 180 | log.debug(books) | 159 | log.debug(books) |
596 | 181 | log.debug( u'...............................Verses ') | 160 | log.debug( u'...............................Verses ') |
597 | 182 | #s = text (u'select * FROM verse ') | ||
598 | 183 | verses = self.session.query(Verse).all() | 161 | verses = self.session.query(Verse).all() |
599 | 184 | log.debug(verses) | 162 | log.debug(verses) |
600 | 185 | 163 | ||
601 | === modified file 'openlp/plugins/bibles/lib/manager.py' | |||
602 | --- openlp/plugins/bibles/lib/manager.py 2009-07-13 20:08:43 +0000 | |||
603 | +++ openlp/plugins/bibles/lib/manager.py 2009-07-18 05:43:50 +0000 | |||
604 | @@ -29,8 +29,8 @@ | |||
605 | 29 | from bibleDBimpl import BibleDBImpl | 29 | from bibleDBimpl import BibleDBImpl |
606 | 30 | from bibleHTTPimpl import BibleHTTPImpl | 30 | from bibleHTTPimpl import BibleHTTPImpl |
607 | 31 | 31 | ||
610 | 32 | from openlp.plugins.bibles.lib.tables import * | 32 | #from openlp.plugins.bibles.lib.tables import * |
611 | 33 | from openlp.plugins.bibles.lib.classes import * | 33 | #from openlp.plugins.bibles.lib.classes import * |
612 | 34 | 34 | ||
613 | 35 | class BibleMode(object): | 35 | class BibleMode(object): |
614 | 36 | Full = 1 | 36 | Full = 1 |
615 | 37 | 37 | ||
616 | === modified file 'openlp/plugins/bibles/lib/models.py' | |||
617 | --- openlp/plugins/bibles/lib/models.py 2009-07-14 19:44:15 +0000 | |||
618 | +++ openlp/plugins/bibles/lib/models.py 2009-07-18 05:43:50 +0000 | |||
619 | @@ -68,19 +68,14 @@ | |||
620 | 68 | """ | 68 | """ |
621 | 69 | pass | 69 | pass |
622 | 70 | 70 | ||
623 | 71 | |||
624 | 72 | def init_models(db_url): | 71 | def init_models(db_url): |
625 | 73 | engine = create_engine(db_url) | 72 | engine = create_engine(db_url) |
626 | 74 | metadata.bind = engine | 73 | metadata.bind = engine |
627 | 75 | session = scoped_session(sessionmaker(autoflush=True, | 74 | session = scoped_session(sessionmaker(autoflush=True, |
628 | 76 | autocommit=False, | 75 | autocommit=False, |
629 | 77 | bind=engine)) | 76 | bind=engine)) |
630 | 78 | # Don't think this is needed... | ||
631 | 79 | #metadata.bind.echo = False | ||
632 | 80 | #Define the tables and indexes | ||
633 | 81 | return metadata, session | 77 | return metadata, session |
634 | 82 | 78 | ||
635 | 83 | |||
636 | 84 | metadata = MetaData() | 79 | metadata = MetaData() |
637 | 85 | meta_table = Table(u'metadata', metadata, | 80 | meta_table = Table(u'metadata', metadata, |
638 | 86 | Column(u'key', types.Unicode(255), primary_key=True, index=True), | 81 | Column(u'key', types.Unicode(255), primary_key=True, index=True), |
639 | 87 | 82 | ||
640 | === modified file 'openlp/plugins/songs/forms/authorsform.py' | |||
641 | --- openlp/plugins/songs/forms/authorsform.py 2009-07-14 18:38:33 +0000 | |||
642 | +++ openlp/plugins/songs/forms/authorsform.py 2009-07-18 05:43:50 +0000 | |||
643 | @@ -51,7 +51,8 @@ | |||
644 | 51 | Refresh the screen and rest fields | 51 | Refresh the screen and rest fields |
645 | 52 | """ | 52 | """ |
646 | 53 | self.AuthorListWidget.clear() | 53 | self.AuthorListWidget.clear() |
648 | 54 | self.onClearButtonClick() # tidy up screen | 54 | # tidy up screen |
649 | 55 | self.onClearButtonClick() | ||
650 | 55 | authors = self.songmanager.get_authors() | 56 | authors = self.songmanager.get_authors() |
651 | 56 | for author in authors: | 57 | for author in authors: |
652 | 57 | author_name = QtGui.QListWidgetItem(author.display_name) | 58 | author_name = QtGui.QListWidgetItem(author.display_name) |
653 | @@ -127,6 +128,9 @@ | |||
654 | 127 | self.DisplayEdit.setFocus() | 128 | self.DisplayEdit.setFocus() |
655 | 128 | 129 | ||
656 | 129 | def _validate_form(self): | 130 | def _validate_form(self): |
657 | 131 | """ | ||
658 | 132 | Validate the form and set if Add button if valid. | ||
659 | 133 | """ | ||
660 | 130 | # We need at lease a display name | 134 | # We need at lease a display name |
661 | 131 | if len(self.DisplayEdit.displayText()) == 0: | 135 | if len(self.DisplayEdit.displayText()) == 0: |
662 | 132 | self.AddUpdateButton.setEnabled(False) | 136 | self.AddUpdateButton.setEnabled(False) |
663 | 133 | 137 | ||
664 | === modified file 'openlp/plugins/songs/forms/editsongdialog.py' | |||
665 | --- openlp/plugins/songs/forms/editsongdialog.py 2009-06-14 13:50:56 +0000 | |||
666 | +++ openlp/plugins/songs/forms/editsongdialog.py 2009-07-18 05:43:50 +0000 | |||
667 | @@ -178,9 +178,9 @@ | |||
668 | 178 | self.AuthorRemoveItem = QtGui.QPushButton(self.AuthorRemoveWidget) | 178 | self.AuthorRemoveItem = QtGui.QPushButton(self.AuthorRemoveWidget) |
669 | 179 | self.AuthorRemoveItem.setObjectName(u'AuthorRemoveItem') | 179 | self.AuthorRemoveItem.setObjectName(u'AuthorRemoveItem') |
670 | 180 | self.AuthorRemoveLayout.addWidget(self.AuthorRemoveItem) | 180 | self.AuthorRemoveLayout.addWidget(self.AuthorRemoveItem) |
674 | 181 | self.AddAuthorsButton = QtGui.QPushButton(self.AuthorRemoveWidget) | 181 | # self.AddAuthorsButton = QtGui.QPushButton(self.AuthorRemoveWidget) |
675 | 182 | self.AddAuthorsButton.setObjectName(u'AddAuthorsButton') | 182 | # self.AddAuthorsButton.setObjectName(u'AddAuthorsButton') |
676 | 183 | self.AuthorRemoveLayout.addWidget(self.AddAuthorsButton) | 183 | # self.AuthorRemoveLayout.addWidget(self.AddAuthorsButton) |
677 | 184 | self.AuthorsLayout.addWidget(self.AuthorRemoveWidget) | 184 | self.AuthorsLayout.addWidget(self.AuthorRemoveWidget) |
678 | 185 | self.AdditionalLayout.addWidget(self.AuthorsGroupBox) | 185 | self.AdditionalLayout.addWidget(self.AuthorsGroupBox) |
679 | 186 | self.SongBookGroup = QtGui.QGroupBox(self.AdditionalWidget) | 186 | self.SongBookGroup = QtGui.QGroupBox(self.AdditionalWidget) |
680 | @@ -197,14 +197,14 @@ | |||
681 | 197 | self.SongbookCombo.setSizePolicy(sizePolicy) | 197 | self.SongbookCombo.setSizePolicy(sizePolicy) |
682 | 198 | self.SongbookCombo.setObjectName(u'SongbookCombo') | 198 | self.SongbookCombo.setObjectName(u'SongbookCombo') |
683 | 199 | self.SongbookLayout.addWidget(self.SongbookCombo, 0, 0, 1, 1) | 199 | self.SongbookLayout.addWidget(self.SongbookCombo, 0, 0, 1, 1) |
692 | 200 | self.AddSongBookButton = QtGui.QPushButton(self.SongBookGroup) | 200 | # self.AddSongBookButton = QtGui.QPushButton(self.SongBookGroup) |
693 | 201 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) | 201 | # sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum) |
694 | 202 | sizePolicy.setHorizontalStretch(0) | 202 | # sizePolicy.setHorizontalStretch(0) |
695 | 203 | sizePolicy.setVerticalStretch(0) | 203 | # sizePolicy.setVerticalStretch(0) |
696 | 204 | sizePolicy.setHeightForWidth(self.AddSongBookButton.sizePolicy().hasHeightForWidth()) | 204 | # sizePolicy.setHeightForWidth(self.AddSongBookButton.sizePolicy().hasHeightForWidth()) |
697 | 205 | self.AddSongBookButton.setSizePolicy(sizePolicy) | 205 | # self.AddSongBookButton.setSizePolicy(sizePolicy) |
698 | 206 | self.AddSongBookButton.setObjectName(u'AddSongBookButton') | 206 | # self.AddSongBookButton.setObjectName(u'AddSongBookButton') |
699 | 207 | self.SongbookLayout.addWidget(self.AddSongBookButton, 0, 1, 1, 1) | 207 | # self.SongbookLayout.addWidget(self.AddSongBookButton, 0, 1, 1, 1) |
700 | 208 | self.AdditionalLayout.addWidget(self.SongBookGroup) | 208 | self.AdditionalLayout.addWidget(self.SongBookGroup) |
701 | 209 | self.TopicGroupBox = QtGui.QGroupBox(self.AdditionalWidget) | 209 | self.TopicGroupBox = QtGui.QGroupBox(self.AdditionalWidget) |
702 | 210 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) | 210 | sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred) |
703 | @@ -255,9 +255,9 @@ | |||
704 | 255 | self.TopicRemoveItem = QtGui.QPushButton(self.TopicRemoveWidget) | 255 | self.TopicRemoveItem = QtGui.QPushButton(self.TopicRemoveWidget) |
705 | 256 | self.TopicRemoveItem.setObjectName(u'TopicRemoveItem') | 256 | self.TopicRemoveItem.setObjectName(u'TopicRemoveItem') |
706 | 257 | self.TopicRemoveLayout.addWidget(self.TopicRemoveItem) | 257 | self.TopicRemoveLayout.addWidget(self.TopicRemoveItem) |
710 | 258 | self.AddTopicButton = QtGui.QPushButton(self.TopicRemoveWidget) | 258 | # self.AddTopicButton = QtGui.QPushButton(self.TopicRemoveWidget) |
711 | 259 | self.AddTopicButton.setObjectName(u'AddTopicButton') | 259 | # self.AddTopicButton.setObjectName(u'AddTopicButton') |
712 | 260 | self.TopicRemoveLayout.addWidget(self.AddTopicButton) | 260 | # self.TopicRemoveLayout.addWidget(self.AddTopicButton) |
713 | 261 | self.TopicLayout.addWidget(self.TopicRemoveWidget) | 261 | self.TopicLayout.addWidget(self.TopicRemoveWidget) |
714 | 262 | self.AdditionalLayout.addWidget(self.TopicGroupBox) | 262 | self.AdditionalLayout.addWidget(self.TopicGroupBox) |
715 | 263 | self.CopyrightgroupBox = QtGui.QGroupBox(self.AdditionalWidget) | 263 | self.CopyrightgroupBox = QtGui.QGroupBox(self.AdditionalWidget) |
716 | @@ -313,8 +313,9 @@ | |||
717 | 313 | EditSongDialog.setTabOrder(self.AuthorAddtoSongItem, self.AuthorsListView) | 313 | EditSongDialog.setTabOrder(self.AuthorAddtoSongItem, self.AuthorsListView) |
718 | 314 | EditSongDialog.setTabOrder(self.AuthorsListView, self.AuthorRemoveItem) | 314 | EditSongDialog.setTabOrder(self.AuthorsListView, self.AuthorRemoveItem) |
719 | 315 | EditSongDialog.setTabOrder(self.AuthorRemoveItem, self.SongbookCombo) | 315 | EditSongDialog.setTabOrder(self.AuthorRemoveItem, self.SongbookCombo) |
722 | 316 | EditSongDialog.setTabOrder(self.SongbookCombo, self.AddSongBookButton) | 316 | #EditSongDialog.setTabOrder(self.SongbookCombo, self.AddSongBookButton) |
723 | 317 | EditSongDialog.setTabOrder(self.AddSongBookButton, self.SongTopicCombo) | 317 | #EditSongDialog.setTabOrder(self.AddSongBookButton, self.SongTopicCombo) |
724 | 318 | EditSongDialog.setTabOrder(self.SongbookCombo, self.SongTopicCombo) | ||
725 | 318 | EditSongDialog.setTabOrder(self.SongTopicCombo, self.TopicsListView) | 319 | EditSongDialog.setTabOrder(self.SongTopicCombo, self.TopicsListView) |
726 | 319 | EditSongDialog.setTabOrder(self.TopicsListView, self.TopicRemoveItem) | 320 | EditSongDialog.setTabOrder(self.TopicsListView, self.TopicRemoveItem) |
727 | 320 | EditSongDialog.setTabOrder(self.TopicRemoveItem, self.CopyrightEditItem) | 321 | EditSongDialog.setTabOrder(self.TopicRemoveItem, self.CopyrightEditItem) |
728 | @@ -336,13 +337,13 @@ | |||
729 | 336 | self.AuthorsGroupBox.setTitle(translate(u'EditSongDialog', u'Authors')) | 337 | self.AuthorsGroupBox.setTitle(translate(u'EditSongDialog', u'Authors')) |
730 | 337 | self.AuthorAddtoSongItem.setText(translate(u'EditSongDialog', u'Add to Song')) | 338 | self.AuthorAddtoSongItem.setText(translate(u'EditSongDialog', u'Add to Song')) |
731 | 338 | self.AuthorRemoveItem.setText(translate(u'EditSongDialog', u'Remove')) | 339 | self.AuthorRemoveItem.setText(translate(u'EditSongDialog', u'Remove')) |
733 | 339 | self.AddAuthorsButton.setText(translate(u'EditSongDialog', u'Manage Authors')) | 340 | #self.AddAuthorsButton.setText(translate(u'EditSongDialog', u'Manage Authors')) |
734 | 340 | self.SongBookGroup.setTitle(translate(u'EditSongDialog', u'Song Book')) | 341 | self.SongBookGroup.setTitle(translate(u'EditSongDialog', u'Song Book')) |
736 | 341 | self.AddSongBookButton.setText(translate(u'EditSongDialog', u'Manage Song Books')) | 342 | #self.AddSongBookButton.setText(translate(u'EditSongDialog', u'Manage Song Books')) |
737 | 342 | self.TopicGroupBox.setTitle(translate(u'EditSongDialog', u'Topic')) | 343 | self.TopicGroupBox.setTitle(translate(u'EditSongDialog', u'Topic')) |
738 | 343 | self.AddTopicsToSongButton.setText(translate(u'EditSongDialog', u'Add to Song')) | 344 | self.AddTopicsToSongButton.setText(translate(u'EditSongDialog', u'Add to Song')) |
739 | 344 | self.TopicRemoveItem.setText(translate(u'EditSongDialog', u'Remove')) | 345 | self.TopicRemoveItem.setText(translate(u'EditSongDialog', u'Remove')) |
741 | 345 | self.AddTopicButton.setText(translate(u'EditSongDialog', u'Manage Topics')) | 346 | #self.AddTopicButton.setText(translate(u'EditSongDialog', u'Manage Topics')) |
742 | 346 | self.CopyrightgroupBox.setTitle(translate(u'EditSongDialog', u'Copyright Infomaton')) | 347 | self.CopyrightgroupBox.setTitle(translate(u'EditSongDialog', u'Copyright Infomaton')) |
743 | 347 | self.CopyrightInsertItem.setText(translate(u'EditSongDialog', u'(c)')) | 348 | self.CopyrightInsertItem.setText(translate(u'EditSongDialog', u'(c)')) |
744 | 348 | self.CCLILabel.setText(translate(u'EditSongDialog', u'CCLI Number:')) | 349 | self.CCLILabel.setText(translate(u'EditSongDialog', u'CCLI Number:')) |
745 | 349 | 350 | ||
746 | === modified file 'openlp/plugins/songs/forms/editsongform.py' | |||
747 | --- openlp/plugins/songs/forms/editsongform.py 2009-07-13 17:02:38 +0000 | |||
748 | +++ openlp/plugins/songs/forms/editsongform.py 2009-07-19 07:58:37 +0000 | |||
749 | @@ -40,24 +40,24 @@ | |||
750 | 40 | QtGui.QDialog.__init__(self, parent) | 40 | QtGui.QDialog.__init__(self, parent) |
751 | 41 | self.setupUi(self) | 41 | self.setupUi(self) |
752 | 42 | # Connecting signals and slots | 42 | # Connecting signals and slots |
755 | 43 | QtCore.QObject.connect(self.AddAuthorsButton, | 43 | # QtCore.QObject.connect(self.AddAuthorsButton, |
756 | 44 | QtCore.SIGNAL(u'clicked()'), self.onAddAuthorsButtonClicked) | 44 | # QtCore.SIGNAL(u'clicked()'), self.onAddAuthorsButtonClicked) |
757 | 45 | QtCore.QObject.connect(self.AuthorAddtoSongItem, | 45 | QtCore.QObject.connect(self.AuthorAddtoSongItem, |
758 | 46 | QtCore.SIGNAL(u'clicked()'), self.onAuthorAddtoSongItemClicked) | 46 | QtCore.SIGNAL(u'clicked()'), self.onAuthorAddtoSongItemClicked) |
759 | 47 | QtCore.QObject.connect(self.AuthorRemoveItem, | 47 | QtCore.QObject.connect(self.AuthorRemoveItem, |
760 | 48 | QtCore.SIGNAL(u'clicked()'), self.onAuthorRemovefromSongItemClicked) | 48 | QtCore.SIGNAL(u'clicked()'), self.onAuthorRemovefromSongItemClicked) |
761 | 49 | QtCore.QObject.connect(self.AuthorsListView, | 49 | QtCore.QObject.connect(self.AuthorsListView, |
762 | 50 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onAuthorsListViewPressed) | 50 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onAuthorsListViewPressed) |
765 | 51 | QtCore.QObject.connect(self.AddTopicButton, | 51 | # QtCore.QObject.connect(self.AddTopicButton, |
766 | 52 | QtCore.SIGNAL(u'clicked()'), self.onAddTopicButtonClicked) | 52 | # QtCore.SIGNAL(u'clicked()'), self.onAddTopicButtonClicked) |
767 | 53 | QtCore.QObject.connect(self.AddTopicsToSongButton, | 53 | QtCore.QObject.connect(self.AddTopicsToSongButton, |
768 | 54 | QtCore.SIGNAL(u'clicked()'), self.onTopicAddtoSongItemClicked) | 54 | QtCore.SIGNAL(u'clicked()'), self.onTopicAddtoSongItemClicked) |
769 | 55 | QtCore.QObject.connect(self.TopicRemoveItem, | 55 | QtCore.QObject.connect(self.TopicRemoveItem, |
770 | 56 | QtCore.SIGNAL(u'clicked()'), self.onTopicRemovefromSongItemClicked) | 56 | QtCore.SIGNAL(u'clicked()'), self.onTopicRemovefromSongItemClicked) |
771 | 57 | QtCore.QObject.connect(self.TopicsListView, | 57 | QtCore.QObject.connect(self.TopicsListView, |
772 | 58 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onTopicListViewPressed) | 58 | QtCore.SIGNAL(u'itemClicked(QListWidgetItem*)'), self.onTopicListViewPressed) |
775 | 59 | QtCore.QObject.connect(self.AddSongBookButton, | 59 | # QtCore.QObject.connect(self.AddSongBookButton, |
776 | 60 | QtCore.SIGNAL(u'clicked()'), self.onAddSongBookButtonClicked) | 60 | # QtCore.SIGNAL(u'clicked()'), self.onAddSongBookButtonClicked) |
777 | 61 | QtCore.QObject.connect(self.CopyrightInsertItem, | 61 | QtCore.QObject.connect(self.CopyrightInsertItem, |
778 | 62 | QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertItemTriggered) | 62 | QtCore.SIGNAL(u'clicked()'), self.onCopyrightInsertItemTriggered) |
779 | 63 | QtCore.QObject.connect(self.AddButton, | 63 | QtCore.QObject.connect(self.AddButton, |
780 | @@ -75,9 +75,9 @@ | |||
781 | 75 | # Create other objects and forms | 75 | # Create other objects and forms |
782 | 76 | self.songmanager = songmanager | 76 | self.songmanager = songmanager |
783 | 77 | self.eventmanager = eventmanager | 77 | self.eventmanager = eventmanager |
787 | 78 | self.authors_form = AuthorsForm(self.songmanager) | 78 | # self.authors_form = AuthorsForm(self.songmanager) |
788 | 79 | self.topics_form = TopicsForm(self.songmanager) | 79 | # self.topics_form = TopicsForm(self.songmanager) |
789 | 80 | self.song_book_form = SongBookForm(self.songmanager) | 80 | # self.song_book_form = SongBookForm(self.songmanager) |
790 | 81 | self.verse_form = EditVerseForm() | 81 | self.verse_form = EditVerseForm() |
791 | 82 | self.initialise() | 82 | self.initialise() |
792 | 83 | self.AuthorsListView.setSortingEnabled(False) | 83 | self.AuthorsListView.setSortingEnabled(False) |
793 | @@ -86,9 +86,6 @@ | |||
794 | 86 | self.TopicsListView.setAlternatingRowColors(True) | 86 | self.TopicsListView.setAlternatingRowColors(True) |
795 | 87 | 87 | ||
796 | 88 | def initialise(self): | 88 | def initialise(self): |
797 | 89 | self.loadAuthors() | ||
798 | 90 | self.loadTopics() | ||
799 | 91 | self.loadBooks() | ||
800 | 92 | self.EditButton.setEnabled(False) | 89 | self.EditButton.setEnabled(False) |
801 | 93 | self.DeleteButton.setEnabled(False) | 90 | self.DeleteButton.setEnabled(False) |
802 | 94 | self.AuthorRemoveItem.setEnabled(False) | 91 | self.AuthorRemoveItem.setEnabled(False) |
803 | @@ -140,26 +137,32 @@ | |||
804 | 140 | self.TopicsListView.clear() | 137 | self.TopicsListView.clear() |
805 | 141 | self.title_change = False | 138 | self.title_change = False |
806 | 142 | self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason) | 139 | self.TitleEditItem.setFocus(QtCore.Qt.OtherFocusReason) |
807 | 140 | self.loadAuthors() | ||
808 | 141 | self.loadTopics() | ||
809 | 142 | self.loadBooks() | ||
810 | 143 | 143 | ||
811 | 144 | def loadSong(self, id): | 144 | def loadSong(self, id): |
812 | 145 | log.debug(u'Load Song') | 145 | log.debug(u'Load Song') |
813 | 146 | self.loadAuthors() | ||
814 | 147 | self.loadTopics() | ||
815 | 148 | self.loadBooks() | ||
816 | 146 | self.song = self.songmanager.get_song(id) | 149 | self.song = self.songmanager.get_song(id) |
817 | 147 | self.TitleEditItem.setText(self.song.title) | 150 | self.TitleEditItem.setText(self.song.title) |
818 | 148 | title = self.song.search_title.split(u'@') | 151 | title = self.song.search_title.split(u'@') |
819 | 149 | if self.song.song_book_id != 0: | 152 | if self.song.song_book_id != 0: |
820 | 150 | book_name = self.songmanager.get_book(self.song.song_book_id) | 153 | book_name = self.songmanager.get_book(self.song.song_book_id) |
822 | 151 | id = self.SongbookCombo.findText(unicode(book_name), QtCore.Qt.MatchExactly) | 154 | id = self.SongbookCombo.findText(unicode(book_name.name), QtCore.Qt.MatchExactly) |
823 | 152 | if id == -1: | 155 | if id == -1: |
824 | 153 | # Not Found | 156 | # Not Found |
825 | 154 | id = 0 | 157 | id = 0 |
827 | 155 | book_name.setCurrentIndex(id) | 158 | self.SongbookCombo.setCurrentIndex(id) |
828 | 156 | if self.song.theme_name is not None and len(self.song.theme_name) > 0: | 159 | if self.song.theme_name is not None and len(self.song.theme_name) > 0: |
830 | 157 | id = self.SongbookCombo.findText(unicode(self.song.theme_name), QtCore.Qt.MatchExactly) | 160 | id = self.ThemeSelectionComboItem.findText(unicode(self.song.theme_name), QtCore.Qt.MatchExactly) |
831 | 158 | if id == -1: | 161 | if id == -1: |
832 | 159 | # Not Found | 162 | # Not Found |
833 | 160 | id = 0 | 163 | id = 0 |
834 | 161 | self.song.theme_name = None | 164 | self.song.theme_name = None |
836 | 162 | self.SongbookCombo.setCurrentIndex(id) | 165 | self.ThemeSelectionComboItem.setCurrentIndex(id) |
837 | 163 | if len(title) > 1: | 166 | if len(title) > 1: |
838 | 164 | self.AlternativeEdit.setText(title[1]) | 167 | self.AlternativeEdit.setText(title[1]) |
839 | 165 | if self.song.copyright is not None: | 168 | if self.song.copyright is not None: |
840 | @@ -207,15 +210,16 @@ | |||
841 | 207 | 210 | ||
842 | 208 | def onAuthorAddtoSongItemClicked(self): | 211 | def onAuthorAddtoSongItemClicked(self): |
843 | 209 | item = int(self.AuthorsSelectionComboItem.currentIndex()) | 212 | item = int(self.AuthorsSelectionComboItem.currentIndex()) |
850 | 210 | item_id = (self.AuthorsSelectionComboItem.itemData(item)).toInt()[0] | 213 | if item > -1: |
851 | 211 | author = self.songmanager.get_author(item_id) | 214 | item_id = (self.AuthorsSelectionComboItem.itemData(item)).toInt()[0] |
852 | 212 | self.song.authors.append(author) | 215 | author = self.songmanager.get_author(item_id) |
853 | 213 | author_item = QtGui.QListWidgetItem(unicode(author.display_name)) | 216 | self.song.authors.append(author) |
854 | 214 | author_item.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) | 217 | author_item = QtGui.QListWidgetItem(unicode(author.display_name)) |
855 | 215 | self.AuthorsListView.addItem(author_item) | 218 | author_item.setData(QtCore.Qt.UserRole, QtCore.QVariant(author.id)) |
856 | 219 | self.AuthorsListView.addItem(author_item) | ||
857 | 216 | 220 | ||
858 | 217 | def onAuthorsListViewPressed(self): | 221 | def onAuthorsListViewPressed(self): |
860 | 218 | if self.AuthorsListView.count() >1: | 222 | if self.AuthorsListView.count() > 1: |
861 | 219 | self.AuthorRemoveItem.setEnabled(True) | 223 | self.AuthorRemoveItem.setEnabled(True) |
862 | 220 | 224 | ||
863 | 221 | def onAuthorRemovefromSongItemClicked(self): | 225 | def onAuthorRemovefromSongItemClicked(self): |
864 | @@ -229,12 +233,13 @@ | |||
865 | 229 | 233 | ||
866 | 230 | def onTopicAddtoSongItemClicked(self): | 234 | def onTopicAddtoSongItemClicked(self): |
867 | 231 | item = int(self.SongTopicCombo.currentIndex()) | 235 | item = int(self.SongTopicCombo.currentIndex()) |
874 | 232 | item_id = (self.SongTopicCombo.itemData(item)).toInt()[0] | 236 | if item > -1: |
875 | 233 | topic = self.songmanager.get_topic(item_id) | 237 | item_id = (self.SongTopicCombo.itemData(item)).toInt()[0] |
876 | 234 | self.song.topics.append(topic) | 238 | topic = self.songmanager.get_topic(item_id) |
877 | 235 | topic_item = QtGui.QListWidgetItem(unicode(topic.name)) | 239 | self.song.topics.append(topic) |
878 | 236 | topic_item.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id)) | 240 | topic_item = QtGui.QListWidgetItem(unicode(topic.name)) |
879 | 237 | self.TopicsListView.addItem(topic_item) | 241 | topic_item.setData(QtCore.Qt.UserRole, QtCore.QVariant(topic.id)) |
880 | 242 | self.TopicsListView.addItem(topic_item) | ||
881 | 238 | 243 | ||
882 | 239 | def onTopicListViewPressed(self): | 244 | def onTopicListViewPressed(self): |
883 | 240 | self.TopicRemoveItem.setEnabled(True) | 245 | self.TopicRemoveItem.setEnabled(True) |
884 | @@ -247,29 +252,30 @@ | |||
885 | 247 | self.song.topics.remove(topic) | 252 | self.song.topics.remove(topic) |
886 | 248 | row = self.TopicsListView.row(item) | 253 | row = self.TopicsListView.row(item) |
887 | 249 | self.TopicsListView.takeItem(row) | 254 | self.TopicsListView.takeItem(row) |
911 | 250 | def onAddAuthorsButtonClicked(self): | 255 | |
912 | 251 | """ | 256 | # def onAddAuthorsButtonClicked(self): |
913 | 252 | Slot documentation goes here. | 257 | # """ |
914 | 253 | """ | 258 | # Slot documentation goes here. |
915 | 254 | self.authors_form.load_form() | 259 | # """ |
916 | 255 | self.authors_form.exec_() | 260 | # self.authors_form.load_form() |
917 | 256 | self.loadAuthors() | 261 | # self.authors_form.exec_() |
918 | 257 | 262 | # self.loadAuthors() | |
919 | 258 | def onAddTopicButtonClicked(self): | 263 | # |
920 | 259 | """ | 264 | # def onAddTopicButtonClicked(self): |
921 | 260 | Slot documentation goes here. | 265 | # """ |
922 | 261 | """ | 266 | # Slot documentation goes here. |
923 | 262 | self.topics_form.load_form() | 267 | # """ |
924 | 263 | self.topics_form.exec_() | 268 | # self.topics_form.load_form() |
925 | 264 | self.loadTopics() | 269 | # self.topics_form.exec_() |
926 | 265 | 270 | # self.loadTopics() | |
927 | 266 | def onAddSongBookButtonClicked(self): | 271 | # |
928 | 267 | """ | 272 | # def onAddSongBookButtonClicked(self): |
929 | 268 | Slot documentation goes here. | 273 | # """ |
930 | 269 | """ | 274 | # Slot documentation goes here. |
931 | 270 | self.song_book_form.load_form() | 275 | # """ |
932 | 271 | self.song_book_form.exec_() | 276 | # self.song_book_form.load_form() |
933 | 272 | self.loadBooks() | 277 | # self.song_book_form.exec_() |
934 | 278 | # self.loadBooks() | ||
935 | 273 | 279 | ||
936 | 274 | def onSongBookComboChanged(self, item): | 280 | def onSongBookComboChanged(self, item): |
937 | 275 | if item == 0: | 281 | if item == 0: |
938 | @@ -301,7 +307,7 @@ | |||
939 | 301 | self.verse_form.setVerse(item.text()) | 307 | self.verse_form.setVerse(item.text()) |
940 | 302 | self.verse_form.exec_() | 308 | self.verse_form.exec_() |
941 | 303 | item.setText(self.verse_form.getVerse()) | 309 | item.setText(self.verse_form.getVerse()) |
943 | 304 | self.VerseListWidget.update() | 310 | self.VerseListWidget.repaint() |
944 | 305 | self.EditButton.setEnabled(False) | 311 | self.EditButton.setEnabled(False) |
945 | 306 | self.DeleteButton.setEnabled(False) | 312 | self.DeleteButton.setEnabled(False) |
946 | 307 | 313 | ||
947 | @@ -367,7 +373,6 @@ | |||
948 | 367 | self.song.ccli_number = unicode(self.CCLNumberEdit.displayText()) | 373 | self.song.ccli_number = unicode(self.CCLNumberEdit.displayText()) |
949 | 368 | self.processLyrics() | 374 | self.processLyrics() |
950 | 369 | self.processTitle() | 375 | self.processTitle() |
951 | 370 | self.song.song_book_id = 0 | ||
952 | 371 | self.songmanager.save_song(self.song) | 376 | self.songmanager.save_song(self.song) |
953 | 372 | if self.title_change: | 377 | if self.title_change: |
954 | 373 | self.eventmanager.post_event(Event(EventType.LoadSongList)) | 378 | self.eventmanager.post_event(Event(EventType.LoadSongList)) |
955 | 374 | 379 | ||
956 | === modified file 'openlp/plugins/songs/lib/manager.py' | |||
957 | --- openlp/plugins/songs/lib/manager.py 2009-07-08 05:12:16 +0000 | |||
958 | +++ openlp/plugins/songs/lib/manager.py 2009-07-18 07:30:26 +0000 | |||
959 | @@ -55,13 +55,9 @@ | |||
960 | 55 | self.config.get_config(u'db hostname') + u'/' + \ | 55 | self.config.get_config(u'db hostname') + u'/' + \ |
961 | 56 | self.config.get_config(u'db database') | 56 | self.config.get_config(u'db database') |
962 | 57 | self.session = init_models(self.db_url) | 57 | self.session = init_models(self.db_url) |
965 | 58 | if not songs_table.exists(): | 58 | metadata.create_all(checkfirst=True) |
964 | 59 | metadata.create_all() | ||
966 | 60 | log.debug(u'Song Initialised') | 59 | log.debug(u'Song Initialised') |
967 | 61 | 60 | ||
968 | 62 | # def process_dialog(self, dialogobject): | ||
969 | 63 | # self.dialogobject = dialogobject | ||
970 | 64 | |||
971 | 65 | def get_songs(self): | 61 | def get_songs(self): |
972 | 66 | """ | 62 | """ |
973 | 67 | Returns the details of a song | 63 | Returns the details of a song |
974 | 68 | 64 | ||
975 | === modified file 'openlp/plugins/songs/lib/mediaitem.py' | |||
976 | --- openlp/plugins/songs/lib/mediaitem.py 2009-07-04 05:52:30 +0000 | |||
977 | +++ openlp/plugins/songs/lib/mediaitem.py 2009-07-18 05:43:50 +0000 | |||
978 | @@ -22,7 +22,7 @@ | |||
979 | 22 | from PyQt4 import QtCore, QtGui | 22 | from PyQt4 import QtCore, QtGui |
980 | 23 | from openlp.core.lib import MediaManagerItem, translate, ServiceItem, SongXMLParser , contextMenuAction, contextMenuSeparator | 23 | from openlp.core.lib import MediaManagerItem, translate, ServiceItem, SongXMLParser , contextMenuAction, contextMenuSeparator |
981 | 24 | 24 | ||
983 | 25 | from openlp.plugins.songs.forms import EditSongForm | 25 | from openlp.plugins.songs.forms import EditSongForm, AuthorsForm, TopicsForm, SongBookForm |
984 | 26 | 26 | ||
985 | 27 | class SongList(QtGui.QListWidget): | 27 | class SongList(QtGui.QListWidget): |
986 | 28 | 28 | ||
987 | @@ -59,6 +59,9 @@ | |||
988 | 59 | self.ConfigSection = u'song' | 59 | self.ConfigSection = u'song' |
989 | 60 | MediaManagerItem.__init__(self, parent, icon, title) | 60 | MediaManagerItem.__init__(self, parent, icon, title) |
990 | 61 | self.edit_song_form = EditSongForm(self.parent.songmanager, self.parent.event_manager) | 61 | self.edit_song_form = EditSongForm(self.parent.songmanager, self.parent.event_manager) |
991 | 62 | self.authors_form = AuthorsForm(self.parent.songmanager) | ||
992 | 63 | self.topics_form = TopicsForm(self.parent.songmanager) | ||
993 | 64 | self.song_book_form = SongBookForm(self.parent.songmanager) | ||
994 | 62 | 65 | ||
995 | 63 | def setupUi(self): | 66 | def setupUi(self): |
996 | 64 | # Add a toolbar | 67 | # Add a toolbar |
997 | @@ -90,6 +93,19 @@ | |||
998 | 90 | self.addToolbarButton(translate(u'SongMediaItem', u'Add Song To Service'), | 93 | self.addToolbarButton(translate(u'SongMediaItem', u'Add Song To Service'), |
999 | 91 | translate(u'SongMediaItem', u'Add the selected song(s) to the service'), | 94 | translate(u'SongMediaItem', u'Add the selected song(s) to the service'), |
1000 | 92 | ':/system/system_add.png', self.onSongAddClick, 'SongAddItem') | 95 | ':/system/system_add.png', self.onSongAddClick, 'SongAddItem') |
1001 | 96 | self.addToolbarSeparator() | ||
1002 | 97 | ## Author Edit Button ## | ||
1003 | 98 | self.addToolbarButton(translate(u'SongMediaItem', u'Edit Authors'), | ||
1004 | 99 | translate(u'SongMediaItem', u'Maintain the list of Song Authors'), | ||
1005 | 100 | ':/songs/song_author_edit.png', self.onEditAuthorClick, 'SongAuthorEditItem') | ||
1006 | 101 | ## Author Edit Button ## | ||
1007 | 102 | self.addToolbarButton(translate(u'SongMediaItem', u'Edit Books'), | ||
1008 | 103 | translate(u'SongMediaItem', u'Maintain the list of Song Books'), | ||
1009 | 104 | ':/songs/song_book_edit.png', self.onEditBookClick, 'SongAuthorEditItem') | ||
1010 | 105 | ## Author Edit Button ## | ||
1011 | 106 | self.addToolbarButton(translate(u'SongMediaItem', u'Edit Topics'), | ||
1012 | 107 | translate(u'SongMediaItem', u'Maintain the list of Song Topics'), | ||
1013 | 108 | ':/songs/song_topic_edit.png', self.onEditTopicClick, 'SongAuthorEditItem') | ||
1014 | 93 | ## Add the songlist widget ## | 109 | ## Add the songlist widget ## |
1015 | 94 | # Create the tab widget | 110 | # Create the tab widget |
1016 | 95 | self.SongWidget = QtGui.QWidget(self) | 111 | self.SongWidget = QtGui.QWidget(self) |
1017 | @@ -222,6 +238,18 @@ | |||
1018 | 222 | self.edit_song_form.newSong() | 238 | self.edit_song_form.newSong() |
1019 | 223 | self.edit_song_form.exec_() | 239 | self.edit_song_form.exec_() |
1020 | 224 | 240 | ||
1021 | 241 | def onEditAuthorClick(self): | ||
1022 | 242 | self.authors_form.load_form() | ||
1023 | 243 | self.authors_form.exec_() | ||
1024 | 244 | |||
1025 | 245 | def onEditTopicClick(self): | ||
1026 | 246 | self.topics_form.load_form() | ||
1027 | 247 | self.topics_form.exec_() | ||
1028 | 248 | |||
1029 | 249 | def onEditBookClick(self): | ||
1030 | 250 | self.song_book_form.load_form() | ||
1031 | 251 | self.song_book_form.exec_() | ||
1032 | 252 | |||
1033 | 225 | def onSongEditClick(self): | 253 | def onSongEditClick(self): |
1034 | 226 | item = self.ListView.currentItem() | 254 | item = self.ListView.currentItem() |
1035 | 227 | if item is not None: | 255 | if item is not None: |
1036 | 228 | 256 | ||
1037 | === modified file 'resources/images/openlp-2.qrc' | |||
1038 | --- resources/images/openlp-2.qrc 2009-07-03 19:08:21 +0000 | |||
1039 | +++ resources/images/openlp-2.qrc 2009-07-18 05:43:50 +0000 | |||
1040 | @@ -4,6 +4,9 @@ | |||
1041 | 4 | <file>song_edit.png</file> | 4 | <file>song_edit.png</file> |
1042 | 5 | <file>song_export.png</file> | 5 | <file>song_export.png</file> |
1043 | 6 | <file>song_new.png</file> | 6 | <file>song_new.png</file> |
1044 | 7 | <file>song_author_edit.png</file> | ||
1045 | 8 | <file>song_topic_edit.png</file> | ||
1046 | 9 | <file>song_book_edit.png</file> | ||
1047 | 7 | </qresource> | 10 | </qresource> |
1048 | 8 | <qresource prefix="slides" > | 11 | <qresource prefix="slides" > |
1049 | 9 | <file>slide_close.png</file> | 12 | <file>slide_close.png</file> |
1050 | 10 | 13 | ||
1051 | === added file 'resources/images/song_author_edit.png' | |||
1052 | 11 | Binary files resources/images/song_author_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_author_edit.png 2009-07-18 05:45:44 +0000 differ | 14 | Binary files resources/images/song_author_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_author_edit.png 2009-07-18 05:45:44 +0000 differ |
1053 | === added file 'resources/images/song_book_edit.png' | |||
1054 | 12 | Binary files resources/images/song_book_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_book_edit.png 2009-07-18 05:45:44 +0000 differ | 15 | Binary files resources/images/song_book_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_book_edit.png 2009-07-18 05:45:44 +0000 differ |
1055 | === added file 'resources/images/song_topic_edit.png' | |||
1056 | 13 | Binary files resources/images/song_topic_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_topic_edit.png 2009-07-18 05:45:44 +0000 differ | 16 | Binary files resources/images/song_topic_edit.png 1970-01-01 00:00:00 +0000 and resources/images/song_topic_edit.png 2009-07-18 05:45:44 +0000 differ |
1057 | === added file 'songcnv.sh' | |||
1058 | --- songcnv.sh 1970-01-01 00:00:00 +0000 | |||
1059 | +++ songcnv.sh 2009-07-19 06:31:08 +0000 | |||
1060 | @@ -0,0 +1,5 @@ | |||
1061 | 1 | /usr/bin/sqlite ~/.local/share/openlp/songs/songs.olp .dump > ~/.local/share/openlp/songs/songs.dmp | ||
1062 | 2 | ./cnvdb.py ~/.local/share/openlp/songs/songs.dmp ~/.local/share/openlp/songs/songs.dmp2 | ||
1063 | 3 | rm ~/.local/share/openlp/songs/songs.sqlite | ||
1064 | 4 | sqlite3 ~/.local/share/openlp/songs/songs.sqlite < ~/.local/share/openlp/songs/songs.dmp2 | ||
1065 | 5 | ./openlpcnv.pyw |
Fixed song editing bugs
moved the Author / Topic / Book editing to the toolbar with some icons.
Fixed up the song migration code a bit to stop duplicate authors
Wrote noddy script to regenerate database for 1.x version
Fixed Alerts so the work and are preserved over song slide change and song change.