← Back to team overview

openlp-core team mailing list archive

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

 

Raoul Snyman has proposed merging lp:~raoul-snyman/openlp/bug-900387 into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)
Related bugs:
  Bug #900387 in OpenLP: "User defined option is lost after the media rewrite"
  https://bugs.launchpad.net/openlp/+bug/900387

For more details, see:
https://code.launchpad.net/~raoul-snyman/openlp/bug-900387/+merge/85961

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.
-- 
https://code.launchpad.net/~raoul-snyman/openlp/bug-900387/+merge/85961
Your team OpenLP Core is requested to review the proposed merge of lp:~raoul-snyman/openlp/bug-900387 into lp:openlp.
=== 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 @@
         self.iconPath = u'images/image'
         self.background = False
         self.previewFunction = CLAPPERBOARD
-        self.Automatic = u''
+        self.automatic = u''
         MediaManagerItem.__init__(self, parent, plugin, icon)
         self.singleServiceItem = False
         self.hasSearch = True
@@ -101,7 +101,7 @@
         self.replaceAction.setToolTip(UiStrings().ReplaceLiveBG)
         self.resetAction.setText(UiStrings().ResetBG)
         self.resetAction.setToolTip(UiStrings().ResetLiveBG)
-        self.Automatic = translate('MediaPlugin.MediaItem',
+        self.automatic = translate('MediaPlugin.MediaItem',
             'Automatic')
         self.displayTypeLabel.setText(
             translate('MediaPlugin.MediaItem', 'Use Player:'))
@@ -253,7 +253,7 @@
             # load the drop down selection
             self.displayTypeComboBox.addItem(title)
         if self.displayTypeComboBox.count() > 1:
-            self.displayTypeComboBox.insertItem(0, self.Automatic)
+            self.displayTypeComboBox.insertItem(0, self.automatic)
             self.displayTypeComboBox.setCurrentIndex(0)
         if QtCore.QSettings().value(self.settingsSection + u'/override player',
             QtCore.QVariant(QtCore.Qt.Unchecked)) == QtCore.Qt.Checked:

=== 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 @@
     MediaTab is the Media settings tab in the settings dialog.
     """
     def __init__(self, parent, title, visible_title, media_players, icon_path):
-        self.media_players = media_players
+        self.mediaPlayers = media_players
         SettingsTab.__init__(self, parent, title, visible_title, icon_path)
 
     def setupUi(self):
@@ -45,13 +45,13 @@
         self.mediaPlayerGroupBox.setObjectName(u'mediaPlayerGroupBox')
         self.mediaPlayerLayout = QtGui.QVBoxLayout(self.mediaPlayerGroupBox)
         self.mediaPlayerLayout.setObjectName(u'mediaPlayerLayout')
-        self.PlayerCheckBoxes = {}
-        for key in self.media_players:
-            player = self.media_players[key]
+        self.playerCheckBoxes = {}
+        for key, player in self.mediaPlayers.iteritems():
+            player = self.mediaPlayers[key]
             checkbox = QtGui.QCheckBox(self.mediaPlayerGroupBox)
             checkbox.setEnabled(player.available)
             checkbox.setObjectName(player.name + u'CheckBox')
-            self.PlayerCheckBoxes[player.name] = checkbox
+            self.playerCheckBoxes[player.name] = checkbox
             self.mediaPlayerLayout.addWidget(checkbox)
         self.leftLayout.addWidget(self.mediaPlayerGroupBox)
         self.playerOrderGroupBox = QtGui.QGroupBox(self.leftColumn)
@@ -88,19 +88,19 @@
         self.orderingButtonLayout.addWidget(self.orderingUpButton)
         self.playerOrderLayout.addWidget(self.orderingButtonsWidget)
         self.leftLayout.addWidget(self.playerOrderGroupBox)
-        self.AdvancedGroupBox = QtGui.QGroupBox(self.leftColumn)
-        self.AdvancedGroupBox.setObjectName(u'AdvancedGroupBox')
-        self.AdvancedLayout = QtGui.QVBoxLayout(self.AdvancedGroupBox)
-        self.AdvancedLayout.setObjectName(u'AdvancedLayout')
-        self.OverridePlayerCheckBox = QtGui.QCheckBox(self.AdvancedGroupBox)
-        self.OverridePlayerCheckBox.setObjectName(u'OverridePlayerCheckBox')
-        self.AdvancedLayout.addWidget(self.OverridePlayerCheckBox)
-        self.leftLayout.addWidget(self.AdvancedGroupBox)
+        self.advancedGroupBox = QtGui.QGroupBox(self.leftColumn)
+        self.advancedGroupBox.setObjectName(u'advancedGroupBox')
+        self.advancedLayout = QtGui.QVBoxLayout(self.advancedGroupBox)
+        self.advancedLayout.setObjectName(u'advancedLayout')
+        self.overridePlayerCheckBox = QtGui.QCheckBox(self.advancedGroupBox)
+        self.overridePlayerCheckBox.setObjectName(u'overridePlayerCheckBox')
+        self.advancedLayout.addWidget(self.overridePlayerCheckBox)
+        self.leftLayout.addWidget(self.advancedGroupBox)
         self.leftLayout.addStretch()
         self.rightLayout.addStretch()
-        for key in self.media_players:
-            player = self.media_players[key]
-            checkbox = self.PlayerCheckBoxes[player.name]
+        for key in self.mediaPlayers:
+            player = self.mediaPlayers[key]
+            checkbox = self.playerCheckBoxes[player.name]
             QtCore.QObject.connect(checkbox,
                 QtCore.SIGNAL(u'stateChanged(int)'),
                 self.onPlayerCheckBoxChanged)
@@ -112,9 +112,9 @@
     def retranslateUi(self):
         self.mediaPlayerGroupBox.setTitle(
             translate('MediaPlugin.MediaTab', 'Available Media Players'))
-        for key in self.media_players:
-            player = self.media_players[key]
-            checkbox = self.PlayerCheckBoxes[player.name]
+        for key in self.mediaPlayers:
+            player = self.mediaPlayers[key]
+            checkbox = self.playerCheckBoxes[player.name]
             if player.available:
                 checkbox.setText(player.name)
             else:
@@ -127,8 +127,8 @@
             translate('MediaPlugin.MediaTab', 'Down'))
         self.orderingUpButton.setText(
             translate('MediaPlugin.MediaTab', 'Up'))
-        self.AdvancedGroupBox.setTitle(UiStrings().Advanced)
-        self.OverridePlayerCheckBox.setText(
+        self.advancedGroupBox.setTitle(UiStrings().Advanced)
+        self.overridePlayerCheckBox.setText(
             translate('MediaPlugin.MediaTab',
             'Allow media player to be overriden'))
 
@@ -144,12 +144,12 @@
     def updatePlayerList(self):
         self.playerOrderlistWidget.clear()
         for player in self.usedPlayers:
-            if player in self.PlayerCheckBoxes.keys():
+            if player in self.playerCheckBoxes.keys():
                 if len(self.usedPlayers) == 1:
                     # at least one media player have to stay active
-                    self.PlayerCheckBoxes[u'%s' % player].setEnabled(False)
+                    self.playerCheckBoxes[u'%s' % player].setEnabled(False)
                 else:
-                    self.PlayerCheckBoxes[u'%s' % player].setEnabled(True)
+                    self.playerCheckBoxes[u'%s' % player].setEnabled(True)
                 self.playerOrderlistWidget.addItem(player)
 
     def onOrderingUpButtonPressed(self):
@@ -172,34 +172,34 @@
         self.usedPlayers = QtCore.QSettings().value(
             self.settingsSection + u'/players',
             QtCore.QVariant(u'webkit')).toString().split(u',')
-        for key in self.media_players:
-            player = self.media_players[key]
-            checkbox = self.PlayerCheckBoxes[player.name]
+        for key in self.mediaPlayers:
+            player = self.mediaPlayers[key]
+            checkbox = self.playerCheckBoxes[player.name]
             if player.available and player.name in self.usedPlayers:
                 checkbox.setChecked(True)
         self.updatePlayerList()
-        self.OverridePlayerCheckBox.setChecked(QtCore.QSettings().value(
+        self.overridePlayerCheckBox.setChecked(QtCore.QSettings().value(
             self.settingsSection + u'/override player',
             QtCore.QVariant(QtCore.Qt.Unchecked)).toInt()[0])
 
     def save(self):
         override_changed = False
         player_string_changed = False
-        oldPlayerString = QtCore.QSettings().value(
+        old_players = QtCore.QSettings().value(
             self.settingsSection + u'/players',
             QtCore.QVariant(u'webkit')).toString()
-        newPlayerString = self.usedPlayers.join(u',')
-        if oldPlayerString != newPlayerString:
+        new_players = self.usedPlayers.join(u',')
+        if old_players != new_players:
             # clean old Media stuff
             QtCore.QSettings().setValue(self.settingsSection + u'/players',
-                QtCore.QVariant(newPlayerString))
+                QtCore.QVariant(new_players))
             player_string_changed = True
             override_changed = True
         setting_key = self.settingsSection + u'/override player'
         if QtCore.QSettings().value(setting_key) != \
-            self.OverridePlayerCheckBox.checkState():
+            self.overridePlayerCheckBox.checkState():
             QtCore.QSettings().setValue(setting_key,
-                QtCore.QVariant(self.OverridePlayerCheckBox.checkState()))
+                QtCore.QVariant(self.overridePlayerCheckBox.checkState()))
             override_changed = True
         if override_changed:
             Receiver.send_message(u'mediaitem_media_rebuild')

=== 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 @@
 
 import logging
 
+from PyQt4 import QtCore
+
 from openlp.core.lib import Plugin, StringContent, build_icon, translate
 from openlp.plugins.media.lib import MediaMediaItem, MediaTab
 
@@ -117,3 +119,29 @@
         Add html code to htmlbuilder
         """
         return self.mediaController.get_media_display_html()
+
+    def appStartup(self):
+        """
+        Do a couple of things when the app starts up. In this particular case
+        we want to check if we have the old "Use Phonon" setting, and convert
+        it to "enable Phonon" and "make it the first one in the list".
+        """
+        settings = QtCore.QSettings()
+        settings.beginGroup(self.settingsSection)
+        if settings.contains(u'use phonon'):
+            log.info(u'Found old Phonon setting')
+            players = self.mediaController.mediaPlayers.keys()
+            has_phonon = u'phonon' in players
+            if settings.value(u'use phonon').toBool() and has_phonon:
+                log.debug(u'Converting old setting to new setting')
+                new_players = []
+                if players:
+                    new_players = [player for player in players \
+                        if player != u'phonon']
+                new_players.insert(0, u'phonon')
+                self.mediaController.mediaPlayers[u'phonon'].isActive = True
+                settings.setValue(u'players', \
+                    QtCore.QVariant(u','.join(new_players)))
+                self.settings_tab.load()
+            settings.remove(u'use phonon')
+        settings.endGroup()


Follow ups