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
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 self.iconPath = u'images/image'
6 self.background = False
7 self.previewFunction = CLAPPERBOARD
8- self.Automatic = u''
9+ self.automatic = u''
10 MediaManagerItem.__init__(self, parent, plugin, icon)
11 self.singleServiceItem = False
12 self.hasSearch = True
13@@ -101,7 +101,7 @@
14 self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)
15 self.resetAction.setText(UiStrings().ResetBG)
16 self.resetAction.setToolTip(UiStrings().ResetLiveBG)
17- self.Automatic = translate('MediaPlugin.MediaItem',
18+ self.automatic = translate('MediaPlugin.MediaItem',
19 'Automatic')
20 self.displayTypeLabel.setText(
21 translate('MediaPlugin.MediaItem', 'Use Player:'))
22@@ -253,7 +253,7 @@
23 # load the drop down selection
24 self.displayTypeComboBox.addItem(title)
25 if self.displayTypeComboBox.count() > 1:
26- self.displayTypeComboBox.insertItem(0, self.Automatic)
27+ self.displayTypeComboBox.insertItem(0, self.automatic)
28 self.displayTypeComboBox.setCurrentIndex(0)
29 if QtCore.QSettings().value(self.settingsSection + u'/override player',
30 QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:
31
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 MediaTab is the Media settings tab in the settings dialog.
37 """
38 def __init__(self, parent, title, visible_title, media_players, icon_path):
39- self.media_players = media_players
40+ self.mediaPlayers = media_players
41 SettingsTab.__init__(self, parent, title, visible_title, icon_path)
42
43 def setupUi(self):
44@@ -45,13 +45,13 @@
45 self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox')
46 self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox)
47 self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout')
48- self.PlayerCheckBoxes = {}
49- for key in self.media_players:
50- player = self.media_players[key]
51+ self.playerCheckBoxes = {}
52+ for key, player in self.mediaPlayers.iteritems():
53+ player = self.mediaPlayers[key]
54 checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox)
55 checkbox.setEnabled(player.available)
56 checkbox.setObjectName(player.name + u'CheckBox')
57- self.PlayerCheckBoxes[player.name] = checkbox
58+ self.playerCheckBoxes[player.name] = checkbox
59 self.mediaPlayerLayout.addWidget(checkbox)
60 self.leftLayout.addWidget(self.mediaPlayerGroupBox)
61 self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn)
62@@ -88,19 +88,19 @@
63 self.orderingButtonLayout.addWidget(self.orderingUpButton)
64 self.playerOrderLayout.addWidget(self.orderingButtonsWidget)
65 self.leftLayout.addWidget(self.playerOrderGroupBox)
66- self.AdvancedGroupBox = QtGui.QGroupBox(self.leftColumn)
67- self.AdvancedGroupBox.setObjectName(u'AdvancedGroupBox')
68- self.AdvancedLayout = QtGui.QVBoxLayout(self.AdvancedGroupBox)
69- self.AdvancedLayout.setObjectName(u'AdvancedLayout')
70- self.OverridePlayerCheckBox = QtGui.QCheckBox(self.AdvancedGroupBox)
71- self.OverridePlayerCheckBox.setObjectName(u'OverridePlayerCheckBox')
72- self.AdvancedLayout.addWidget(self.OverridePlayerCheckBox)
73- self.leftLayout.addWidget(self.AdvancedGroupBox)
74+ self.advancedGroupBox = QtGui.QGroupBox(self.leftColumn)
75+ self.advancedGroupBox.setObjectName(u'advancedGroupBox')
76+ self.advancedLayout = QtGui.QVBoxLayout(self.advancedGroupBox)
77+ self.advancedLayout.setObjectName(u'advancedLayout')
78+ self.overridePlayerCheckBox = QtGui.QCheckBox(self.advancedGroupBox)
79+ self.overridePlayerCheckBox.setObjectName(u'overridePlayerCheckBox')
80+ self.advancedLayout.addWidget(self.overridePlayerCheckBox)
81+ self.leftLayout.addWidget(self.advancedGroupBox)
82 self.leftLayout.addStretch()
83 self.rightLayout.addStretch()
84- for key in self.media_players:
85- player = self.media_players[key]
86- checkbox = self.PlayerCheckBoxes[player.name]
87+ for key in self.mediaPlayers:
88+ player = self.mediaPlayers[key]
89+ checkbox = self.playerCheckBoxes[player.name]
90 QtCore.QObject.connect(checkbox,
91 QtCore.SIGNAL(u'stateChanged(int)'),
92 self.onPlayerCheckBoxChanged)
93@@ -112,9 +112,9 @@
94 def retranslateUi(self):
95 self.mediaPlayerGroupBox.setTitle(
96 translate('MediaPlugin.MediaTab', 'Available Media Players'))
97- for key in self.media_players:
98- player = self.media_players[key]
99- checkbox = self.PlayerCheckBoxes[player.name]
100+ for key in self.mediaPlayers:
101+ player = self.mediaPlayers[key]
102+ checkbox = self.playerCheckBoxes[player.name]
103 if player.available:
104 checkbox.setText(player.name)
105 else:
106@@ -127,8 +127,8 @@
107 translate('MediaPlugin.MediaTab', 'Down'))
108 self.orderingUpButton.setText(
109 translate('MediaPlugin.MediaTab', 'Up'))
110- self.AdvancedGroupBox.setTitle(UiStrings().Advanced)
111- self.OverridePlayerCheckBox.setText(
112+ self.advancedGroupBox.setTitle(UiStrings().Advanced)
113+ self.overridePlayerCheckBox.setText(
114 translate('MediaPlugin.MediaTab',
115 'Allow media player to be overriden'))
116
117@@ -144,12 +144,12 @@
118 def updatePlayerList(self):
119 self.playerOrderlistWidget.clear()
120 for player in self.usedPlayers:
121- if player in self.PlayerCheckBoxes.keys():
122+ if player in self.playerCheckBoxes.keys():
123 if len(self.usedPlayers) == 1:
124 # at least one media player have to stay active
125- self.PlayerCheckBoxes[u'%s' % player].setEnabled(False)
126+ self.playerCheckBoxes[u'%s' % player].setEnabled(False)
127 else:
128- self.PlayerCheckBoxes[u'%s' % player].setEnabled(True)
129+ self.playerCheckBoxes[u'%s' % player].setEnabled(True)
130 self.playerOrderlistWidget.addItem(player)
131
132 def onOrderingUpButtonPressed(self):
133@@ -172,34 +172,34 @@
134 self.usedPlayers = QtCore.QSettings().value(
135 self.settingsSection + u'/players',
136 QtCore.QVariant(u'webkit')).toString().split(u',')
137- for key in self.media_players:
138- player = self.media_players[key]
139- checkbox = self.PlayerCheckBoxes[player.name]
140+ for key in self.mediaPlayers:
141+ player = self.mediaPlayers[key]
142+ checkbox = self.playerCheckBoxes[player.name]
143 if player.available and player.name in self.usedPlayers:
144 checkbox.setChecked(True)
145 self.updatePlayerList()
146- self.OverridePlayerCheckBox.setChecked(QtCore.QSettings().value(
147+ self.overridePlayerCheckBox.setChecked(QtCore.QSettings().value(
148 self.settingsSection + u'/override player',
149 QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0])
150
151 def save(self):
152 override_changed = False
153 player_string_changed = False
154- oldPlayerString = QtCore.QSettings().value(
155+ old_players = QtCore.QSettings().value(
156 self.settingsSection + u'/players',
157 QtCore.QVariant(u'webkit')).toString()
158- newPlayerString = self.usedPlayers.join(u',')
159- if oldPlayerString != newPlayerString:
160+ new_players = self.usedPlayers.join(u',')
161+ if old_players != new_players:
162 # clean old Media stuff
163 QtCore.QSettings().setValue(self.settingsSection + u'/players',
164- QtCore.QVariant(newPlayerString))
165+ QtCore.QVariant(new_players))
166 player_string_changed = True
167 override_changed = True
168 setting_key = self.settingsSection + u'/override player'
169 if QtCore.QSettings().value(setting_key) != \
170- self.OverridePlayerCheckBox.checkState():
171+ self.overridePlayerCheckBox.checkState():
172 QtCore.QSettings().setValue(setting_key,
173- QtCore.QVariant(self.OverridePlayerCheckBox.checkState()))
174+ QtCore.QVariant(self.overridePlayerCheckBox.checkState()))
175 override_changed = True
176 if override_changed:
177 Receiver.send_message(u'mediaitem_media_rebuild')
178
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
184 import logging
185
186+from PyQt4 import QtCore
187+
188 from openlp.core.lib import Plugin, StringContent, build_icon, translate
189 from openlp.plugins.media.lib import MediaMediaItem, MediaTab
190
191@@ -117,3 +119,29 @@
192 Add html code to htmlbuilder
193 """
194 return self.mediaController.get_media_display_html()
195+
196+ def appStartup(self):
197+ """
198+ Do a couple of things when the app starts up. In this particular case
199+ we want to check if we have the old "Use Phonon" setting, and convert
200+ it to "enable Phonon" and "make it the first one in the list".
201+ """
202+ settings = QtCore.QSettings()
203+ settings.beginGroup(self.settingsSection)
204+ if settings.contains(u'use phonon'):
205+ log.info(u'Found old Phonon setting')
206+ players = self.mediaController.mediaPlayers.keys()
207+ has_phonon = u'phonon' in players
208+ if settings.value(u'use phonon').toBool() and has_phonon:
209+ log.debug(u'Converting old setting to new setting')
210+ new_players = []
211+ if players:
212+ new_players = [player for player in players \
213+ if player != u'phonon']
214+ new_players.insert(0, u'phonon')
215+ self.mediaController.mediaPlayers[u'phonon'].isActive = True
216+ settings.setValue(u'players', \
217+ QtCore.QVariant(u','.join(new_players)))
218+ self.settings_tab.load()
219+ settings.remove(u'use phonon')
220+ settings.endGroup()