Merge lp:~raoul-snyman/openlp/bug-900387 into lp:openlp
- bug-900387
- Merge into trunk
Proposed by
Raoul Snyman
Status: | Merged |
---|---|
Merged at revision: | 1842 |
Proposed branch: | lp:~raoul-snyman/openlp/bug-900387 |
Merge into: | lp:openlp |
Diff against target: |
220 lines (+65/-37) 3 files modified
openlp/plugins/media/lib/mediaitem.py (+3/-3) openlp/plugins/media/lib/mediatab.py (+34/-34) openlp/plugins/media/mediaplugin.py (+28/-0) |
To merge this branch: | bzr merge lp:~raoul-snyman/openlp/bug-900387 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Tim Bentley | Approve | ||
Review via email: mp+85961@code.launchpad.net |
Commit message
Fix bug #900387: Converted a user's old Phonon setting to the new media players format.
Description of the change
Fix bug #900387 where a user's old "use phonon" setting was lost in the media rewrite. Now it is converted to an active Phonon media player which is first in the list.
To post a comment you must log in.
Revision history for this message
Tim Bentley (trb143) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'openlp/plugins/media/lib/mediaitem.py' | |||
2 | --- openlp/plugins/media/lib/mediaitem.py 2011-12-02 21:13:05 +0000 | |||
3 | +++ openlp/plugins/media/lib/mediaitem.py 2011-12-15 21:12:25 +0000 | |||
4 | @@ -54,7 +54,7 @@ | |||
5 | 54 | self.iconPath = u'images/image' | 54 | self.iconPath = u'images/image' |
6 | 55 | self.background = False | 55 | self.background = False |
7 | 56 | self.previewFunction = CLAPPERBOARD | 56 | self.previewFunction = CLAPPERBOARD |
9 | 57 | self.Automatic = u'' | 57 | self.automatic = u'' |
10 | 58 | MediaManagerItem.__init__(self, parent, plugin, icon) | 58 | MediaManagerItem.__init__(self, parent, plugin, icon) |
11 | 59 | self.singleServiceItem = False | 59 | self.singleServiceItem = False |
12 | 60 | self.hasSearch = True | 60 | self.hasSearch = True |
13 | @@ -101,7 +101,7 @@ | |||
14 | 101 | self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG) | 101 | self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG) |
15 | 102 | self.resetAction.setText(UiStrings().ResetBG) | 102 | self.resetAction.setText(UiStrings().ResetBG) |
16 | 103 | self.resetAction.setToolTip(UiStrings().ResetLiveBG) | 103 | self.resetAction.setToolTip(UiStrings().ResetLiveBG) |
18 | 104 | self.Automatic = translate('MediaPlugin.MediaItem', | 104 | self.automatic = translate('MediaPlugin.MediaItem', |
19 | 105 | 'Automatic') | 105 | 'Automatic') |
20 | 106 | self.displayTypeLabel.setText( | 106 | self.displayTypeLabel.setText( |
21 | 107 | translate('MediaPlugin.MediaItem', 'Use Player:')) | 107 | translate('MediaPlugin.MediaItem', 'Use Player:')) |
22 | @@ -253,7 +253,7 @@ | |||
23 | 253 | # load the drop down selection | 253 | # load the drop down selection |
24 | 254 | self.displayTypeComboBox.addItem(title) | 254 | self.displayTypeComboBox.addItem(title) |
25 | 255 | if self.displayTypeComboBox.count() > 1: | 255 | if self.displayTypeComboBox.count() > 1: |
27 | 256 | self.displayTypeComboBox.insertItem(0, self.Automatic) | 256 | self.displayTypeComboBox.insertItem(0, self.automatic) |
28 | 257 | self.displayTypeComboBox.setCurrentIndex(0) | 257 | self.displayTypeComboBox.setCurrentIndex(0) |
29 | 258 | if QtCore.QSettings().value(self.settingsSection + u'/override player', | 258 | if QtCore.QSettings().value(self.settingsSection + u'/override player', |
30 | 259 | QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked: | 259 | QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked: |
31 | 260 | 260 | ||
32 | === modified file 'openlp/plugins/media/lib/mediatab.py' | |||
33 | --- openlp/plugins/media/lib/mediatab.py 2011-12-02 21:13:05 +0000 | |||
34 | +++ openlp/plugins/media/lib/mediatab.py 2011-12-15 21:12:25 +0000 | |||
35 | @@ -35,7 +35,7 @@ | |||
36 | 35 | MediaTab is the Media settings tab in the settings dialog. | 35 | MediaTab is the Media settings tab in the settings dialog. |
37 | 36 | """ | 36 | """ |
38 | 37 | def __init__(self, parent, title, visible_title, media_players, icon_path): | 37 | def __init__(self, parent, title, visible_title, media_players, icon_path): |
40 | 38 | self.media_players = media_players | 38 | self.mediaPlayers = media_players |
41 | 39 | SettingsTab.__init__(self, parent, title, visible_title, icon_path) | 39 | SettingsTab.__init__(self, parent, title, visible_title, icon_path) |
42 | 40 | 40 | ||
43 | 41 | def setupUi(self): | 41 | def setupUi(self): |
44 | @@ -45,13 +45,13 @@ | |||
45 | 45 | self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox') | 45 | self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox') |
46 | 46 | self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox) | 46 | self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox) |
47 | 47 | self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout') | 47 | self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout') |
51 | 48 | self.PlayerCheckBoxes = {} | 48 | self.playerCheckBoxes = {} |
52 | 49 | for key in self.media_players: | 49 | for key, player in self.mediaPlayers.iteritems(): |
53 | 50 | player = self.media_players[key] | 50 | player = self.mediaPlayers[key] |
54 | 51 | checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox) | 51 | checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox) |
55 | 52 | checkbox.setEnabled(player.available) | 52 | checkbox.setEnabled(player.available) |
56 | 53 | checkbox.setObjectName(player.name + u'CheckBox') | 53 | checkbox.setObjectName(player.name + u'CheckBox') |
58 | 54 | self.PlayerCheckBoxes[player.name] = checkbox | 54 | self.playerCheckBoxes[player.name] = checkbox |
59 | 55 | self.mediaPlayerLayout.addWidget(checkbox) | 55 | self.mediaPlayerLayout.addWidget(checkbox) |
60 | 56 | self.leftLayout.addWidget(self.mediaPlayerGroupBox) | 56 | self.leftLayout.addWidget(self.mediaPlayerGroupBox) |
61 | 57 | self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn) | 57 | self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn) |
62 | @@ -88,19 +88,19 @@ | |||
63 | 88 | self.orderingButtonLayout.addWidget(self.orderingUpButton) | 88 | self.orderingButtonLayout.addWidget(self.orderingUpButton) |
64 | 89 | self.playerOrderLayout.addWidget(self.orderingButtonsWidget) | 89 | self.playerOrderLayout.addWidget(self.orderingButtonsWidget) |
65 | 90 | self.leftLayout.addWidget(self.playerOrderGroupBox) | 90 | self.leftLayout.addWidget(self.playerOrderGroupBox) |
74 | 91 | self.AdvancedGroupBox = QtGui.QGroupBox(self.leftColumn) | 91 | self.advancedGroupBox = QtGui.QGroupBox(self.leftColumn) |
75 | 92 | self.AdvancedGroupBox.setObjectName(u'AdvancedGroupBox') | 92 | self.advancedGroupBox.setObjectName(u'advancedGroupBox') |
76 | 93 | self.AdvancedLayout = QtGui.QVBoxLayout(self.AdvancedGroupBox) | 93 | self.advancedLayout = QtGui.QVBoxLayout(self.advancedGroupBox) |
77 | 94 | self.AdvancedLayout.setObjectName(u'AdvancedLayout') | 94 | self.advancedLayout.setObjectName(u'advancedLayout') |
78 | 95 | self.OverridePlayerCheckBox = QtGui.QCheckBox(self.AdvancedGroupBox) | 95 | self.overridePlayerCheckBox = QtGui.QCheckBox(self.advancedGroupBox) |
79 | 96 | self.OverridePlayerCheckBox.setObjectName(u'OverridePlayerCheckBox') | 96 | self.overridePlayerCheckBox.setObjectName(u'overridePlayerCheckBox') |
80 | 97 | self.AdvancedLayout.addWidget(self.OverridePlayerCheckBox) | 97 | self.advancedLayout.addWidget(self.overridePlayerCheckBox) |
81 | 98 | self.leftLayout.addWidget(self.AdvancedGroupBox) | 98 | self.leftLayout.addWidget(self.advancedGroupBox) |
82 | 99 | self.leftLayout.addStretch() | 99 | self.leftLayout.addStretch() |
83 | 100 | self.rightLayout.addStretch() | 100 | self.rightLayout.addStretch() |
87 | 101 | for key in self.media_players: | 101 | for key in self.mediaPlayers: |
88 | 102 | player = self.media_players[key] | 102 | player = self.mediaPlayers[key] |
89 | 103 | checkbox = self.PlayerCheckBoxes[player.name] | 103 | checkbox = self.playerCheckBoxes[player.name] |
90 | 104 | QtCore.QObject.connect(checkbox, | 104 | QtCore.QObject.connect(checkbox, |
91 | 105 | QtCore.SIGNAL(u'stateChanged(int)'), | 105 | QtCore.SIGNAL(u'stateChanged(int)'), |
92 | 106 | self.onPlayerCheckBoxChanged) | 106 | self.onPlayerCheckBoxChanged) |
93 | @@ -112,9 +112,9 @@ | |||
94 | 112 | def retranslateUi(self): | 112 | def retranslateUi(self): |
95 | 113 | self.mediaPlayerGroupBox.setTitle( | 113 | self.mediaPlayerGroupBox.setTitle( |
96 | 114 | translate('MediaPlugin.MediaTab', 'Available Media Players')) | 114 | translate('MediaPlugin.MediaTab', 'Available Media Players')) |
100 | 115 | for key in self.media_players: | 115 | for key in self.mediaPlayers: |
101 | 116 | player = self.media_players[key] | 116 | player = self.mediaPlayers[key] |
102 | 117 | checkbox = self.PlayerCheckBoxes[player.name] | 117 | checkbox = self.playerCheckBoxes[player.name] |
103 | 118 | if player.available: | 118 | if player.available: |
104 | 119 | checkbox.setText(player.name) | 119 | checkbox.setText(player.name) |
105 | 120 | else: | 120 | else: |
106 | @@ -127,8 +127,8 @@ | |||
107 | 127 | translate('MediaPlugin.MediaTab', 'Down')) | 127 | translate('MediaPlugin.MediaTab', 'Down')) |
108 | 128 | self.orderingUpButton.setText( | 128 | self.orderingUpButton.setText( |
109 | 129 | translate('MediaPlugin.MediaTab', 'Up')) | 129 | translate('MediaPlugin.MediaTab', 'Up')) |
112 | 130 | self.AdvancedGroupBox.setTitle(UiStrings().Advanced) | 130 | self.advancedGroupBox.setTitle(UiStrings().Advanced) |
113 | 131 | self.OverridePlayerCheckBox.setText( | 131 | self.overridePlayerCheckBox.setText( |
114 | 132 | translate('MediaPlugin.MediaTab', | 132 | translate('MediaPlugin.MediaTab', |
115 | 133 | 'Allow media player to be overriden')) | 133 | 'Allow media player to be overriden')) |
116 | 134 | 134 | ||
117 | @@ -144,12 +144,12 @@ | |||
118 | 144 | def updatePlayerList(self): | 144 | def updatePlayerList(self): |
119 | 145 | self.playerOrderlistWidget.clear() | 145 | self.playerOrderlistWidget.clear() |
120 | 146 | for player in self.usedPlayers: | 146 | for player in self.usedPlayers: |
122 | 147 | if player in self.PlayerCheckBoxes.keys(): | 147 | if player in self.playerCheckBoxes.keys(): |
123 | 148 | if len(self.usedPlayers) == 1: | 148 | if len(self.usedPlayers) == 1: |
124 | 149 | # at least one media player have to stay active | 149 | # at least one media player have to stay active |
126 | 150 | self.PlayerCheckBoxes[u'%s' % player].setEnabled(False) | 150 | self.playerCheckBoxes[u'%s' % player].setEnabled(False) |
127 | 151 | else: | 151 | else: |
129 | 152 | self.PlayerCheckBoxes[u'%s' % player].setEnabled(True) | 152 | self.playerCheckBoxes[u'%s' % player].setEnabled(True) |
130 | 153 | self.playerOrderlistWidget.addItem(player) | 153 | self.playerOrderlistWidget.addItem(player) |
131 | 154 | 154 | ||
132 | 155 | def onOrderingUpButtonPressed(self): | 155 | def onOrderingUpButtonPressed(self): |
133 | @@ -172,34 +172,34 @@ | |||
134 | 172 | self.usedPlayers = QtCore.QSettings().value( | 172 | self.usedPlayers = QtCore.QSettings().value( |
135 | 173 | self.settingsSection + u'/players', | 173 | self.settingsSection + u'/players', |
136 | 174 | QtCore.QVariant(u'webkit')).toString().split(u',') | 174 | QtCore.QVariant(u'webkit')).toString().split(u',') |
140 | 175 | for key in self.media_players: | 175 | for key in self.mediaPlayers: |
141 | 176 | player = self.media_players[key] | 176 | player = self.mediaPlayers[key] |
142 | 177 | checkbox = self.PlayerCheckBoxes[player.name] | 177 | checkbox = self.playerCheckBoxes[player.name] |
143 | 178 | if player.available and player.name in self.usedPlayers: | 178 | if player.available and player.name in self.usedPlayers: |
144 | 179 | checkbox.setChecked(True) | 179 | checkbox.setChecked(True) |
145 | 180 | self.updatePlayerList() | 180 | self.updatePlayerList() |
147 | 181 | self.OverridePlayerCheckBox.setChecked(QtCore.QSettings().value( | 181 | self.overridePlayerCheckBox.setChecked(QtCore.QSettings().value( |
148 | 182 | self.settingsSection + u'/override player', | 182 | self.settingsSection + u'/override player', |
149 | 183 | QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0]) | 183 | QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0]) |
150 | 184 | 184 | ||
151 | 185 | def save(self): | 185 | def save(self): |
152 | 186 | override_changed = False | 186 | override_changed = False |
153 | 187 | player_string_changed = False | 187 | player_string_changed = False |
155 | 188 | oldPlayerString = QtCore.QSettings().value( | 188 | old_players = QtCore.QSettings().value( |
156 | 189 | self.settingsSection + u'/players', | 189 | self.settingsSection + u'/players', |
157 | 190 | QtCore.QVariant(u'webkit')).toString() | 190 | QtCore.QVariant(u'webkit')).toString() |
160 | 191 | newPlayerString = self.usedPlayers.join(u',') | 191 | new_players = self.usedPlayers.join(u',') |
161 | 192 | if oldPlayerString != newPlayerString: | 192 | if old_players != new_players: |
162 | 193 | # clean old Media stuff | 193 | # clean old Media stuff |
163 | 194 | QtCore.QSettings().setValue(self.settingsSection + u'/players', | 194 | QtCore.QSettings().setValue(self.settingsSection + u'/players', |
165 | 195 | QtCore.QVariant(newPlayerString)) | 195 | QtCore.QVariant(new_players)) |
166 | 196 | player_string_changed = True | 196 | player_string_changed = True |
167 | 197 | override_changed = True | 197 | override_changed = True |
168 | 198 | setting_key = self.settingsSection + u'/override player' | 198 | setting_key = self.settingsSection + u'/override player' |
169 | 199 | if QtCore.QSettings().value(setting_key) != \ | 199 | if QtCore.QSettings().value(setting_key) != \ |
171 | 200 | self.OverridePlayerCheckBox.checkState(): | 200 | self.overridePlayerCheckBox.checkState(): |
172 | 201 | QtCore.QSettings().setValue(setting_key, | 201 | QtCore.QSettings().setValue(setting_key, |
174 | 202 | QtCore.QVariant(self.OverridePlayerCheckBox.checkState())) | 202 | QtCore.QVariant(self.overridePlayerCheckBox.checkState())) |
175 | 203 | override_changed = True | 203 | override_changed = True |
176 | 204 | if override_changed: | 204 | if override_changed: |
177 | 205 | Receiver.send_message(u'mediaitem_media_rebuild') | 205 | Receiver.send_message(u'mediaitem_media_rebuild') |
178 | 206 | 206 | ||
179 | === modified file 'openlp/plugins/media/mediaplugin.py' | |||
180 | --- openlp/plugins/media/mediaplugin.py 2011-12-08 17:55:12 +0000 | |||
181 | +++ openlp/plugins/media/mediaplugin.py 2011-12-15 21:12:25 +0000 | |||
182 | @@ -27,6 +27,8 @@ | |||
183 | 27 | 27 | ||
184 | 28 | import logging | 28 | import logging |
185 | 29 | 29 | ||
186 | 30 | from PyQt4 import QtCore | ||
187 | 31 | |||
188 | 30 | from openlp.core.lib import Plugin, StringContent, build_icon, translate | 32 | from openlp.core.lib import Plugin, StringContent, build_icon, translate |
189 | 31 | from openlp.plugins.media.lib import MediaMediaItem, MediaTab | 33 | from openlp.plugins.media.lib import MediaMediaItem, MediaTab |
190 | 32 | 34 | ||
191 | @@ -117,3 +119,29 @@ | |||
192 | 117 | Add html code to htmlbuilder | 119 | Add html code to htmlbuilder |
193 | 118 | """ | 120 | """ |
194 | 119 | return self.mediaController.get_media_display_html() | 121 | return self.mediaController.get_media_display_html() |
195 | 122 | |||
196 | 123 | def appStartup(self): | ||
197 | 124 | """ | ||
198 | 125 | Do a couple of things when the app starts up. In this particular case | ||
199 | 126 | we want to check if we have the old "Use Phonon" setting, and convert | ||
200 | 127 | it to "enable Phonon" and "make it the first one in the list". | ||
201 | 128 | """ | ||
202 | 129 | settings = QtCore.QSettings() | ||
203 | 130 | settings.beginGroup(self.settingsSection) | ||
204 | 131 | if settings.contains(u'use phonon'): | ||
205 | 132 | log.info(u'Found old Phonon setting') | ||
206 | 133 | players = self.mediaController.mediaPlayers.keys() | ||
207 | 134 | has_phonon = u'phonon' in players | ||
208 | 135 | if settings.value(u'use phonon').toBool() and has_phonon: | ||
209 | 136 | log.debug(u'Converting old setting to new setting') | ||
210 | 137 | new_players = [] | ||
211 | 138 | if players: | ||
212 | 139 | new_players = [player for player in players \ | ||
213 | 140 | if player != u'phonon'] | ||
214 | 141 | new_players.insert(0, u'phonon') | ||
215 | 142 | self.mediaController.mediaPlayers[u'phonon'].isActive = True | ||
216 | 143 | settings.setValue(u'players', \ | ||
217 | 144 | QtCore.QVariant(u','.join(new_players))) | ||
218 | 145 | self.settings_tab.load() | ||
219 | 146 | settings.remove(u'use phonon') | ||
220 | 147 | settings.endGroup() |