Merge lp:~raoul-snyman/openlp/bug-845692 into lp:openlp
- bug-845692
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 1891 |
Proposed branch: | lp:~raoul-snyman/openlp/bug-845692 |
Merge into: | lp:openlp |
Diff against target: |
769 lines (+294/-138) 9 files modified
openlp/core/lib/ui.py (+1/-0) openlp/core/resources.py (+100/-60) openlp/core/ui/generaltab.py (+10/-1) openlp/core/ui/maindisplay.py (+38/-3) openlp/core/ui/slidecontroller.py (+84/-14) openlp/plugins/songs/lib/songstab.py (+48/-48) resources/images/openlp-2.qrc (+1/-0) scripts/resources.patch (+6/-6) scripts/translation_utils.py (+6/-6) |
To merge this branch: | bzr merge lp:~raoul-snyman/openlp/bug-845692 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Meinert Jordan (community) | Needs Fixing | ||
Jonathan Corwin (community) | Approve | ||
Tim Bentley | Pending | ||
Review via email: mp+95794@code.launchpad.net |
This proposal supersedes a proposal from 2012-02-25.
Commit message
Fixed bug #845692 by adding the missing features, including the ability to repeat the list of tracks, and the ability to move to a particular track via a convenient menu option.
Description of the change
Added in the missing features in the background audio for songs.
- option to start the song paused
- option to repeat list
- button to go to the next track
- time remaining counter
- list of tracks for easy access
Tim Bentley (trb143) wrote : Posted in a previous version of this proposal | # |
Tim Bentley (trb143) : Posted in a previous version of this proposal | # |
Tim Bentley (trb143) : Posted in a previous version of this proposal | # |
Jonathan Corwin (j-corwin) wrote : Posted in a previous version of this proposal | # |
With the repeat track list turned off, I clicked next track when the last track was playing, and the music stopped playing. Fine.
However I then selected a different track via the menu, but it didn't play. I had to press the pause button twice before I heard anything.
Jonathan Corwin (j-corwin) : | # |
Meinert Jordan (m2j) wrote : | # |
511 - if slideHeight != 0:
512 + if not slideHeight:
I changed this in my cleanups tree as well, so I saw the conflict. When I changed this, It took me some while to figure out, what is right.
P.S.: I'm just about merging this tree into mine to resolve the conflicts.
Meinert Jordan (m2j) : | # |
Preview Diff
1 | === modified file 'openlp/core/lib/ui.py' |
2 | --- openlp/core/lib/ui.py 2011-12-27 10:33:55 +0000 |
3 | +++ openlp/core/lib/ui.py 2012-03-04 18:13:20 +0000 |
4 | @@ -93,6 +93,7 @@ |
5 | self.New = translate('OpenLP.Ui', 'New') |
6 | self.NewService = translate('OpenLP.Ui', 'New Service') |
7 | self.NewTheme = translate('OpenLP.Ui', 'New Theme') |
8 | + self.NextTrack = translate('OpenLP.Ui', 'Next Track') |
9 | self.NFSs = translate('OpenLP.Ui', 'No File Selected', 'Singular') |
10 | self.NFSp = translate('OpenLP.Ui', 'No Files Selected', 'Plural') |
11 | self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') |
12 | |
13 | === modified file 'openlp/core/resources.py' |
14 | --- openlp/core/resources.py 2012-01-29 21:22:20 +0000 |
15 | +++ openlp/core/resources.py 2012-03-04 18:13:20 +0000 |
16 | @@ -73947,6 +73947,40 @@ |
17 | \x23\xab\xe7\xf3\xa3\xf9\x51\x3d\x6f\x64\xcd\x9a\x10\x42\xfc\x07\ |
18 | \x7b\x2d\x6e\x9f\x2f\x2d\x37\x8c\x00\x00\x00\x00\x49\x45\x4e\x44\ |
19 | \xae\x42\x60\x82\ |
20 | +\x00\x00\x01\xfa\ |
21 | +\x89\ |
22 | +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ |
23 | +\x00\x00\x10\x00\x00\x00\x10\x08\x04\x00\x00\x00\xb5\xfa\x37\xea\ |
24 | +\x00\x00\x00\x02\x73\x42\x49\x54\x08\x08\x55\xec\x46\x04\x00\x00\ |
25 | +\x00\x09\x70\x48\x59\x73\x00\x00\x01\xbb\x00\x00\x01\xbb\x01\x3a\ |
26 | +\xec\xe3\xe2\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6f\x66\x74\x77\ |
27 | +\x61\x72\x65\x00\x77\x77\x77\x2e\x69\x6e\x6b\x73\x63\x61\x70\x65\ |
28 | +\x2e\x6f\x72\x67\x9b\xee\x3c\x1a\x00\x00\x01\x79\x49\x44\x41\x54\ |
29 | +\x18\x19\x05\xc1\x41\x4b\x53\x01\x1c\x00\xf0\xff\x3b\xf5\x11\x0a\ |
30 | +\x3c\x75\x68\x1f\xc1\x4b\x5f\x20\x82\x52\xd7\x36\x19\xc3\x52\x48\ |
31 | +\x13\x95\xe4\x6d\x62\x4d\x93\xf9\x10\xbb\x55\x74\x0a\x22\xfa\x16\ |
32 | +\x1b\x65\xd0\x17\x08\x62\x50\x1e\x42\xbc\x78\x79\x19\xd5\x7a\x09\ |
33 | +\x3b\xac\x8d\x5f\xbf\x5f\x08\x21\xc4\x61\xe9\x20\xcb\xba\x9d\xbc\ |
34 | +\x93\x67\xdd\x83\xec\xb0\x24\x84\x10\x21\x44\x27\xd9\x4b\xdb\xc3\ |
35 | +\xa6\x2d\x1d\x1d\x5b\x9a\xda\xc3\xbd\xb4\x93\x08\x11\x62\x27\x69\ |
36 | +\xf7\x36\x3d\x72\xa4\xef\x9b\x13\x5f\x1d\xd9\xb6\xa9\xdd\xdb\x49\ |
37 | +\x44\x88\x56\xba\xee\xb9\x2f\xbe\x1b\xf8\xeb\x42\xe1\x87\x53\xcf\ |
38 | +\xac\x6b\xa5\x22\xd2\xd2\xc6\xb0\xe5\xd8\x7b\xbf\xfc\x33\x31\x31\ |
39 | +\x36\x52\x38\xb3\x65\x63\x98\x96\x62\x2d\x5b\xf2\xd1\x4f\x6f\xbd\ |
40 | +\x72\x0c\xd8\x54\x57\xe8\x5b\xb2\xb6\x1f\xcb\xdd\x15\x9f\x15\x5e\ |
41 | +\xda\xf5\xd0\x1b\x17\x58\x31\x6d\xe4\xdc\xaa\xe5\x6e\x2c\xe6\x2d\ |
42 | +\x7d\x03\x75\x15\xb7\xd5\x35\xf5\xcd\x9b\x32\x36\xb0\x6b\x31\x8f\ |
43 | +\x85\xbc\xe9\x58\x61\xda\x65\x97\x5c\x73\xc7\x27\xb7\x84\x89\xc2\ |
44 | +\x13\x0b\x79\x34\xba\x8b\xfa\x06\xae\xbb\xea\x8a\xa6\x3f\x28\x9b\ |
45 | +\x32\x36\x70\x5f\xa3\x1b\x8d\xac\xe2\x9d\x73\x37\xdd\xf0\x01\x70\ |
46 | +\xd7\xb4\x91\x13\x15\x8d\xfd\xa8\x97\xaa\xc3\x07\x4e\xbd\xf0\x1b\ |
47 | +\x00\x63\x85\x96\xea\xb0\x5e\x0a\x51\x4b\x67\x3d\x75\xa6\x30\x32\ |
48 | +\x36\x31\x36\x52\x78\x6d\x56\x2d\x15\x21\xe6\x93\x5a\x6f\xc6\xaa\ |
49 | +\xbe\x73\x03\x85\x81\x13\x4d\x33\x6a\xbd\xf9\x44\x84\x10\xb5\xa4\ |
50 | +\x92\x96\x87\x33\x16\x6c\x7b\xec\x9e\x19\xe5\x61\x25\xad\x25\x42\ |
51 | +\x84\x10\x42\x54\x4b\x95\xac\xdc\x9d\xcb\xe7\xf2\x72\xb7\x92\x55\ |
52 | +\x4b\x42\x08\xf1\x1f\x89\xdc\x66\xb7\x16\x84\x77\xf6\x00\x00\x00\ |
53 | +\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ |
54 | \x00\x00\x02\x0f\ |
55 | \x89\ |
56 | \x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ |
57 | @@ -82318,6 +82352,11 @@ |
58 | \x00\x6d\ |
59 | \x00\x65\x00\x64\x00\x69\x00\x61\x00\x5f\x00\x70\x00\x6c\x00\x61\x00\x79\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x5f\x00\x73\x00\x74\ |
60 | \x00\x61\x00\x72\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ |
61 | +\x00\x17\ |
62 | +\x02\x02\x37\x87\ |
63 | +\x00\x6d\ |
64 | +\x00\x65\x00\x64\x00\x69\x00\x61\x00\x5f\x00\x70\x00\x6c\x00\x61\x00\x79\x00\x62\x00\x61\x00\x63\x00\x6b\x00\x5f\x00\x6e\x00\x65\ |
65 | +\x00\x78\x00\x74\x00\x2e\x00\x70\x00\x6e\x00\x67\ |
66 | \x00\x0e\ |
67 | \x09\x02\x2d\x47\ |
68 | \x00\x73\ |
69 | @@ -82559,15 +82598,15 @@ |
70 | |
71 | qt_resource_struct = "\ |
72 | \x00\x00\x00\x00\x00\x02\x00\x00\x00\x12\x00\x00\x00\x01\ |
73 | -\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x82\ |
74 | -\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x7e\ |
75 | -\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x7b\ |
76 | -\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x67\ |
77 | -\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x65\ |
78 | -\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x63\ |
79 | -\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x05\x00\x00\x00\x5e\ |
80 | -\x00\x00\x01\x2e\x00\x02\x00\x00\x00\x09\x00\x00\x00\x55\ |
81 | -\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x09\x00\x00\x00\x4c\ |
82 | +\x00\x00\x00\xe6\x00\x02\x00\x00\x00\x06\x00\x00\x00\x83\ |
83 | +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x7f\ |
84 | +\x00\x00\x00\xb4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x7c\ |
85 | +\x00\x00\x00\xd6\x00\x02\x00\x00\x00\x14\x00\x00\x00\x68\ |
86 | +\x00\x00\x00\x2c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x66\ |
87 | +\x00\x00\x00\x14\x00\x02\x00\x00\x00\x02\x00\x00\x00\x64\ |
88 | +\x00\x00\x00\xf4\x00\x02\x00\x00\x00\x05\x00\x00\x00\x5f\ |
89 | +\x00\x00\x01\x2e\x00\x02\x00\x00\x00\x09\x00\x00\x00\x56\ |
90 | +\x00\x00\x00\x8c\x00\x02\x00\x00\x00\x0a\x00\x00\x00\x4c\ |
91 | \x00\x00\x00\xc4\x00\x02\x00\x00\x00\x03\x00\x00\x00\x49\ |
92 | \x00\x00\x00\x3c\x00\x02\x00\x00\x00\x10\x00\x00\x00\x39\ |
93 | \x00\x00\x00\x62\x00\x02\x00\x00\x00\x03\x00\x00\x00\x36\ |
94 | @@ -82582,23 +82621,23 @@ |
95 | \x00\x00\x03\xec\x00\x00\x00\x00\x00\x01\x00\x05\x65\x6d\ |
96 | \x00\x00\x04\x1a\x00\x00\x00\x00\x00\x01\x00\x08\x06\x4f\ |
97 | \x00\x00\x03\xbc\x00\x00\x00\x00\x00\x01\x00\x02\xc4\x8b\ |
98 | -\x00\x00\x0e\xf8\x00\x00\x00\x00\x00\x01\x00\x13\x7d\x14\ |
99 | -\x00\x00\x0f\x68\x00\x00\x00\x00\x00\x01\x00\x13\x84\x5f\ |
100 | -\x00\x00\x0e\xa8\x00\x00\x00\x00\x00\x01\x00\x13\x77\xb8\ |
101 | -\x00\x00\x10\x46\x00\x00\x00\x00\x00\x01\x00\x13\x96\xdd\ |
102 | -\x00\x00\x0f\xc8\x00\x00\x00\x00\x00\x01\x00\x13\x8c\x75\ |
103 | -\x00\x00\x0e\x50\x00\x00\x00\x00\x00\x01\x00\x13\x70\x81\ |
104 | -\x00\x00\x10\x98\x00\x00\x00\x00\x00\x01\x00\x13\x9c\xe4\ |
105 | -\x00\x00\x0f\x90\x00\x00\x00\x00\x00\x01\x00\x13\x87\xd3\ |
106 | -\x00\x00\x10\xe6\x00\x00\x00\x00\x00\x01\x00\x13\xa2\x10\ |
107 | -\x00\x00\x0e\x7a\x00\x00\x00\x00\x00\x01\x00\x13\x73\x1f\ |
108 | -\x00\x00\x10\x72\x00\x00\x00\x00\x00\x01\x00\x13\x9a\x10\ |
109 | -\x00\x00\x10\x1c\x00\x00\x00\x00\x00\x01\x00\x13\x94\x65\ |
110 | -\x00\x00\x0e\xce\x00\x00\x00\x00\x00\x01\x00\x13\x7a\x92\ |
111 | -\x00\x00\x10\xc2\x00\x00\x00\x00\x00\x01\x00\x13\x9f\xc9\ |
112 | -\x00\x00\x0f\xf0\x00\x00\x00\x00\x00\x01\x00\x13\x8f\xba\ |
113 | -\x00\x00\x0f\x44\x00\x00\x00\x00\x00\x01\x00\x13\x81\x62\ |
114 | -\x00\x00\x0f\x1e\x00\x00\x00\x00\x00\x01\x00\x13\x7f\x4b\ |
115 | +\x00\x00\x0f\x2c\x00\x00\x00\x00\x00\x01\x00\x13\x7f\x12\ |
116 | +\x00\x00\x0f\x9c\x00\x00\x00\x00\x00\x01\x00\x13\x86\x5d\ |
117 | +\x00\x00\x0e\xdc\x00\x00\x00\x00\x00\x01\x00\x13\x79\xb6\ |
118 | +\x00\x00\x10\x7a\x00\x00\x00\x00\x00\x01\x00\x13\x98\xdb\ |
119 | +\x00\x00\x0f\xfc\x00\x00\x00\x00\x00\x01\x00\x13\x8e\x73\ |
120 | +\x00\x00\x0e\x84\x00\x00\x00\x00\x00\x01\x00\x13\x72\x7f\ |
121 | +\x00\x00\x10\xcc\x00\x00\x00\x00\x00\x01\x00\x13\x9e\xe2\ |
122 | +\x00\x00\x0f\xc4\x00\x00\x00\x00\x00\x01\x00\x13\x89\xd1\ |
123 | +\x00\x00\x11\x1a\x00\x00\x00\x00\x00\x01\x00\x13\xa4\x0e\ |
124 | +\x00\x00\x0e\xae\x00\x00\x00\x00\x00\x01\x00\x13\x75\x1d\ |
125 | +\x00\x00\x10\xa6\x00\x00\x00\x00\x00\x01\x00\x13\x9c\x0e\ |
126 | +\x00\x00\x10\x50\x00\x00\x00\x00\x00\x01\x00\x13\x96\x63\ |
127 | +\x00\x00\x0f\x02\x00\x00\x00\x00\x00\x01\x00\x13\x7c\x90\ |
128 | +\x00\x00\x10\xf6\x00\x00\x00\x00\x00\x01\x00\x13\xa1\xc7\ |
129 | +\x00\x00\x10\x24\x00\x00\x00\x00\x00\x01\x00\x13\x91\xb8\ |
130 | +\x00\x00\x0f\x78\x00\x00\x00\x00\x00\x01\x00\x13\x83\x60\ |
131 | +\x00\x00\x0f\x52\x00\x00\x00\x00\x00\x01\x00\x13\x81\x49\ |
132 | \x00\x00\x03\x66\x00\x00\x00\x00\x00\x01\x00\x00\x21\x92\ |
133 | \x00\x00\x0b\x44\x00\x00\x00\x00\x00\x01\x00\x11\xef\x19\ |
134 | \x00\x00\x0b\xc4\x00\x00\x00\x00\x00\x01\x00\x11\xf5\xdf\ |
135 | @@ -82611,37 +82650,38 @@ |
136 | \x00\x00\x01\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ |
137 | \x00\x00\x01\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x05\xe6\ |
138 | \x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x02\xfe\ |
139 | -\x00\x00\x0d\xa0\x00\x00\x00\x00\x00\x01\x00\x12\x11\xfa\ |
140 | -\x00\x00\x0d\xca\x00\x00\x00\x00\x00\x01\x00\x12\x1b\x86\ |
141 | -\x00\x00\x0d\xfa\x00\x00\x00\x00\x00\x01\x00\x12\x8a\xcb\ |
142 | -\x00\x00\x0e\x1a\x00\x00\x00\x00\x00\x01\x00\x12\x91\x7c\ |
143 | -\x00\x00\x11\x68\x00\x00\x00\x00\x00\x01\x00\x13\xa9\x24\ |
144 | -\x00\x00\x11\x0e\x00\x00\x00\x00\x00\x01\x00\x13\xa4\x23\ |
145 | -\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x13\xce\x33\ |
146 | -\x00\x00\x11\xda\x00\x00\x00\x00\x00\x01\x00\x13\xaf\xb1\ |
147 | -\x00\x00\x11\x34\x00\x00\x00\x00\x00\x01\x00\x13\xa7\x54\ |
148 | -\x00\x00\x12\xd8\x00\x00\x00\x00\x00\x01\x00\x13\xbf\x0e\ |
149 | -\x00\x00\x12\x76\x00\x00\x00\x00\x00\x01\x00\x13\xb6\xde\ |
150 | -\x00\x00\x13\xac\x00\x00\x00\x00\x00\x01\x00\x13\xd1\x15\ |
151 | -\x00\x00\x13\x52\x00\x00\x00\x00\x00\x01\x00\x13\xca\x56\ |
152 | -\x00\x00\x12\xa2\x00\x00\x00\x00\x00\x01\x00\x13\xbb\xea\ |
153 | -\x00\x00\x13\xde\x00\x00\x00\x00\x00\x01\x00\x13\xd4\xd2\ |
154 | -\x00\x00\x11\xaa\x00\x00\x00\x00\x00\x01\x00\x13\xac\x77\ |
155 | -\x00\x00\x12\xfa\x00\x00\x00\x00\x00\x01\x00\x13\xc3\x7d\ |
156 | -\x00\x00\x12\x3e\x00\x00\x00\x00\x00\x01\x00\x13\xb4\x68\ |
157 | -\x00\x00\x13\x28\x00\x00\x00\x00\x00\x01\x00\x13\xc7\xce\ |
158 | -\x00\x00\x12\x08\x00\x00\x00\x00\x00\x01\x00\x13\xb1\xb8\ |
159 | +\x00\x00\x0d\xd4\x00\x00\x00\x00\x00\x01\x00\x12\x13\xf8\ |
160 | +\x00\x00\x0d\xfe\x00\x00\x00\x00\x00\x01\x00\x12\x1d\x84\ |
161 | +\x00\x00\x0e\x2e\x00\x00\x00\x00\x00\x01\x00\x12\x8c\xc9\ |
162 | +\x00\x00\x0e\x4e\x00\x00\x00\x00\x00\x01\x00\x12\x93\x7a\ |
163 | +\x00\x00\x11\x9c\x00\x00\x00\x00\x00\x01\x00\x13\xab\x22\ |
164 | +\x00\x00\x11\x42\x00\x00\x00\x00\x00\x01\x00\x13\xa6\x21\ |
165 | +\x00\x00\x13\xba\x00\x00\x00\x00\x00\x01\x00\x13\xd0\x31\ |
166 | +\x00\x00\x12\x0e\x00\x00\x00\x00\x00\x01\x00\x13\xb1\xaf\ |
167 | +\x00\x00\x11\x68\x00\x00\x00\x00\x00\x01\x00\x13\xa9\x52\ |
168 | +\x00\x00\x13\x0c\x00\x00\x00\x00\x00\x01\x00\x13\xc1\x0c\ |
169 | +\x00\x00\x12\xaa\x00\x00\x00\x00\x00\x01\x00\x13\xb8\xdc\ |
170 | +\x00\x00\x13\xe0\x00\x00\x00\x00\x00\x01\x00\x13\xd3\x13\ |
171 | +\x00\x00\x13\x86\x00\x00\x00\x00\x00\x01\x00\x13\xcc\x54\ |
172 | +\x00\x00\x12\xd6\x00\x00\x00\x00\x00\x01\x00\x13\xbd\xe8\ |
173 | +\x00\x00\x14\x12\x00\x00\x00\x00\x00\x01\x00\x13\xd6\xd0\ |
174 | +\x00\x00\x11\xde\x00\x00\x00\x00\x00\x01\x00\x13\xae\x75\ |
175 | +\x00\x00\x13\x2e\x00\x00\x00\x00\x00\x01\x00\x13\xc5\x7b\ |
176 | +\x00\x00\x12\x72\x00\x00\x00\x00\x00\x01\x00\x13\xb6\x66\ |
177 | +\x00\x00\x13\x5c\x00\x00\x00\x00\x00\x01\x00\x13\xc9\xcc\ |
178 | +\x00\x00\x12\x3c\x00\x00\x00\x00\x00\x01\x00\x13\xb3\xb6\ |
179 | \x00\x00\x0a\x10\x00\x00\x00\x00\x00\x01\x00\x0e\xec\xf7\ |
180 | \x00\x00\x0a\x30\x00\x00\x00\x00\x00\x01\x00\x0e\xf0\xd4\ |
181 | \x00\x00\x09\xea\x00\x00\x00\x00\x00\x01\x00\x0e\xea\x59\ |
182 | -\x00\x00\x0d\x1c\x00\x00\x00\x00\x00\x01\x00\x12\x0b\x3d\ |
183 | -\x00\x00\x0d\x76\x00\x00\x00\x00\x00\x01\x00\x12\x0f\xf6\ |
184 | +\x00\x00\x0c\xb2\x00\x00\x00\x00\x00\x01\x00\x12\x02\xc6\ |
185 | +\x00\x00\x0d\x50\x00\x00\x00\x00\x00\x01\x00\x12\x0d\x3b\ |
186 | +\x00\x00\x0d\xaa\x00\x00\x00\x00\x00\x01\x00\x12\x11\xf4\ |
187 | \x00\x00\x0c\x48\x00\x00\x00\x00\x00\x01\x00\x11\xfe\xd6\ |
188 | -\x00\x00\x0c\xf8\x00\x00\x00\x00\x00\x01\x00\x12\x08\x0a\ |
189 | +\x00\x00\x0d\x2c\x00\x00\x00\x00\x00\x01\x00\x12\x0a\x08\ |
190 | \x00\x00\x0c\x7c\x00\x00\x00\x00\x00\x01\x00\x12\x00\xcd\ |
191 | -\x00\x00\x0c\xb2\x00\x00\x00\x00\x00\x01\x00\x12\x02\xc6\ |
192 | -\x00\x00\x0c\xd4\x00\x00\x00\x00\x00\x01\x00\x12\x04\xd9\ |
193 | -\x00\x00\x0d\x52\x00\x00\x00\x00\x00\x01\x00\x12\x0d\x25\ |
194 | +\x00\x00\x0c\xe6\x00\x00\x00\x00\x00\x01\x00\x12\x04\xc4\ |
195 | +\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x01\x00\x12\x06\xd7\ |
196 | +\x00\x00\x0d\x86\x00\x00\x00\x00\x00\x01\x00\x12\x0f\x23\ |
197 | \x00\x00\x0c\x20\x00\x00\x00\x00\x00\x01\x00\x11\xfc\x1a\ |
198 | \x00\x00\x02\xee\x00\x00\x00\x00\x00\x01\x00\x00\x1b\x20\ |
199 | \x00\x00\x02\x72\x00\x00\x00\x00\x00\x01\x00\x00\x11\xc5\ |
200 | @@ -82657,10 +82697,10 @@ |
201 | \x00\x00\x04\xb8\x00\x00\x00\x00\x00\x01\x00\x0d\x50\x06\ |
202 | \x00\x00\x05\x52\x00\x00\x00\x00\x00\x01\x00\x0d\x56\x1f\ |
203 | \x00\x00\x05\x20\x00\x00\x00\x00\x00\x01\x00\x0d\x54\x57\ |
204 | -\x00\x00\x14\x46\x00\x00\x00\x00\x00\x01\x00\x13\xde\x06\ |
205 | -\x00\x00\x14\x7a\x00\x00\x00\x00\x00\x01\x00\x13\xe0\xd6\ |
206 | -\x00\x00\x14\x02\x00\x00\x00\x00\x00\x01\x00\x13\xd8\x85\ |
207 | -\x00\x00\x14\x26\x00\x00\x00\x00\x00\x01\x00\x13\xdb\x83\ |
208 | +\x00\x00\x14\x7a\x00\x00\x00\x00\x00\x01\x00\x13\xe0\x04\ |
209 | +\x00\x00\x14\xae\x00\x00\x00\x00\x00\x01\x00\x13\xe2\xd4\ |
210 | +\x00\x00\x14\x36\x00\x00\x00\x00\x00\x01\x00\x13\xda\x83\ |
211 | +\x00\x00\x14\x5a\x00\x00\x00\x00\x00\x01\x00\x13\xdd\x81\ |
212 | \x00\x00\x06\xde\x00\x00\x00\x00\x00\x01\x00\x0e\xaa\x8e\ |
213 | \x00\x00\x07\xc4\x00\x00\x00\x00\x00\x01\x00\x0e\xbb\x82\ |
214 | \x00\x00\x09\xca\x00\x00\x00\x00\x00\x01\x00\x0e\xe6\x66\ |
215 | @@ -82684,10 +82724,10 @@ |
216 | \x00\x00\x0a\x74\x00\x00\x00\x00\x00\x01\x00\x0e\xf7\xe1\ |
217 | \x00\x00\x0a\x52\x00\x00\x00\x00\x00\x01\x00\x0e\xf4\x0e\ |
218 | \x00\x00\x0a\xa6\x00\x00\x00\x00\x00\x01\x00\x11\xe5\x3f\ |
219 | -\x00\x00\x14\xaa\x00\x00\x00\x00\x00\x01\x00\x13\xe3\xcf\ |
220 | -\x00\x00\x15\x0c\x00\x00\x00\x00\x00\x01\x00\x13\xea\x45\ |
221 | -\x00\x00\x14\xde\x00\x00\x00\x00\x00\x01\x00\x13\xe7\x31\ |
222 | -\x00\x00\x15\x34\x00\x00\x00\x00\x00\x01\x00\x13\xec\xe3\ |
223 | +\x00\x00\x14\xde\x00\x00\x00\x00\x00\x01\x00\x13\xe5\xcd\ |
224 | +\x00\x00\x15\x40\x00\x00\x00\x00\x00\x01\x00\x13\xec\x43\ |
225 | +\x00\x00\x15\x12\x00\x00\x00\x00\x00\x01\x00\x13\xe9\x2f\ |
226 | +\x00\x00\x15\x68\x00\x00\x00\x00\x00\x01\x00\x13\xee\xe1\ |
227 | \x00\x00\x06\x18\x00\x00\x00\x00\x00\x01\x00\x0d\x91\xaf\ |
228 | \x00\x00\x05\xb8\x00\x00\x00\x00\x00\x01\x00\x0d\x62\x6f\ |
229 | \x00\x00\x05\x88\x00\x00\x00\x00\x00\x01\x00\x0d\x57\xdb\ |
230 | |
231 | === modified file 'openlp/core/ui/generaltab.py' |
232 | --- openlp/core/ui/generaltab.py 2012-02-06 13:28:16 +0000 |
233 | +++ openlp/core/ui/generaltab.py 2012-03-04 18:13:20 +0000 |
234 | @@ -175,6 +175,9 @@ |
235 | self.startPausedCheckBox = QtGui.QCheckBox(self.audioGroupBox) |
236 | self.startPausedCheckBox.setObjectName(u'startPausedCheckBox') |
237 | self.audioLayout.addWidget(self.startPausedCheckBox) |
238 | + self.repeatListCheckBox = QtGui.QCheckBox(self.audioGroupBox) |
239 | + self.repeatListCheckBox.setObjectName(u'repeatListCheckBox') |
240 | + self.audioLayout.addWidget(self.repeatListCheckBox) |
241 | self.rightLayout.addWidget(self.audioGroupBox) |
242 | self.rightLayout.addStretch() |
243 | # Signals and slots |
244 | @@ -251,6 +254,8 @@ |
245 | translate('OpenLP.GeneralTab', 'Background Audio')) |
246 | self.startPausedCheckBox.setText( |
247 | translate('OpenLP.GeneralTab', 'Start background audio paused')) |
248 | + self.repeatListCheckBox.setText( |
249 | + translate('OpenLP.GeneralTab', 'Repeat track list')) |
250 | |
251 | def load(self): |
252 | """ |
253 | @@ -298,6 +303,8 @@ |
254 | QtCore.QVariant(self.screens.current[u'size'].width())).toInt()[0]) |
255 | self.startPausedCheckBox.setChecked(settings.value( |
256 | u'audio start paused', QtCore.QVariant(True)).toBool()) |
257 | + self.repeatListCheckBox.setChecked(settings.value( |
258 | + u'audio repeat list', QtCore.QVariant(False)).toBool()) |
259 | settings.endGroup() |
260 | self.customXValueEdit.setEnabled(self.overrideCheckBox.isChecked()) |
261 | self.customYValueEdit.setEnabled(self.overrideCheckBox.isChecked()) |
262 | @@ -350,7 +357,9 @@ |
263 | QtCore.QVariant(self.overrideCheckBox.isChecked())) |
264 | settings.setValue(u'audio start paused', |
265 | QtCore.QVariant(self.startPausedCheckBox.isChecked())) |
266 | - settings.endGroup() |
267 | + settings.setValue(u'audio repeat list', |
268 | + QtCore.QVariant(self.repeatListCheckBox.isChecked())) |
269 | + settings.endGroup() |
270 | # On save update the screens as well |
271 | self.postSetUp(True) |
272 | |
273 | |
274 | === modified file 'openlp/core/ui/maindisplay.py' |
275 | --- openlp/core/ui/maindisplay.py 2012-01-19 19:13:19 +0000 |
276 | +++ openlp/core/ui/maindisplay.py 2012-03-04 18:13:20 +0000 |
277 | @@ -30,7 +30,6 @@ |
278 | """ |
279 | import cgi |
280 | import logging |
281 | -import os |
282 | import sys |
283 | |
284 | from PyQt4 import QtCore, QtGui, QtWebKit, QtOpenGL |
285 | @@ -136,12 +135,12 @@ |
286 | QtCore.Qt.WindowStaysOnTopHint |
287 | if QtCore.QSettings().value(u'advanced/x11 bypass wm', |
288 | QtCore.QVariant(True)).toBool(): |
289 | - windowFlags = windowFlags | QtCore.Qt.X11BypassWindowManagerHint |
290 | + windowFlags |= QtCore.Qt.X11BypassWindowManagerHint |
291 | # FIXME: QtCore.Qt.SplashScreen is workaround to make display screen |
292 | # stay always on top on Mac OS X. For details see bug 906926. |
293 | # It needs more investigation to fix it properly. |
294 | if sys.platform == 'darwin': |
295 | - windowFlags = windowFlags | QtCore.Qt.SplashScreen |
296 | + windowFlags |= QtCore.Qt.SplashScreen |
297 | self.setWindowFlags(windowFlags) |
298 | self.setAttribute(QtCore.Qt.WA_DeleteOnClose) |
299 | self.setTransparency(True) |
300 | @@ -493,11 +492,15 @@ |
301 | QtCore.QObject.__init__(self, parent) |
302 | self.currentIndex = -1 |
303 | self.playlist = [] |
304 | + self.repeat = False |
305 | self.mediaObject = Phonon.MediaObject() |
306 | + self.mediaObject.setTickInterval(100) |
307 | self.audioObject = Phonon.AudioOutput(Phonon.VideoCategory) |
308 | Phonon.createPath(self.mediaObject, self.audioObject) |
309 | QtCore.QObject.connect(self.mediaObject, |
310 | QtCore.SIGNAL(u'aboutToFinish()'), self.onAboutToFinish) |
311 | + QtCore.QObject.connect(self.mediaObject, |
312 | + QtCore.SIGNAL(u'finished()'), self.onFinished) |
313 | |
314 | def __del__(self): |
315 | """ |
316 | @@ -516,6 +519,14 @@ |
317 | if len(self.playlist) > self.currentIndex: |
318 | self.mediaObject.enqueue(self.playlist[self.currentIndex]) |
319 | |
320 | + def onFinished(self): |
321 | + if self.repeat: |
322 | + log.debug(u'Repeat is enabled... here we go again!') |
323 | + self.mediaObject.clearQueue() |
324 | + self.mediaObject.clear() |
325 | + self.currentIndex = -1 |
326 | + self.play() |
327 | + |
328 | def connectVolumeSlider(self, slider): |
329 | slider.setAudioOutput(self.audioObject) |
330 | |
331 | @@ -563,3 +574,27 @@ |
332 | for filename in filenames: |
333 | self.playlist.append(Phonon.MediaSource(filename)) |
334 | |
335 | + def next(self): |
336 | + if not self.repeat and self.currentIndex + 1 == len(self.playlist): |
337 | + return |
338 | + isPlaying = self.mediaObject.state() == Phonon.PlayingState |
339 | + self.currentIndex += 1 |
340 | + if self.repeat and self.currentIndex == len(self.playlist): |
341 | + self.currentIndex = 0 |
342 | + self.mediaObject.clearQueue() |
343 | + self.mediaObject.clear() |
344 | + self.mediaObject.enqueue(self.playlist[self.currentIndex]) |
345 | + if isPlaying: |
346 | + self.mediaObject.play() |
347 | + |
348 | + def goTo(self, index): |
349 | + isPlaying = self.mediaObject.state() == Phonon.PlayingState |
350 | + self.mediaObject.clearQueue() |
351 | + self.mediaObject.clear() |
352 | + self.currentIndex = index |
353 | + self.mediaObject.enqueue(self.playlist[self.currentIndex]) |
354 | + if isPlaying: |
355 | + self.mediaObject.play() |
356 | + |
357 | + def connectSlot(self, signal, slot): |
358 | + QtCore.QObject.connect(self.mediaObject, signal, slot) |
359 | |
360 | === modified file 'openlp/core/ui/slidecontroller.py' |
361 | --- openlp/core/ui/slidecontroller.py 2012-02-15 10:37:42 +0000 |
362 | +++ openlp/core/ui/slidecontroller.py 2012-03-04 18:13:20 +0000 |
363 | @@ -33,7 +33,7 @@ |
364 | from PyQt4 import QtCore, QtGui |
365 | |
366 | from openlp.core.lib import OpenLPToolbar, Receiver, ItemCapabilities, \ |
367 | - translate, build_icon, ServiceItem, build_html, PluginManager, ServiceItem |
368 | + translate, build_icon, build_html, PluginManager, ServiceItem |
369 | from openlp.core.lib.ui import UiStrings, shortcut_action |
370 | from openlp.core.lib import SlideLimits, ServiceItemAction |
371 | from openlp.core.ui import HideMode, MainDisplay, Display, ScreenList |
372 | @@ -46,9 +46,10 @@ |
373 | Customised version of QTableWidget which can respond to keyboard |
374 | events. |
375 | """ |
376 | - def __init__(self, parent=None, name=None): |
377 | + def __init__(self, parent=None): |
378 | QtGui.QTableWidget.__init__(self, parent.controller) |
379 | |
380 | + |
381 | class Controller(QtGui.QWidget): |
382 | """ |
383 | Controller is a general controller widget. |
384 | @@ -277,13 +278,48 @@ |
385 | self.toolbar.addToolbarWidget(u'Song Menu', self.songMenu) |
386 | self.songMenu.setMenu(QtGui.QMenu( |
387 | translate('OpenLP.SlideController', 'Go To'), self.toolbar)) |
388 | - self.toolbar.makeWidgetsInvisible([u'Song Menu']) |
389 | # Stuff for items with background audio. |
390 | - self.audioPauseItem = self.toolbar.addToolbarButton( |
391 | - u'Pause Audio', u':/slides/media_playback_pause.png', |
392 | - translate('OpenLP.SlideController', 'Pause audio.'), |
393 | - self.onAudioPauseClicked, True) |
394 | + self.audioPauseItem = QtGui.QToolButton(self.toolbar) |
395 | + self.audioPauseItem.setIcon( |
396 | + QtGui.QIcon(u':/slides/media_playback_pause.png')) |
397 | + self.audioPauseItem.setText(translate('OpenLP.SlideController', |
398 | + 'Pause audio.')) |
399 | + self.audioPauseItem.setCheckable(True) |
400 | + self.toolbar.addToolbarWidget(u'Pause Audio', self.audioPauseItem) |
401 | + QtCore.QObject.connect(self.audioPauseItem, |
402 | + QtCore.SIGNAL(u'clicked(bool)'), self.onAudioPauseClicked) |
403 | self.audioPauseItem.setVisible(False) |
404 | + self.audioMenu = QtGui.QMenu( |
405 | + translate('OpenLP.SlideController', 'Background Audio'), |
406 | + self.toolbar) |
407 | + self.nextTrackItem = shortcut_action(self.audioMenu, |
408 | + u'nextTrackItem', [], self.onNextTrackClicked, |
409 | + u':/slides/media_playback_next.png', |
410 | + category=unicode(UiStrings().LiveToolbar)) |
411 | + self.nextTrackItem.setText( |
412 | + translate('OpenLP.SlideController', 'Next Track')) |
413 | + self.audioMenu.addAction(self.nextTrackItem) |
414 | + self.trackMenu = self.audioMenu.addMenu( |
415 | + translate('OpenLP.SlideController', 'Tracks')) |
416 | + self.audioPauseItem.setPopupMode(QtGui.QToolButton.MenuButtonPopup) |
417 | + self.audioPauseItem.setMenu(self.audioMenu) |
418 | + self.audioTimeLabel = QtGui.QLabel(u' 00:00 ', self.toolbar) |
419 | + self.audioTimeLabel.setAlignment( |
420 | + QtCore.Qt.AlignCenter|QtCore.Qt.AlignHCenter) |
421 | + self.audioTimeLabel.setStyleSheet( |
422 | + u'background-color: palette(background); ' |
423 | + u'border-top-color: palette(shadow); ' |
424 | + u'border-left-color: palette(shadow); ' |
425 | + u'border-bottom-color: palette(light); ' |
426 | + u'border-right-color: palette(light); ' |
427 | + u'border-radius: 3px; border-style: inset; ' |
428 | + u'border-width: 1; font-family: monospace; margin: 2px;' |
429 | + ) |
430 | + self.audioTimeLabel.setObjectName(u'audioTimeLabel') |
431 | + self.toolbar.addToolbarWidget( |
432 | + u'Time Remaining', self.audioTimeLabel) |
433 | + self.toolbar.makeWidgetsInvisible([u'Song Menu', u'Pause Audio', |
434 | + u'Time Remaining']) |
435 | # Screen preview area |
436 | self.previewFrame = QtGui.QFrame(self.splitter) |
437 | self.previewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio)) |
438 | @@ -544,7 +580,7 @@ |
439 | # Reset the shortcut. |
440 | self.current_shortcut = u'' |
441 | |
442 | - def setPreviewHotkeys(self, parent=None): |
443 | + def setPreviewHotkeys(self): |
444 | self.previousItem.setObjectName(u'previousItemPreview') |
445 | self.nextItem.setObjectName(u'nextItemPreview') |
446 | action_list = ActionList.get_instance() |
447 | @@ -621,7 +657,7 @@ |
448 | self.keypress_loop = True |
449 | keypressCommand = self.keypress_queue.popleft() |
450 | if keypressCommand == ServiceItemAction.Previous: |
451 | - Receiver.send_message('servicemanager_previous_item', None) |
452 | + Receiver.send_message('servicemanager_previous_item') |
453 | elif keypressCommand == ServiceItemAction.PreviousLastSlide: |
454 | # Go to the last slide of the previous item |
455 | Receiver.send_message('servicemanager_previous_item', u'last slide') |
456 | @@ -642,6 +678,8 @@ |
457 | self.display.setup() |
458 | if self.isLive: |
459 | self.__addActionsToWidget(self.display) |
460 | + self.display.audioPlayer.connectSlot( |
461 | + QtCore.SIGNAL(u'tick(qint64)'), self.onAudioTimeRemaining) |
462 | # The SlidePreview's ratio. |
463 | try: |
464 | self.ratio = float(self.screens.current[u'size'].width()) / \ |
465 | @@ -653,7 +691,7 @@ |
466 | self.previewDisplay.setup() |
467 | serviceItem = ServiceItem() |
468 | self.previewDisplay.webView.setHtml(build_html(serviceItem, |
469 | - self.previewDisplay.screen, None, self.isLive, None, |
470 | + self.previewDisplay.screen, None, self.isLive, |
471 | plugins=PluginManager.get_instance().plugins)) |
472 | self.mediaController.setup_display(self.previewDisplay) |
473 | if self.serviceItem: |
474 | @@ -715,7 +753,7 @@ |
475 | Adjusts the value of the ``delaySpinBox`` to the given one. |
476 | """ |
477 | self.delaySpinBox.setValue(int(value)) |
478 | - |
479 | + |
480 | def updateSlideLimits(self): |
481 | """ |
482 | Updates the Slide Limits variable from the settings. |
483 | @@ -860,10 +898,23 @@ |
484 | self.display.audioPlayer.reset() |
485 | self.setAudioItemsVisibility(False) |
486 | self.audioPauseItem.setChecked(False) |
487 | + # If the current item has background audio |
488 | if self.serviceItem.is_capable(ItemCapabilities.HasBackgroundAudio): |
489 | log.debug(u'Starting to play...') |
490 | self.display.audioPlayer.addToPlaylist( |
491 | self.serviceItem.background_audio) |
492 | + self.trackMenu.clear() |
493 | + for counter in range(len(self.serviceItem.background_audio)): |
494 | + action = self.trackMenu.addAction(os.path.basename( |
495 | + self.serviceItem.background_audio[counter])) |
496 | + action.setData(counter) |
497 | + QtCore.QObject.connect(action, |
498 | + QtCore.SIGNAL(u'triggered(bool)'), |
499 | + self.onTrackTriggered) |
500 | + self.display.audioPlayer.repeat = QtCore.QSettings().value( |
501 | + self.parent().generalSettingsSection + \ |
502 | + u'/audio repeat list', |
503 | + QtCore.QVariant(False)).toBool() |
504 | if QtCore.QSettings().value( |
505 | self.parent().generalSettingsSection + \ |
506 | u'/audio start paused', |
507 | @@ -915,7 +966,7 @@ |
508 | self.slideList[unicode(row)] = row - 1 |
509 | text.append(unicode(row)) |
510 | self.previewListWidget.setItem(framenumber, 0, item) |
511 | - if slideHeight != 0: |
512 | + if not slideHeight: |
513 | self.previewListWidget.setRowHeight(framenumber, slideHeight) |
514 | self.previewListWidget.setVerticalHeaderLabels(text) |
515 | if self.serviceItem.is_text(): |
516 | @@ -1117,7 +1168,7 @@ |
517 | else: |
518 | Receiver.send_message(u'live_display_show') |
519 | |
520 | - def onSlideSelected(self, start=False): |
521 | + def onSlideSelected(self): |
522 | """ |
523 | Slide selected in controller |
524 | """ |
525 | @@ -1313,7 +1364,12 @@ |
526 | self.onToggleLoop() |
527 | |
528 | def setAudioItemsVisibility(self, visible): |
529 | - self.audioPauseItem.setVisible(visible) |
530 | + if visible: |
531 | + self.toolbar.makeWidgetsVisible( |
532 | + [u'Song Menu', u'Pause Audio', u'Time Remaining']) |
533 | + else: |
534 | + self.toolbar.makeWidgetsInvisible( |
535 | + [u'Song Menu', u'Pause Audio', u'Time Remaining']) |
536 | |
537 | def onAudioPauseClicked(self, checked): |
538 | if not self.audioPauseItem.isVisible(): |
539 | @@ -1424,3 +1480,17 @@ |
540 | return HideMode.Screen |
541 | else: |
542 | return None |
543 | + |
544 | + def onNextTrackClicked(self): |
545 | + self.display.audioPlayer.next() |
546 | + |
547 | + def onAudioTimeRemaining(self, time): |
548 | + seconds = self.display.audioPlayer.mediaObject.remainingTime() // 1000 |
549 | + minutes = seconds // 60 |
550 | + seconds %= 60 |
551 | + self.audioTimeLabel.setText(u' %02d:%02d ' % (minutes, seconds)) |
552 | + |
553 | + def onTrackTriggered(self): |
554 | + action = self.sender() |
555 | + index = action.data().toInt()[0] |
556 | + self.display.audioPlayer.goTo(index) |
557 | |
558 | === modified file 'openlp/plugins/songs/lib/songstab.py' |
559 | --- openlp/plugins/songs/lib/songstab.py 2011-12-27 10:33:55 +0000 |
560 | +++ openlp/plugins/songs/lib/songstab.py 2012-03-04 18:13:20 +0000 |
561 | @@ -33,56 +33,56 @@ |
562 | """ |
563 | SongsTab is the Songs settings tab in the settings dialog. |
564 | """ |
565 | - def __init__(self, parent, title, visible_title, icon_path): |
566 | - SettingsTab.__init__(self, parent, title, visible_title, icon_path) |
567 | - |
568 | def setupUi(self): |
569 | + """ |
570 | + Set up the configuration tab UI. |
571 | + """ |
572 | self.setObjectName(u'SongsTab') |
573 | SettingsTab.setupUi(self) |
574 | - self.SongsModeGroupBox = QtGui.QGroupBox(self.leftColumn) |
575 | - self.SongsModeGroupBox.setObjectName(u'SongsModeGroupBox') |
576 | - self.SongsModeLayout = QtGui.QVBoxLayout(self.SongsModeGroupBox) |
577 | - self.SongsModeLayout.setObjectName(u'SongsModeLayout') |
578 | - self.SearchAsTypeCheckBox = QtGui.QCheckBox(self.SongsModeGroupBox) |
579 | - self.SearchAsTypeCheckBox.setObjectName(u'SearchAsTypeCheckBox') |
580 | - self.SongsModeLayout.addWidget(self.SearchAsTypeCheckBox) |
581 | - self.SongBarActiveCheckBox = QtGui.QCheckBox(self.SongsModeGroupBox) |
582 | - self.SongBarActiveCheckBox.setObjectName(u'SongBarActiveCheckBox') |
583 | - self.SongsModeLayout.addWidget(self.SongBarActiveCheckBox) |
584 | - self.SongUpdateOnEditCheckBox = QtGui.QCheckBox(self.SongsModeGroupBox) |
585 | - self.SongUpdateOnEditCheckBox.setObjectName(u'SongUpdateOnEditCheckBox') |
586 | - self.SongsModeLayout.addWidget(self.SongUpdateOnEditCheckBox) |
587 | - self.SongAddFromServiceCheckBox = QtGui.QCheckBox( |
588 | - self.SongsModeGroupBox) |
589 | - self.SongAddFromServiceCheckBox.setObjectName( |
590 | - u'SongAddFromServiceCheckBox') |
591 | - self.SongsModeLayout.addWidget(self.SongAddFromServiceCheckBox) |
592 | - self.leftLayout.addWidget(self.SongsModeGroupBox) |
593 | + self.modeGroupBox = QtGui.QGroupBox(self.leftColumn) |
594 | + self.modeGroupBox.setObjectName(u'modeGroupBox') |
595 | + self.modeLayout = QtGui.QVBoxLayout(self.modeGroupBox) |
596 | + self.modeLayout.setObjectName(u'modeLayout') |
597 | + self.searchAsTypeCheckBox = QtGui.QCheckBox(self.modeGroupBox) |
598 | + self.searchAsTypeCheckBox.setObjectName(u'SearchAsTypeCheckBox') |
599 | + self.modeLayout.addWidget(self.searchAsTypeCheckBox) |
600 | + self.toolBarActiveCheckBox = QtGui.QCheckBox(self.modeGroupBox) |
601 | + self.toolBarActiveCheckBox.setObjectName(u'toolBarActiveCheckBox') |
602 | + self.modeLayout.addWidget(self.toolBarActiveCheckBox) |
603 | + self.updateOnEditCheckBox = QtGui.QCheckBox(self.modeGroupBox) |
604 | + self.updateOnEditCheckBox.setObjectName(u'updateOnEditCheckBox') |
605 | + self.modeLayout.addWidget(self.updateOnEditCheckBox) |
606 | + self.addFromServiceCheckBox = QtGui.QCheckBox( |
607 | + self.modeGroupBox) |
608 | + self.addFromServiceCheckBox.setObjectName( |
609 | + u'addFromServiceCheckBox') |
610 | + self.modeLayout.addWidget(self.addFromServiceCheckBox) |
611 | + self.leftLayout.addWidget(self.modeGroupBox) |
612 | self.leftLayout.addStretch() |
613 | self.rightLayout.addStretch() |
614 | - QtCore.QObject.connect(self.SearchAsTypeCheckBox, |
615 | + QtCore.QObject.connect(self.searchAsTypeCheckBox, |
616 | QtCore.SIGNAL(u'stateChanged(int)'), |
617 | self.onSearchAsTypeCheckBoxChanged) |
618 | - QtCore.QObject.connect(self.SongBarActiveCheckBox, |
619 | - QtCore.SIGNAL(u'stateChanged(int)'), |
620 | - self.onSongBarActiveCheckBoxChanged) |
621 | - QtCore.QObject.connect(self.SongUpdateOnEditCheckBox, |
622 | - QtCore.SIGNAL(u'stateChanged(int)'), |
623 | - self.onSongUpdateOnEditCheckBoxChanged) |
624 | - QtCore.QObject.connect(self.SongAddFromServiceCheckBox, |
625 | - QtCore.SIGNAL(u'stateChanged(int)'), |
626 | - self.onSongAddFromServiceCheckBoxChanged) |
627 | + QtCore.QObject.connect(self.toolBarActiveCheckBox, |
628 | + QtCore.SIGNAL(u'stateChanged(int)'), |
629 | + self.onToolBarActiveCheckBoxChanged) |
630 | + QtCore.QObject.connect(self.updateOnEditCheckBox, |
631 | + QtCore.SIGNAL(u'stateChanged(int)'), |
632 | + self.onUpdateOnEditCheckBoxChanged) |
633 | + QtCore.QObject.connect(self.addFromServiceCheckBox, |
634 | + QtCore.SIGNAL(u'stateChanged(int)'), |
635 | + self.onAddFromServiceCheckBoxChanged) |
636 | |
637 | def retranslateUi(self): |
638 | - self.SongsModeGroupBox.setTitle( |
639 | + self.modeGroupBox.setTitle( |
640 | translate('SongsPlugin.SongsTab', 'Songs Mode')) |
641 | - self.SearchAsTypeCheckBox.setText( |
642 | + self.searchAsTypeCheckBox.setText( |
643 | translate('SongsPlugin.SongsTab', 'Enable search as you type')) |
644 | - self.SongBarActiveCheckBox.setText(translate('SongsPlugin.SongsTab', |
645 | + self.toolBarActiveCheckBox.setText(translate('SongsPlugin.SongsTab', |
646 | 'Display verses on live tool bar')) |
647 | - self.SongUpdateOnEditCheckBox.setText( |
648 | + self.updateOnEditCheckBox.setText( |
649 | translate('SongsPlugin.SongsTab', 'Update service from song edit')) |
650 | - self.SongAddFromServiceCheckBox.setText( |
651 | + self.addFromServiceCheckBox.setText( |
652 | translate('SongsPlugin.SongsTab', |
653 | 'Add missing songs when opening service')) |
654 | |
655 | @@ -92,19 +92,19 @@ |
656 | if check_state == QtCore.Qt.Checked: |
657 | self.song_search = True |
658 | |
659 | - def onSongBarActiveCheckBoxChanged(self, check_state): |
660 | - self.song_bar = False |
661 | + def onToolBarActiveCheckBoxChanged(self, check_state): |
662 | + self.tool_bar = False |
663 | # we have a set value convert to True/False |
664 | if check_state == QtCore.Qt.Checked: |
665 | - self.song_bar = True |
666 | + self.tool_bar = True |
667 | |
668 | - def onSongUpdateOnEditCheckBoxChanged(self, check_state): |
669 | + def onUpdateOnEditCheckBoxChanged(self, check_state): |
670 | self.update_edit = False |
671 | # we have a set value convert to True/False |
672 | if check_state == QtCore.Qt.Checked: |
673 | self.update_edit = True |
674 | |
675 | - def onSongAddFromServiceCheckBoxChanged(self, check_state): |
676 | + def onAddFromServiceCheckBoxChanged(self, check_state): |
677 | self.update_load = False |
678 | # we have a set value convert to True/False |
679 | if check_state == QtCore.Qt.Checked: |
680 | @@ -115,23 +115,23 @@ |
681 | settings.beginGroup(self.settingsSection) |
682 | self.song_search = settings.value( |
683 | u'search as type', QtCore.QVariant(False)).toBool() |
684 | - self.song_bar = settings.value( |
685 | + self.tool_bar = settings.value( |
686 | u'display songbar', QtCore.QVariant(True)).toBool() |
687 | self.update_edit = settings.value( |
688 | u'update service on edit', QtCore.QVariant(False)).toBool() |
689 | self.update_load = settings.value( |
690 | u'add song from service', QtCore.QVariant(True)).toBool() |
691 | - self.SearchAsTypeCheckBox.setChecked(self.song_search) |
692 | - self.SongBarActiveCheckBox.setChecked(self.song_bar) |
693 | - self.SongUpdateOnEditCheckBox.setChecked(self.update_edit) |
694 | - self.SongAddFromServiceCheckBox.setChecked(self.update_load) |
695 | + self.searchAsTypeCheckBox.setChecked(self.song_search) |
696 | + self.toolBarActiveCheckBox.setChecked(self.tool_bar) |
697 | + self.updateOnEditCheckBox.setChecked(self.update_edit) |
698 | + self.addFromServiceCheckBox.setChecked(self.update_load) |
699 | settings.endGroup() |
700 | |
701 | def save(self): |
702 | settings = QtCore.QSettings() |
703 | settings.beginGroup(self.settingsSection) |
704 | settings.setValue(u'search as type', QtCore.QVariant(self.song_search)) |
705 | - settings.setValue(u'display songbar', QtCore.QVariant(self.song_bar)) |
706 | + settings.setValue(u'display songbar', QtCore.QVariant(self.tool_bar)) |
707 | settings.setValue(u'update service on edit', |
708 | QtCore.QVariant(self.update_edit)) |
709 | settings.setValue(u'add song from service', |
710 | |
711 | === added file 'resources/images/media_playback_next.png' |
712 | Binary files resources/images/media_playback_next.png 1970-01-01 00:00:00 +0000 and resources/images/media_playback_next.png 2012-03-04 18:13:20 +0000 differ |
713 | === modified file 'resources/images/openlp-2.qrc' |
714 | --- resources/images/openlp-2.qrc 2012-01-29 21:22:20 +0000 |
715 | +++ resources/images/openlp-2.qrc 2012-03-04 18:13:20 +0000 |
716 | @@ -68,6 +68,7 @@ |
717 | <file>media_playback_start.png</file> |
718 | <file>media_playback_stop.png</file> |
719 | <file>media_playback_pause.png</file> |
720 | + <file>media_playback_next.png</file> |
721 | </qresource> |
722 | <qresource prefix="icon"> |
723 | <file>openlp-logo-16x16.png</file> |
724 | |
725 | === modified file 'scripts/resources.patch' |
726 | --- scripts/resources.patch 2011-05-24 20:47:05 +0000 |
727 | +++ scripts/resources.patch 2012-03-04 18:13:20 +0000 |
728 | @@ -12,12 +12,12 @@ |
729 | +############################################################################### |
730 | +# OpenLP - Open Source Lyrics Projection # |
731 | +# --------------------------------------------------------------------------- # |
732 | -+# Copyright (c) 2008-2011 Raoul Snyman # |
733 | -+# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # |
734 | -+# Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, Armin Köhler, # |
735 | -+# Andreas Preikschat, Mattias Põldaru, Christian Richter, Philip Ridout, # |
736 | -+# Jeffrey Smith, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode # |
737 | -+# Woldsund # |
738 | ++# Copyright (c) 2008-2012 Raoul Snyman # |
739 | ++# Portions copyright (c) 2008-2012 Tim Bentley, Gerald Britton, Jonathan # |
740 | ++# Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, # |
741 | ++# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias # |
742 | ++# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # |
743 | ++# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund # |
744 | +# --------------------------------------------------------------------------- # |
745 | +# This program is free software; you can redistribute it and/or modify it # |
746 | +# under the terms of the GNU General Public License as published by the Free # |
747 | |
748 | === modified file 'scripts/translation_utils.py' |
749 | --- scripts/translation_utils.py 2012-02-11 18:02:33 +0000 |
750 | +++ scripts/translation_utils.py 2012-03-04 18:13:20 +0000 |
751 | @@ -5,12 +5,12 @@ |
752 | ############################################################################### |
753 | # OpenLP - Open Source Lyrics Projection # |
754 | # --------------------------------------------------------------------------- # |
755 | -# Copyright (c) 2008-2011 Raoul Snyman # |
756 | -# Portions copyright (c) 2008-2011 Tim Bentley, Jonathan Corwin, Michael # |
757 | -# Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, Armin Köhler, # |
758 | -# Andreas Preikschat, Mattias Põldaru, Christian Richter, Philip Ridout, # |
759 | -# Jeffrey Smith, Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode # |
760 | -# Woldsund # |
761 | +# Copyright (c) 2008-2012 Raoul Snyman # |
762 | +# Portions copyright (c) 2008-2012 Tim Bentley, Gerald Britton, Jonathan # |
763 | +# Corwin, Michael Gorven, Scott Guerrieri, Matthias Hub, Meinert Jordan, # |
764 | +# Armin Köhler, Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias # |
765 | +# Põldaru, Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # |
766 | +# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Frode Woldsund # |
767 | # --------------------------------------------------------------------------- # |
768 | # This program is free software; you can redistribute it and/or modify it # |
769 | # under the terms of the GNU General Public License as published by the Free # |
Wrong copyright in resources
424 is a comment ?