Merge lp:~raoul-snyman/openlp/bug-900387 into lp:openlp

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
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
=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py 2011-12-02 21:13:05 +0000
+++ openlp/plugins/media/lib/mediaitem.py 2011-12-15 21:12:25 +0000
@@ -54,7 +54,7 @@
54 self.iconPath = u'images/image'54 self.iconPath = u'images/image'
55 self.background = False55 self.background = False
56 self.previewFunction = CLAPPERBOARD56 self.previewFunction = CLAPPERBOARD
57 self.Automatic = u''57 self.automatic = u''
58 MediaManagerItem.__init__(self, parent, plugin, icon)58 MediaManagerItem.__init__(self, parent, plugin, icon)
59 self.singleServiceItem = False59 self.singleServiceItem = False
60 self.hasSearch = True60 self.hasSearch = True
@@ -101,7 +101,7 @@
101 self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)101 self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)
102 self.resetAction.setText(UiStrings().ResetBG)102 self.resetAction.setText(UiStrings().ResetBG)
103 self.resetAction.setToolTip(UiStrings().ResetLiveBG)103 self.resetAction.setToolTip(UiStrings().ResetLiveBG)
104 self.Automatic = translate('MediaPlugin.MediaItem',104 self.automatic = translate('MediaPlugin.MediaItem',
105 'Automatic')105 'Automatic')
106 self.displayTypeLabel.setText(106 self.displayTypeLabel.setText(
107 translate('MediaPlugin.MediaItem', 'Use Player:'))107 translate('MediaPlugin.MediaItem', 'Use Player:'))
@@ -253,7 +253,7 @@
253 # load the drop down selection253 # load the drop down selection
254 self.displayTypeComboBox.addItem(title)254 self.displayTypeComboBox.addItem(title)
255 if self.displayTypeComboBox.count() > 1:255 if self.displayTypeComboBox.count() > 1:
256 self.displayTypeComboBox.insertItem(0, self.Automatic)256 self.displayTypeComboBox.insertItem(0, self.automatic)
257 self.displayTypeComboBox.setCurrentIndex(0)257 self.displayTypeComboBox.setCurrentIndex(0)
258 if QtCore.QSettings().value(self.settingsSection + u'/override player',258 if QtCore.QSettings().value(self.settingsSection + u'/override player',
259 QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:259 QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:
260260
=== modified file 'openlp/plugins/media/lib/mediatab.py'
--- openlp/plugins/media/lib/mediatab.py 2011-12-02 21:13:05 +0000
+++ openlp/plugins/media/lib/mediatab.py 2011-12-15 21:12:25 +0000
@@ -35,7 +35,7 @@
35 MediaTab is the Media settings tab in the settings dialog.35 MediaTab is the Media settings tab in the settings dialog.
36 """36 """
37 def __init__(self, parent, title, visible_title, media_players, icon_path):37 def __init__(self, parent, title, visible_title, media_players, icon_path):
38 self.media_players = media_players38 self.mediaPlayers = media_players
39 SettingsTab.__init__(self, parent, title, visible_title, icon_path)39 SettingsTab.__init__(self, parent, title, visible_title, icon_path)
4040
41 def setupUi(self):41 def setupUi(self):
@@ -45,13 +45,13 @@
45 self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox')45 self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox')
46 self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox)46 self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox)
47 self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout')47 self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout')
48 self.PlayerCheckBoxes = {}48 self.playerCheckBoxes = {}
49 for key in self.media_players:49 for key, player in self.mediaPlayers.iteritems():
50 player = self.media_players[key]50 player = self.mediaPlayers[key]
51 checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox)51 checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox)
52 checkbox.setEnabled(player.available)52 checkbox.setEnabled(player.available)
53 checkbox.setObjectName(player.name + u'CheckBox')53 checkbox.setObjectName(player.name + u'CheckBox')
54 self.PlayerCheckBoxes[player.name] = checkbox54 self.playerCheckBoxes[player.name] = checkbox
55 self.mediaPlayerLayout.addWidget(checkbox)55 self.mediaPlayerLayout.addWidget(checkbox)
56 self.leftLayout.addWidget(self.mediaPlayerGroupBox)56 self.leftLayout.addWidget(self.mediaPlayerGroupBox)
57 self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn)57 self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn)
@@ -88,19 +88,19 @@
88 self.orderingButtonLayout.addWidget(self.orderingUpButton)88 self.orderingButtonLayout.addWidget(self.orderingUpButton)
89 self.playerOrderLayout.addWidget(self.orderingButtonsWidget)89 self.playerOrderLayout.addWidget(self.orderingButtonsWidget)
90 self.leftLayout.addWidget(self.playerOrderGroupBox)90 self.leftLayout.addWidget(self.playerOrderGroupBox)
91 self.AdvancedGroupBox = QtGui.QGroupBox(self.leftColumn)91 self.advancedGroupBox = QtGui.QGroupBox(self.leftColumn)
92 self.AdvancedGroupBox.setObjectName(u'AdvancedGroupBox')92 self.advancedGroupBox.setObjectName(u'advancedGroupBox')
93 self.AdvancedLayout = QtGui.QVBoxLayout(self.AdvancedGroupBox)93 self.advancedLayout = QtGui.QVBoxLayout(self.advancedGroupBox)
94 self.AdvancedLayout.setObjectName(u'AdvancedLayout')94 self.advancedLayout.setObjectName(u'advancedLayout')
95 self.OverridePlayerCheckBox = QtGui.QCheckBox(self.AdvancedGroupBox)95 self.overridePlayerCheckBox = QtGui.QCheckBox(self.advancedGroupBox)
96 self.OverridePlayerCheckBox.setObjectName(u'OverridePlayerCheckBox')96 self.overridePlayerCheckBox.setObjectName(u'overridePlayerCheckBox')
97 self.AdvancedLayout.addWidget(self.OverridePlayerCheckBox)97 self.advancedLayout.addWidget(self.overridePlayerCheckBox)
98 self.leftLayout.addWidget(self.AdvancedGroupBox)98 self.leftLayout.addWidget(self.advancedGroupBox)
99 self.leftLayout.addStretch()99 self.leftLayout.addStretch()
100 self.rightLayout.addStretch()100 self.rightLayout.addStretch()
101 for key in self.media_players:101 for key in self.mediaPlayers:
102 player = self.media_players[key]102 player = self.mediaPlayers[key]
103 checkbox = self.PlayerCheckBoxes[player.name]103 checkbox = self.playerCheckBoxes[player.name]
104 QtCore.QObject.connect(checkbox,104 QtCore.QObject.connect(checkbox,
105 QtCore.SIGNAL(u'stateChanged(int)'),105 QtCore.SIGNAL(u'stateChanged(int)'),
106 self.onPlayerCheckBoxChanged)106 self.onPlayerCheckBoxChanged)
@@ -112,9 +112,9 @@
112 def retranslateUi(self):112 def retranslateUi(self):
113 self.mediaPlayerGroupBox.setTitle(113 self.mediaPlayerGroupBox.setTitle(
114 translate('MediaPlugin.MediaTab', 'Available Media Players'))114 translate('MediaPlugin.MediaTab', 'Available Media Players'))
115 for key in self.media_players:115 for key in self.mediaPlayers:
116 player = self.media_players[key]116 player = self.mediaPlayers[key]
117 checkbox = self.PlayerCheckBoxes[player.name]117 checkbox = self.playerCheckBoxes[player.name]
118 if player.available:118 if player.available:
119 checkbox.setText(player.name)119 checkbox.setText(player.name)
120 else:120 else:
@@ -127,8 +127,8 @@
127 translate('MediaPlugin.MediaTab', 'Down'))127 translate('MediaPlugin.MediaTab', 'Down'))
128 self.orderingUpButton.setText(128 self.orderingUpButton.setText(
129 translate('MediaPlugin.MediaTab', 'Up'))129 translate('MediaPlugin.MediaTab', 'Up'))
130 self.AdvancedGroupBox.setTitle(UiStrings().Advanced)130 self.advancedGroupBox.setTitle(UiStrings().Advanced)
131 self.OverridePlayerCheckBox.setText(131 self.overridePlayerCheckBox.setText(
132 translate('MediaPlugin.MediaTab',132 translate('MediaPlugin.MediaTab',
133 'Allow media player to be overriden'))133 'Allow media player to be overriden'))
134134
@@ -144,12 +144,12 @@
144 def updatePlayerList(self):144 def updatePlayerList(self):
145 self.playerOrderlistWidget.clear()145 self.playerOrderlistWidget.clear()
146 for player in self.usedPlayers:146 for player in self.usedPlayers:
147 if player in self.PlayerCheckBoxes.keys():147 if player in self.playerCheckBoxes.keys():
148 if len(self.usedPlayers) == 1:148 if len(self.usedPlayers) == 1:
149 # at least one media player have to stay active149 # at least one media player have to stay active
150 self.PlayerCheckBoxes[u'%s' % player].setEnabled(False)150 self.playerCheckBoxes[u'%s' % player].setEnabled(False)
151 else:151 else:
152 self.PlayerCheckBoxes[u'%s' % player].setEnabled(True)152 self.playerCheckBoxes[u'%s' % player].setEnabled(True)
153 self.playerOrderlistWidget.addItem(player)153 self.playerOrderlistWidget.addItem(player)
154154
155 def onOrderingUpButtonPressed(self):155 def onOrderingUpButtonPressed(self):
@@ -172,34 +172,34 @@
172 self.usedPlayers = QtCore.QSettings().value(172 self.usedPlayers = QtCore.QSettings().value(
173 self.settingsSection + u'/players',173 self.settingsSection + u'/players',
174 QtCore.QVariant(u'webkit')).toString().split(u',')174 QtCore.QVariant(u'webkit')).toString().split(u',')
175 for key in self.media_players:175 for key in self.mediaPlayers:
176 player = self.media_players[key]176 player = self.mediaPlayers[key]
177 checkbox = self.PlayerCheckBoxes[player.name]177 checkbox = self.playerCheckBoxes[player.name]
178 if player.available and player.name in self.usedPlayers:178 if player.available and player.name in self.usedPlayers:
179 checkbox.setChecked(True)179 checkbox.setChecked(True)
180 self.updatePlayerList()180 self.updatePlayerList()
181 self.OverridePlayerCheckBox.setChecked(QtCore.QSettings().value(181 self.overridePlayerCheckBox.setChecked(QtCore.QSettings().value(
182 self.settingsSection + u'/override player',182 self.settingsSection + u'/override player',
183 QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0])183 QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0])
184184
185 def save(self):185 def save(self):
186 override_changed = False186 override_changed = False
187 player_string_changed = False187 player_string_changed = False
188 oldPlayerString = QtCore.QSettings().value(188 old_players = QtCore.QSettings().value(
189 self.settingsSection + u'/players',189 self.settingsSection + u'/players',
190 QtCore.QVariant(u'webkit')).toString()190 QtCore.QVariant(u'webkit')).toString()
191 newPlayerString = self.usedPlayers.join(u',')191 new_players = self.usedPlayers.join(u',')
192 if oldPlayerString != newPlayerString:192 if old_players != new_players:
193 # clean old Media stuff193 # clean old Media stuff
194 QtCore.QSettings().setValue(self.settingsSection + u'/players',194 QtCore.QSettings().setValue(self.settingsSection + u'/players',
195 QtCore.QVariant(newPlayerString))195 QtCore.QVariant(new_players))
196 player_string_changed = True196 player_string_changed = True
197 override_changed = True197 override_changed = True
198 setting_key = self.settingsSection + u'/override player'198 setting_key = self.settingsSection + u'/override player'
199 if QtCore.QSettings().value(setting_key) != \199 if QtCore.QSettings().value(setting_key) != \
200 self.OverridePlayerCheckBox.checkState():200 self.overridePlayerCheckBox.checkState():
201 QtCore.QSettings().setValue(setting_key,201 QtCore.QSettings().setValue(setting_key,
202 QtCore.QVariant(self.OverridePlayerCheckBox.checkState()))202 QtCore.QVariant(self.overridePlayerCheckBox.checkState()))
203 override_changed = True203 override_changed = True
204 if override_changed:204 if override_changed:
205 Receiver.send_message(u'mediaitem_media_rebuild')205 Receiver.send_message(u'mediaitem_media_rebuild')
206206
=== modified file 'openlp/plugins/media/mediaplugin.py'
--- openlp/plugins/media/mediaplugin.py 2011-12-08 17:55:12 +0000
+++ openlp/plugins/media/mediaplugin.py 2011-12-15 21:12:25 +0000
@@ -27,6 +27,8 @@
2727
28import logging28import logging
2929
30from PyQt4 import QtCore
31
30from openlp.core.lib import Plugin, StringContent, build_icon, translate32from openlp.core.lib import Plugin, StringContent, build_icon, translate
31from openlp.plugins.media.lib import MediaMediaItem, MediaTab33from openlp.plugins.media.lib import MediaMediaItem, MediaTab
3234
@@ -117,3 +119,29 @@
117 Add html code to htmlbuilder119 Add html code to htmlbuilder
118 """120 """
119 return self.mediaController.get_media_display_html()121 return self.mediaController.get_media_display_html()
122
123 def appStartup(self):
124 """
125 Do a couple of things when the app starts up. In this particular case
126 we want to check if we have the old "Use Phonon" setting, and convert
127 it to "enable Phonon" and "make it the first one in the list".
128 """
129 settings = QtCore.QSettings()
130 settings.beginGroup(self.settingsSection)
131 if settings.contains(u'use phonon'):
132 log.info(u'Found old Phonon setting')
133 players = self.mediaController.mediaPlayers.keys()
134 has_phonon = u'phonon' in players
135 if settings.value(u'use phonon').toBool() and has_phonon:
136 log.debug(u'Converting old setting to new setting')
137 new_players = []
138 if players:
139 new_players = [player for player in players \
140 if player != u'phonon']
141 new_players.insert(0, u'phonon')
142 self.mediaController.mediaPlayers[u'phonon'].isActive = True
143 settings.setValue(u'players', \
144 QtCore.QVariant(u','.join(new_players)))
145 self.settings_tab.load()
146 settings.remove(u'use phonon')
147 settings.endGroup()