← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~trb143/openlp/cleanup-plugins into lp:openlp

 

Tim Bentley has proposed merging lp:~trb143/openlp/cleanup-plugins into lp:openlp.

Requested reviews:
  Andreas Preikschat (googol)

For more details, see:
https://code.launchpad.net/~trb143/openlp/cleanup-plugins/+merge/151803

Wholesale cleanups around the code.
Remote and Custom should be complete 
Other areas improved. 
-- 
https://code.launchpad.net/~trb143/openlp/cleanup-plugins/+merge/151803
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/htmlbuilder.py'
--- openlp/core/lib/htmlbuilder.py	2013-02-02 20:54:34 +0000
+++ openlp/core/lib/htmlbuilder.py	2013-03-05 17:13:27 +0000
@@ -218,7 +218,7 @@
     ``screen``
         Current display information
 
-    ``islive``
+    ``is_live``
         Item is going live, rather than preview/theme building
 
     ``background``

=== modified file 'openlp/core/lib/plugin.py'
--- openlp/core/lib/plugin.py	2013-02-07 08:42:17 +0000
+++ openlp/core/lib/plugin.py	2013-03-05 17:13:27 +0000
@@ -148,7 +148,7 @@
         QtCore.QObject.__init__(self)
         self.name = name
         self.textStrings = {}
-        self.setPluginTextStrings()
+        self.set_plugin_text_strings()
         self.nameStrings = self.textStrings[StringContent.Name]
         if version:
             self.version = version
@@ -319,7 +319,7 @@
                 Settings().setValue(u'%s/%s files' % (self.settingsSection, self.name), loaded_list)
             settings.endGroup()
 
-    def usesTheme(self, theme):
+    def uses_theme(self, theme):
         """
         Called to find out if a plugin is currently using a theme.
 
@@ -327,7 +327,7 @@
         """
         return False
 
-    def renameTheme(self, oldTheme, newTheme):
+    def rename_theme(self, oldTheme, newTheme):
         """
         Renames a theme a plugin is using making the plugin use the new name.
 

=== modified file 'openlp/core/lib/renderer.py'
--- openlp/core/lib/renderer.py	2013-02-17 21:28:45 +0000
+++ openlp/core/lib/renderer.py	2013-03-05 17:13:27 +0000
@@ -247,7 +247,7 @@
         serviceItem.footer = footer
         serviceItem.render(True)
         if not self.force_page:
-            self.display.buildHtml(serviceItem)
+            self.display.build_html(serviceItem)
             raw_html = serviceItem.get_rendered_frame(0)
             self.display.text(raw_html, False)
             preview = self.display.preview()

=== modified file 'openlp/core/ui/maindisplay.py'
--- openlp/core/ui/maindisplay.py	2013-02-14 21:31:17 +0000
+++ openlp/core/ui/maindisplay.py	2013-03-05 17:13:27 +0000
@@ -68,7 +68,7 @@
             self.parent = lambda: parent
         else:
             QtGui.QGraphicsView.__init__(self, parent)
-        self.isLive = live
+        self.is_live = live
         self.controller = controller
         self.screen = {}
         # FIXME: On Mac OS X (tested on 10.7) the display screen is corrupt with
@@ -82,40 +82,37 @@
         """
         Set up and build the screen base
         """
-        log.debug(u'Start Display base setup (live = %s)' % self.isLive)
+        log.debug(u'Start Display base setup (live = %s)' % self.is_live)
         self.setGeometry(self.screen[u'size'])
         log.debug(u'Setup webView')
-        self.webView = QtWebKit.QWebView(self)
-        self.webView.setGeometry(0, 0, self.screen[u'size'].width(), self.screen[u'size'].height())
-        self.webView.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
-        palette = self.webView.palette()
+        self.web_view = QtWebKit.QWebView(self)
+        self.web_view.setGeometry(0, 0, self.screen[u'size'].width(), self.screen[u'size'].height())
+        self.web_view.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled, True)
+        palette = self.web_view.palette()
         palette.setBrush(QtGui.QPalette.Base, QtCore.Qt.transparent)
-        self.webView.page().setPalette(palette)
-        self.webView.setAttribute(QtCore.Qt.WA_OpaquePaintEvent, False)
-        self.page = self.webView.page()
+        self.web_view.page().setPalette(palette)
+        self.web_view.setAttribute(QtCore.Qt.WA_OpaquePaintEvent, False)
+        self.page = self.web_view.page()
         self.frame = self.page.mainFrame()
-        if self.isLive and log.getEffectiveLevel() == logging.DEBUG:
-            self.webView.settings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True)
-        QtCore.QObject.connect(self.webView,
-            QtCore.SIGNAL(u'loadFinished(bool)'), self.isWebLoaded)
+        if self.is_live and log.getEffectiveLevel() == logging.DEBUG:
+            self.web_view.settings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True)
+        self.web_view.loadFinished.connect(self.is_web_loaded)
         self.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
         self.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
-        self.frame.setScrollBarPolicy(QtCore.Qt.Vertical,
-            QtCore.Qt.ScrollBarAlwaysOff)
-        self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal,
-            QtCore.Qt.ScrollBarAlwaysOff)
+        self.frame.setScrollBarPolicy(QtCore.Qt.Vertical, QtCore.Qt.ScrollBarAlwaysOff)
+        self.frame.setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff)
 
     def resizeEvent(self, event):
         """
         React to resizing of this display
         """
-        self.webView.setGeometry(0, 0, self.width(), self.height())
+        self.web_view.setGeometry(0, 0, self.width(), self.height())
 
-    def isWebLoaded(self):
+    def is_web_loaded(self):
         """
         Called by webView event to show display is fully loaded
         """
-        log.debug(u'Webloaded')
+        log.debug(u'is web loaded')
         self.webLoaded = True
 
 
@@ -129,11 +126,11 @@
         """
         Display.__init__(self, parent, live, controller)
         self.screens = ScreenList()
-        self.rebuildCSS = False
-        self.hideMode = None
+        self.rebuild_css = False
+        self.hide_mode = None
         self.override = {}
         self.retranslateUi()
-        self.mediaObject = None
+        self.media_object = None
         if live:
             self.audioPlayer = AudioPlayer(self)
         else:
@@ -156,14 +153,14 @@
                 self.setWindowState(QtCore.Qt.WindowFullScreen)
         self.setWindowFlags(windowFlags)
         self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
-        self.setTransparency(False)
-        if self.isLive:
+        self.set_transparency(False)
+        if self.is_live:
             Registry().register_function(u'live_display_hide', self.hide_display)
             Registry().register_function(u'live_display_show', self.show_display)
             Registry().register_function(u'update_display_css', self.css_changed)
             Registry().register_function(u'config_updated', self.config_changed)
 
-    def setTransparency(self, enabled):
+    def set_transparency(self, enabled):
         """
         Set the transparency of the window
         """
@@ -178,17 +175,17 @@
         """
         We may need to rebuild the CSS on the live display.
         """
-        self.rebuildCSS = True
+        self.rebuild_css = True
 
     def config_changed(self):
         """
         Call the plugins to rebuild the Live display CSS as the screen has
         not been rebuild on exit of config.
         """
-        if self.rebuildCSS and self.plugin_manager.plugins:
+        if self.rebuild_css and self.plugin_manager.plugins:
             for plugin in self.plugin_manager.plugins:
                 plugin.refreshCss(self.frame)
-        self.rebuildCSS = False
+        self.rebuild_css = False
 
     def retranslateUi(self):
         """
@@ -200,11 +197,11 @@
         """
         Set up and build the output screen
         """
-        log.debug(u'Start MainDisplay setup (live = %s)' % self.isLive)
+        log.debug(u'Start MainDisplay setup (live = %s)' % self.is_live)
         self.screen = self.screens.current
         self.setVisible(False)
         Display.setup(self)
-        if self.isLive:
+        if self.is_live:
             # Build the initial frame.
             background_color = QtGui.QColor()
             background_color.setNamedColor(Settings().value(u'advanced/default color'))
@@ -225,7 +222,7 @@
                 splash_image)
             serviceItem = ServiceItem()
             serviceItem.bg_image_bytes = image_to_byte(self.initialFrame)
-            self.webView.setHtml(build_html(serviceItem, self.screen, self.isLive, None,
+            self.web_view.setHtml(build_html(serviceItem, self.screen, self.is_live, None,
                 plugins=self.plugin_manager.plugins))
             self.__hideMouse()
         log.debug(u'Finished MainDisplay setup')
@@ -288,7 +285,7 @@
                 self.setVisible(False)
                 self.setGeometry(self.screen[u'size'])
 
-    def directImage(self, path, background):
+    def direct_image(self, path, background):
         """
         API for replacement backgrounds so Images are added directly to cache.
         """
@@ -299,7 +296,7 @@
         self.override[u'theme'] = self.serviceItem.themedata.background_filename
         self.image(path)
         # Update the preview frame.
-        if self.isLive:
+        if self.is_live:
             self.live_controller.updatePreview()
         return True
 
@@ -316,9 +313,9 @@
         log.debug(u'image to display')
         image = self.image_manager.get_image_bytes(path, ImageSource.ImagePlugin)
         self.controller.media_controller.media_reset(self.controller)
-        self.displayImage(image)
+        self.display_image(image)
 
-    def displayImage(self, image):
+    def display_image(self, image):
         """
         Display an image, as is.
         """
@@ -329,16 +326,16 @@
             js = u'show_image("");'
         self.frame.evaluateJavaScript(js)
 
-    def resetImage(self):
+    def reset_image(self):
         """
-        Reset the backgound image to the service item image. Used after the
+        Reset the background image to the service item image. Used after the
         image plugin has changed the background.
         """
-        log.debug(u'resetImage')
+        log.debug(u'reset_image')
         if hasattr(self, u'serviceItem'):
-            self.displayImage(self.serviceItem.bg_image_bytes)
+            self.display_image(self.serviceItem.bg_image_bytes)
         else:
-            self.displayImage(None)
+            self.display_image(None)
         # clear the cache
         self.override = {}
 
@@ -346,10 +343,10 @@
         """
         Generates a preview of the image displayed.
         """
-        log.debug(u'preview for %s', self.isLive)
+        log.debug(u'preview for %s', self.is_live)
         self.application.process_events()
         # We must have a service item to preview.
-        if self.isLive and hasattr(self, u'serviceItem'):
+        if self.is_live and hasattr(self, u'serviceItem'):
             # Wait for the fade to finish before geting the preview.
             # Important otherwise preview will have incorrect text if at all!
             if self.serviceItem.themedata and self.serviceItem.themedata.display_slide_transition:
@@ -360,9 +357,9 @@
         while not self.webLoaded:
             self.application.process_events()
         # if was hidden keep it hidden
-        if self.isLive:
-            if self.hideMode:
-                self.hide_display(self.hideMode)
+        if self.is_live:
+            if self.hide_mode:
+                self.hide_display(self.hide_mode)
             else:
                 # Single screen active
                 if self.screens.display_count == 1:
@@ -373,12 +370,12 @@
                     self.setVisible(True)
         return QtGui.QPixmap.grabWidget(self)
 
-    def buildHtml(self, serviceItem, image_path=u''):
+    def build_html(self, serviceItem, image_path=u''):
         """
         Store the serviceItem and build the new HTML from it. Add the
         HTML to the display
         """
-        log.debug(u'buildHtml')
+        log.debug(u'build_html')
         self.webLoaded = False
         self.initialFrame = None
         self.serviceItem = serviceItem
@@ -396,30 +393,29 @@
             else:
                 # replace the background
                 background = self.image_manager.get_image_bytes(self.override[u'image'], ImageSource.ImagePlugin)
-        self.setTransparency(self.serviceItem.themedata.background_type ==
+        self.set_transparency(self.serviceItem.themedata.background_type ==
             BackgroundType.to_string(BackgroundType.Transparent))
         if self.serviceItem.themedata.background_filename:
             self.serviceItem.bg_image_bytes = self.image_manager.get_image_bytes(
-                self.serviceItem.themedata.background_filename,
-                ImageSource.Theme
+                self.serviceItem.themedata.background_filename, ImageSource.Theme
             )
         if image_path:
             image_bytes = self.image_manager.get_image_bytes(image_path, ImageSource.ImagePlugin)
         else:
             image_bytes = None
-        html = build_html(self.serviceItem, self.screen, self.isLive, background, image_bytes,
+        html = build_html(self.serviceItem, self.screen, self.is_live, background, image_bytes,
             plugins=self.plugin_manager.plugins)
         log.debug(u'buildHtml - pre setHtml')
-        self.webView.setHtml(html)
+        self.web_view.setHtml(html)
         log.debug(u'buildHtml - post setHtml')
         if serviceItem.foot_text:
             self.footer(serviceItem.foot_text)
         # if was hidden keep it hidden
-        if self.hideMode and self.isLive and not serviceItem.is_media():
+        if self.hide_mode and self.is_live and not serviceItem.is_media():
             if Settings().value(u'general/auto unblank'):
                 Registry().execute(u'slidecontroller_live_unblank')
             else:
-                self.hide_display(self.hideMode)
+                self.hide_display(self.hide_mode)
         self.__hideMouse()
 
     def footer(self, text):
@@ -450,13 +446,12 @@
         if mode != HideMode.Screen:
             if self.isHidden():
                 self.setVisible(True)
-                self.webView.setVisible(True)
-        self.hideMode = mode
+                self.web_view.setVisible(True)
+        self.hide_mode = mode
 
     def show_display(self):
         """
-        Show the stored layers so the screen reappears as it was
-        originally.
+        Show the stored layers so the screen reappears as it was originally.
         Make the stored images None to release memory.
         """
         log.debug(u'show_display')
@@ -467,9 +462,9 @@
         self.frame.evaluateJavaScript('show_blank("show");')
         if self.isHidden():
             self.setVisible(True)
-        self.hideMode = None
+        self.hide_mode = None
         # Trigger actions when display is active again.
-        if self.isLive:
+        if self.is_live:
             Registry().execute(u'live_display_active')
 
     def __hideMouse(self):
@@ -543,38 +538,38 @@
         self.currentIndex = -1
         self.playlist = []
         self.repeat = False
-        self.mediaObject = Phonon.MediaObject()
-        self.mediaObject.setTickInterval(100)
-        self.audioObject = Phonon.AudioOutput(Phonon.VideoCategory)
-        Phonon.createPath(self.mediaObject, self.audioObject)
-        QtCore.QObject.connect(self.mediaObject, QtCore.SIGNAL(u'aboutToFinish()'), self.onAboutToFinish)
-        QtCore.QObject.connect(self.mediaObject, QtCore.SIGNAL(u'finished()'), self.onFinished)
+        self.media_object = Phonon.MediaObject()
+        self.media_object.setTickInterval(100)
+        self.audio_object = Phonon.AudioOutput(Phonon.VideoCategory)
+        Phonon.createPath(self.media_object, self.audio_object)
+        self.media_object.aboutToFinish.connect(self.on_about_to_finish)
+        self.media_object.finished.connect(self.on_finished)
 
     def __del__(self):
         """
         Shutting down so clean up connections
         """
         self.stop()
-        for path in self.mediaObject.outputPaths():
+        for path in self.media_object.outputPaths():
             path.disconnect()
 
-    def onAboutToFinish(self):
+    def on_about_to_finish(self):
         """
         Just before the audio player finishes the current track, queue the next
         item in the playlist, if there is one.
         """
         self.currentIndex += 1
         if len(self.playlist) > self.currentIndex:
-            self.mediaObject.enqueue(self.playlist[self.currentIndex])
+            self.media_object.enqueue(self.playlist[self.currentIndex])
 
-    def onFinished(self):
+    def on_finished(self):
         """
         When the audio track finishes.
         """
         if self.repeat:
             log.debug(u'Repeat is enabled... here we go again!')
-            self.mediaObject.clearQueue()
-            self.mediaObject.clear()
+            self.media_object.clearQueue()
+            self.media_object.clear()
             self.currentIndex = -1
             self.play()
 
@@ -582,7 +577,7 @@
         """
         Connect the volume slider to the output channel.
         """
-        slider.setAudioOutput(self.audioObject)
+        slider.setAudioOutput(self.audio_object)
 
     def reset(self):
         """
@@ -591,7 +586,7 @@
         self.currentIndex = -1
         self.playlist = []
         self.stop()
-        self.mediaObject.clear()
+        self.media_object.clear()
 
     def play(self):
         """
@@ -599,24 +594,24 @@
         """
         log.debug(u'AudioPlayer.play() called')
         if self.currentIndex == -1:
-            self.onAboutToFinish()
-        self.mediaObject.play()
+            self.on_about_to_finish()
+        self.media_object.play()
 
     def pause(self):
         """
         Pause the Audio
         """
         log.debug(u'AudioPlayer.pause() called')
-        self.mediaObject.pause()
+        self.media_object.pause()
 
     def stop(self):
         """
         Stop the Audio and clean up
         """
         log.debug(u'AudioPlayer.stop() called')
-        self.mediaObject.stop()
+        self.media_object.stop()
 
-    def addToPlaylist(self, filenames):
+    def add_to_playlist(self, filenames):
         """
         Add another file to the playlist.
 
@@ -633,31 +628,30 @@
         """
         if not self.repeat and self.currentIndex + 1 >= len(self.playlist):
             return
-        isPlaying = self.mediaObject.state() == Phonon.PlayingState
+        isPlaying = self.media_object.state() == Phonon.PlayingState
         self.currentIndex += 1
         if self.repeat and self.currentIndex == len(self.playlist):
             self.currentIndex = 0
-        self.mediaObject.clearQueue()
-        self.mediaObject.clear()
-        self.mediaObject.enqueue(self.playlist[self.currentIndex])
+        self.media_object.clearQueue()
+        self.media_object.clear()
+        self.media_object.enqueue(self.playlist[self.currentIndex])
         if isPlaying:
-            self.mediaObject.play()
+            self.media_object.play()
 
-    def goTo(self, index):
+    def go_to(self, index):
         """
         Go to a particular track in the list
         """
-        isPlaying = self.mediaObject.state() == Phonon.PlayingState
-        self.mediaObject.clearQueue()
-        self.mediaObject.clear()
+        isPlaying = self.media_object.state() == Phonon.PlayingState
+        self.media_object.clearQueue()
+        self.media_object.clear()
         self.currentIndex = index
-        self.mediaObject.enqueue(self.playlist[self.currentIndex])
+        self.media_object.enqueue(self.playlist[self.currentIndex])
         if isPlaying:
-            self.mediaObject.play()
+            self.media_object.play()
 
-    #@todo is this used?
     def connectSlot(self, signal, slot):
         """
-        Connect a slot to a signal on the media object
+        Connect a slot to a signal on the media object.  Used by slidecontroller to connect to audio object.
         """
-        QtCore.QObject.connect(self.mediaObject, signal, slot)
+        QtCore.QObject.connect(self.media_object, signal, slot)
\ No newline at end of file

=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py	2013-03-04 18:01:57 +0000
+++ openlp/core/ui/mainwindow.py	2013-03-05 17:13:27 +0000
@@ -489,7 +489,7 @@
         Settings().remove_obsolete_settings()
         self.serviceNotSaved = False
         self.aboutForm = AboutForm(self)
-        self.media_controller = MediaController(self)
+        self.media_controller = MediaController()
         self.settingsForm = SettingsForm(self)
         self.formattingTagForm = FormattingTagForm(self)
         self.shortcutForm = ShortcutListForm(self)

=== modified file 'openlp/core/ui/media/mediacontroller.py'
--- openlp/core/ui/media/mediacontroller.py	2013-03-04 18:01:57 +0000
+++ openlp/core/ui/media/mediacontroller.py	2013-03-05 17:13:27 +0000
@@ -61,8 +61,8 @@
         """
         Override event to allow hover time to be displayed.
         """
-        timevalue = QtGui.QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), event.x(), self.width())
-        self.setToolTip(u'%s' % datetime.timedelta(seconds=int(timevalue / 1000)))
+        time_value = QtGui.QStyle.sliderValueFromPosition(self.minimum(), self.maximum(), event.x(), self.width())
+        self.setToolTip(u'%s' % datetime.timedelta(seconds=int(time_value / 1000)))
         QtGui.QSlider.mouseMoveEvent(self, event)
 
     def mousePressEvent(self, event):
@@ -93,11 +93,10 @@
     currentMediaPlayer is an array of player instances keyed on ControllerType.
 
     """
-    def __init__(self, parent):
+    def __init__(self):
         """
         Constructor
         """
-        self.mainWindow = parent
         Registry().register(u'media_controller', self)
         Registry().register_function(u'bootstrap_initialise', self.check_available_media_players)
         self.mediaPlayers = {}
@@ -164,9 +163,7 @@
         Check to see if we have any media Player's available.
         """
         log.debug(u'_check_available_media_players')
-        controller_dir = os.path.join(
-            AppLocation.get_directory(AppLocation.AppDir),
-            u'core', u'ui', u'media')
+        controller_dir = os.path.join(AppLocation.get_directory(AppLocation.AppDir), u'core', u'ui', u'media')
         for filename in os.listdir(controller_dir):
             if filename.endswith(u'player.py') and not filename == 'mediaplayer.py':
                 path = os.path.join(controller_dir, filename)
@@ -258,7 +255,7 @@
         ``controller``
             The controller where a player will be placed
         """
-        self.displayControllers[controller.controllerType] = controller
+        self.displayControllers[controller.controller_type] = controller
         self.setup_generic_controls(controller)
 
     def setup_generic_controls(self, controller):
@@ -273,13 +270,13 @@
         controller.mediabar = OpenLPToolbar(controller)
         controller.mediabar.addToolbarAction(u'playbackPlay', text=u'media_playback_play',
             icon=u':/slides/media_playback_start.png',
-            tooltip=translate('OpenLP.SlideController', 'Start playing media.'), triggers=controller.sendToPlugins)
+            tooltip=translate('OpenLP.SlideController', 'Start playing media.'), triggers=controller.send_to_plugins)
         controller.mediabar.addToolbarAction(u'playbackPause', text=u'media_playback_pause',
             icon=u':/slides/media_playback_pause.png',
-            tooltip=translate('OpenLP.SlideController', 'Pause playing media.'), triggers=controller.sendToPlugins)
+            tooltip=translate('OpenLP.SlideController', 'Pause playing media.'), triggers=controller.send_to_plugins)
         controller.mediabar.addToolbarAction(u'playbackStop', text=u'media_playback_stop',
             icon=u':/slides/media_playback_stop.png',
-            tooltip=translate('OpenLP.SlideController', 'Stop playing media.'), triggers=controller.sendToPlugins)
+            tooltip=translate('OpenLP.SlideController', 'Stop playing media.'), triggers=controller.send_to_plugins)
         # Build the seekSlider.
         controller.seekSlider = MediaSlider(QtCore.Qt.Horizontal, self, controller)
         controller.seekSlider.setMaximum(1000)
@@ -301,11 +298,11 @@
         controller.volumeSlider.setGeometry(QtCore.QRect(90, 160, 221, 24))
         controller.volumeSlider.setObjectName(u'volumeSlider')
         controller.mediabar.addToolbarWidget(controller.volumeSlider)
-        controller.controllerLayout.addWidget(controller.mediabar)
+        controller.controller_layout.addWidget(controller.mediabar)
         controller.mediabar.setVisible(False)
         # Signals
-        QtCore.QObject.connect(controller.seekSlider, QtCore.SIGNAL(u'valueChanged(int)'), controller.sendToPlugins)
-        QtCore.QObject.connect(controller.volumeSlider, QtCore.SIGNAL(u'valueChanged(int)'), controller.sendToPlugins)
+        controller.seekSlider.valueChanged.connect(controller.send_to_plugins)
+        controller.volumeSlider.valueChanged.connect(controller.send_to_plugins)
 
     def setup_display(self, display, preview):
         """
@@ -323,7 +320,7 @@
         # update player status
         self._set_active_players()
         display.hasAudio = True
-        if display.isLive and preview:
+        if display.is_live and preview:
             return
         if preview:
             display.hasAudio = False
@@ -344,9 +341,9 @@
         """
         # Generic controls
         controller.mediabar.setVisible(value)
-        if controller.isLive and controller.display:
+        if controller.is_live and controller.display:
             if self.currentMediaPlayer and value:
-                if self.currentMediaPlayer[controller.controllerType] != self.mediaPlayers[u'webkit']:
+                if self.currentMediaPlayer[controller.controller_type] != self.mediaPlayers[u'webkit']:
                     controller.display.setTransparency(False)
 
     def resize(self, display, player):
@@ -388,7 +385,7 @@
         controller.media_info.is_background = videoBehindText
         controller.media_info.file_info = QtCore.QFileInfo(serviceItem.get_frame_path())
         display = self._define_display(controller)
-        if controller.isLive:
+        if controller.is_live:
             isValid = self._check_file_type(controller, display, serviceItem)
             display.override[u'theme'] = u''
             display.override[u'video'] = True
@@ -399,7 +396,7 @@
             else:
                 controller.media_info.start_time = serviceItem.start_time
                 controller.media_info.end_time = serviceItem.end_time
-        elif controller.previewDisplay:
+        elif controller.preview_display:
             isValid = self._check_file_type(controller, display, serviceItem)
         if not isValid:
             # Media could not be loaded correctly
@@ -407,12 +404,12 @@
                 translate('MediaPlugin.MediaItem', 'Unsupported File'))
             return False
         # dont care about actual theme, set a black background
-        if controller.isLive and not controller.media_info.is_background:
+        if controller.is_live and not controller.media_info.is_background:
             display.frame.evaluateJavaScript(u'show_video( "setBackBoard", null, null, null,"visible");')
         # now start playing - Preview is autoplay!
         autoplay = False
         # Preview requested
-        if not controller.isLive:
+        if not controller.is_live:
             autoplay = True
         # Visible or background requested or Service Item wants to autostart
         elif not hidden or controller.media_info.is_background or serviceItem.will_auto_start:
@@ -426,7 +423,7 @@
                     translate('MediaPlugin.MediaItem', 'Unsupported File'))
                 return False
         self.set_controls_visible(controller, True)
-        log.debug(u'use %s controller' % self.currentMediaPlayer[controller.controllerType])
+        log.debug(u'use %s controller' % self.currentMediaPlayer[controller.controller_type])
         return True
 
     def media_length(self, serviceItem):
@@ -443,7 +440,7 @@
         controller.media_info = MediaInfo()
         controller.media_info.volume = 0
         controller.media_info.file_info = QtCore.QFileInfo(serviceItem.get_frame_path())
-        display = controller.previewDisplay
+        display = controller._display
         if not self._check_file_type(controller, display, serviceItem):
             # Media could not be loaded correctly
             critical_error_message_box(translate('MediaPlugin.MediaItem', 'Unsupported File'),
@@ -455,7 +452,7 @@
             return False
         serviceItem.set_media_length(controller.media_info.length)
         self.media_stop(controller)
-        log.debug(u'use %s controller' % self.currentMediaPlayer[controller.controllerType])
+        log.debug(u'use %s controller' % self.currentMediaPlayer[controller.controller_type])
         return True
 
     def _check_file_type(self, controller, display, serviceItem):
@@ -480,12 +477,12 @@
                             player.canBackground:
                         self.resize(display, player)
                         if player.load(display):
-                            self.currentMediaPlayer[controller.controllerType] = player
+                            self.currentMediaPlayer[controller.controller_type] = player
                             controller.media_info.media_type = MediaType.Video
                             return True
                 if suffix in player.audio_extensions_list:
                     if player.load(display):
-                        self.currentMediaPlayer[controller.controllerType] = player
+                        self.currentMediaPlayer[controller.controller_type] = player
                         controller.media_info.media_type = MediaType.Audio
                         return True
         else:
@@ -494,7 +491,7 @@
                 if player.canFolder:
                     self.resize(display, player)
                     if player.load(display):
-                        self.currentMediaPlayer[controller.controllerType] = player
+                        self.currentMediaPlayer[controller.controller_type] = player
                         controller.media_info.media_type = MediaType.Video
                         return True
         # no valid player found
@@ -521,7 +518,7 @@
         controller.seekSlider.blockSignals(True)
         controller.volumeSlider.blockSignals(True)
         display = self._define_display(controller)
-        if not self.currentMediaPlayer[controller.controllerType].play(display):
+        if not self.currentMediaPlayer[controller.controller_type].play(display):
             controller.seekSlider.blockSignals(False)
             controller.volumeSlider.blockSignals(False)
             return False
@@ -531,7 +528,7 @@
             self.media_volume(controller, controller.media_info.volume)
         if status:
             display.frame.evaluateJavaScript(u'show_blank("desktop");')
-            self.currentMediaPlayer[controller.controllerType].set_visible(display, True)
+            self.currentMediaPlayer[controller.controller_type].set_visible(display, True)
             # Flash needs to be played and will not AutoPlay
             if controller.media_info.is_flash:
                 controller.mediabar.actions[u'playbackPlay'].setVisible(True)
@@ -540,9 +537,9 @@
                 controller.mediabar.actions[u'playbackPlay'].setVisible(False)
                 controller.mediabar.actions[u'playbackPause'].setVisible(True)
             controller.mediabar.actions[u'playbackStop'].setVisible(True)
-            if controller.isLive:
-                if controller.hideMenu.defaultAction().isChecked():
-                    controller.hideMenu.defaultAction().trigger()
+            if controller.is_live:
+                if controller.hide_menu.defaultAction().isChecked():
+                    controller.hide_menu.defaultAction().trigger()
         # Start Timer for ui updates
         if not self.timer.isActive():
             self.timer.start()
@@ -569,7 +566,7 @@
         """
         log.debug(u'media_pause')
         display = self._define_display(controller)
-        self.currentMediaPlayer[controller.controllerType].pause(display)
+        self.currentMediaPlayer[controller.controller_type].pause(display)
         controller.mediabar.actions[u'playbackPlay'].setVisible(True)
         controller.mediabar.actions[u'playbackStop'].setVisible(True)
         controller.mediabar.actions[u'playbackPause'].setVisible(False)
@@ -593,10 +590,10 @@
         """
         log.debug(u'media_stop')
         display = self._define_display(controller)
-        if controller.controllerType in self.currentMediaPlayer:
+        if controller.controller_type in self.currentMediaPlayer:
             display.frame.evaluateJavaScript(u'show_blank("black");')
-            self.currentMediaPlayer[controller.controllerType].stop(display)
-            self.currentMediaPlayer[controller.controllerType].set_visible(display, False)
+            self.currentMediaPlayer[controller.controller_type].stop(display)
+            self.currentMediaPlayer[controller.controller_type].set_visible(display, False)
             controller.seekSlider.setSliderPosition(0)
             controller.mediabar.actions[u'playbackPlay'].setVisible(True)
             controller.mediabar.actions[u'playbackStop'].setVisible(False)
@@ -622,7 +619,7 @@
         """
         log.debug(u'media_volume %d' % volume)
         display = self._define_display(controller)
-        self.currentMediaPlayer[controller.controllerType].volume(display, volume)
+        self.currentMediaPlayer[controller.controller_type].volume(display, volume)
         controller.volumeSlider.setValue(volume)
 
     def media_seek_msg(self, msg):
@@ -648,7 +645,7 @@
         """
         log.debug(u'media_seek')
         display = self._define_display(controller)
-        self.currentMediaPlayer[controller.controllerType].seek(display, seekVal)
+        self.currentMediaPlayer[controller.controller_type].seek(display, seekVal)
 
     def media_reset(self, controller):
         """
@@ -657,12 +654,12 @@
         log.debug(u'media_reset')
         self.set_controls_visible(controller, False)
         display = self._define_display(controller)
-        if controller.controllerType in self.currentMediaPlayer:
+        if controller.controller_type in self.currentMediaPlayer:
             display.override = {}
-            self.currentMediaPlayer[controller.controllerType].reset(display)
-            self.currentMediaPlayer[controller.controllerType].set_visible(display, False)
+            self.currentMediaPlayer[controller.controller_type].reset(display)
+            self.currentMediaPlayer[controller.controller_type].set_visible(display, False)
             display.frame.evaluateJavaScript(u'show_video( "setBackBoard", null, null, null,"hidden");')
-            del self.currentMediaPlayer[controller.controllerType]
+            del self.currentMediaPlayer[controller.controller_type]
 
     def media_hide(self, msg):
         """
@@ -671,15 +668,14 @@
         ``msg``
             First element is the boolean for Live indication
         """
-        isLive = msg[1]
-        if not isLive:
+        is_live = msg[1]
+        if not is_live:
             return
-        controller = self.mainWindow.liveController
-        display = self._define_display(controller)
-        if controller.controllerType in self.currentMediaPlayer and \
-            self.currentMediaPlayer[controller.controllerType].state == MediaState.Playing:
-            self.currentMediaPlayer[controller.controllerType].pause(display)
-            self.currentMediaPlayer[controller.controllerType].set_visible(display, False)
+        display = self._define_display(self.live_controller)
+        if self.live_controller.controller_type in self.currentMediaPlayer and \
+            self.currentMediaPlayer[self.live_controller.controller_type].state == MediaState.Playing:
+            self.currentMediaPlayer[self.live_controller.controller_type].pause(display)
+            self.currentMediaPlayer[self.live_controller.controller_type].set_visible(display, False)
 
     def media_blank(self, msg):
         """
@@ -689,16 +685,15 @@
             First element is the boolean for Live indication
             Second element is the hide mode
         """
-        isLive = msg[1]
+        is_live = msg[1]
         hide_mode = msg[2]
-        if not isLive:
+        if not is_live:
             return
         Registry().execute(u'live_display_hide', hide_mode)
-        controller = self.mainWindow.liveController
-        display = self._define_display(controller)
-        if self.currentMediaPlayer[controller.controllerType].state == MediaState.Playing:
-            self.currentMediaPlayer[controller.controllerType].pause(display)
-            self.currentMediaPlayer[controller.controllerType].set_visible(display, False)
+        display = self._define_display(self.live_controller)
+        if self.currentMediaPlayer[self.live_controller.controller_type].state == MediaState.Playing:
+            self.currentMediaPlayer[self.live_controller.controller_type].pause(display)
+            self.currentMediaPlayer[self.live_controller.controller_type].set_visible(display, False)
 
     def media_unblank(self, msg):
         """
@@ -709,15 +704,14 @@
             Second element is the boolean for Live indication
         """
         Registry().execute(u'live_display_show')
-        isLive = msg[1]
-        if not isLive:
+        is_live = msg[1]
+        if not is_live:
             return
-        controller = self.mainWindow.liveController
-        display = self._define_display(controller)
-        if controller.controllerType in self.currentMediaPlayer and \
-                self.currentMediaPlayer[controller.controllerType].state != MediaState.Playing:
-            if self.currentMediaPlayer[controller.controllerType].play(display):
-                self.currentMediaPlayer[controller.controllerType].set_visible(display, True)
+        display = self._define_display(self.live_controller)
+        if self.live_controller.controller_type in self.currentMediaPlayer and \
+                self.currentMediaPlayer[self.live_controller.controller_type].state != MediaState.Playing:
+            if self.currentMediaPlayer[self.live_controller.controller_type].play(display):
+                self.currentMediaPlayer[self.live_controller.controller_type].set_visible(display, True)
                 # Start Timer for ui updates
                 if not self.timer.isActive():
                     self.timer.start()
@@ -737,9 +731,9 @@
         ``controller``
             Controller to be used
         """
-        if controller.isLive:
+        if controller.is_live:
             return controller.display
-        return controller.previewDisplay
+        return controller.preview_display
 
     def _get_service_manager(self):
         """
@@ -750,3 +744,13 @@
         return self._service_manager
 
     service_manager = property(_get_service_manager)
+
+    def _get_live_controller(self):
+        """
+        Adds the live controller to the class dynamically
+        """
+        if not hasattr(self, u'_live_controller'):
+            self._live_controller = Registry().get(u'live_controller')
+        return self._live_controller
+
+    live_controller = property(_get_live_controller)

=== modified file 'openlp/core/ui/media/vlcplayer.py'
--- openlp/core/ui/media/vlcplayer.py	2013-02-20 09:03:53 +0000
+++ openlp/core/ui/media/vlcplayer.py	2013-03-05 17:13:27 +0000
@@ -122,7 +122,7 @@
         command_line_options = u'--no-video-title-show'
         if not display.hasAudio:
             command_line_options += u' --no-audio --no-video-title-show'
-        if Settings().value(u'advanced/hide mouse') and display.controller.isLive:
+        if Settings().value(u'advanced/hide mouse') and display.controller.is_live:
             command_line_options += u' --mouse-hide-timeout=0'
         display.vlcInstance = vlc.Instance(command_line_options)
         # creating an empty vlc media player

=== modified file 'openlp/core/ui/media/webkitplayer.py'
--- openlp/core/ui/media/webkitplayer.py	2013-02-05 08:05:28 +0000
+++ openlp/core/ui/media/webkitplayer.py	2013-03-05 17:13:27 +0000
@@ -307,8 +307,8 @@
         """
         Set up the player
         """
-        display.webView.resize(display.size())
-        display.webView.raise_()
+        display.web_view.resize(display.size())
+        display.web_view.raise_()
         self.hasOwnWidget = False
 
     def check_available(self):
@@ -333,7 +333,7 @@
             loop = u'true'
         else:
             loop = u'false'
-        display.webView.setVisible(True)
+        display.web_view.setVisible(True)
         if controller.media_info.file_info.suffix() == u'swf':
             controller.media_info.is_flash = True
             js = u'show_flash("load","%s");' % (path.replace(u'\\', u'\\\\'))
@@ -346,14 +346,14 @@
         """
         Resize the player
         """
-        display.webView.resize(display.size())
+        display.web_view.resize(display.size())
 
     def play(self, display):
         """
         Play a video
         """
         controller = display.controller
-        display.webLoaded = True
+        display.web_loaded = True
         length = 0
         start_time = 0
         if self.state != MediaState.Paused and controller.media_info.start_time > 0:
@@ -368,7 +368,7 @@
         # TODO add playing check and get the correct media length
         controller.media_info.length = length
         self.state = MediaState.Playing
-        display.webView.raise_()
+        display.web_view.raise_()
         return True
 
     def pause(self, display):

=== modified file 'openlp/core/ui/servicemanager.py'
--- openlp/core/ui/servicemanager.py	2013-02-21 21:26:24 +0000
+++ openlp/core/ui/servicemanager.py	2013-03-05 17:13:27 +0000
@@ -1413,7 +1413,7 @@
             critical_error_message_box(translate('OpenLP.ServiceManager', 'Missing Display Handler'),
                 translate('OpenLP.ServiceManager',
                     'Your item cannot be displayed as the plugin required to display it is missing or inactive'))
-            self.application.set_normal_cursor()
+        self.application.set_normal_cursor()
 
     def remote_edit(self):
         """

=== modified file 'openlp/core/ui/slidecontroller.py'
--- openlp/core/ui/slidecontroller.py	2013-03-04 18:01:57 +0000
+++ openlp/core/ui/slidecontroller.py	2013-03-05 17:13:27 +0000
@@ -57,16 +57,16 @@
     """
     Controller is a general display controller widget.
     """
-    def __init__(self, parent, isLive=False):
+    def __init__(self, parent, is_live=False):
         """
         Set up the general Controller.
         """
         QtGui.QWidget.__init__(self, parent)
-        self.isLive = isLive
+        self.is_live = is_live
         self.display = None
-        self.controllerType = DisplayControllerType.Plugin
+        self.controller_type = DisplayControllerType.Plugin
 
-    def sendToPlugins(self, *args):
+    def send_to_plugins(self, *args):
         """
         This is the generic function to send signal for control widgets,
         created from within other plugins
@@ -82,175 +82,175 @@
     SlideController is the slide controller widget. This widget is what the
     user uses to control the displaying of verses/slides/etc on the screen.
     """
-    def __init__(self, parent, isLive=False):
+    def __init__(self, parent, is_live=False):
         """
         Set up the Slide Controller.
         """
-        DisplayController.__init__(self, parent, isLive)
+        DisplayController.__init__(self, parent, is_live)
         Registry().register_function(u'bootstrap_post_set_up', self.screenSizeChanged)
         self.screens = ScreenList()
         try:
             self.ratio = float(self.screens.current[u'size'].width()) / float(self.screens.current[u'size'].height())
         except ZeroDivisionError:
             self.ratio = 1
-        self.loopList = [
-            u'playSlidesMenu',
-            u'loopSeparator',
-            u'delaySpinBox'
-        ]
-        self.audioList = [
-            u'audioPauseItem',
-            u'audioTimeLabel'
-        ]
-        self.wideMenu = [
-            u'blankScreenButton',
-            u'themeScreenButton',
-            u'desktopScreenButton'
-        ]
-        self.hideMenuList = [
-            u'hideMenu'
+        self.loop_list = [
+            u'play_slides_menu',
+            u'loop_separator',
+            u'delay_spin_box'
+        ]
+        self.audio_list = [
+            u'audio_pause_item',
+            u'audio_time_label'
+        ]
+        self.wide_menu = [
+            u'blank_screen_button',
+            u'theme_screen_button',
+            u'desktop_screen_button'
+        ]
+        self.narrow_menu = [
+            u'hide_menu'
         ]
         self.timer_id = 0
-        self.songEdit = False
-        self.selectedRow = 0
-        self.serviceItem = None
+        self.song_edit = False
+        self.selected_row = 0
+        self.service_item = None
         self.slide_limits = None
         self.update_slide_limits()
         self.panel = QtGui.QWidget(parent.controlSplitter)
         self.slideList = {}
         # Layout for holding panel
-        self.panelLayout = QtGui.QVBoxLayout(self.panel)
-        self.panelLayout.setSpacing(0)
-        self.panelLayout.setMargin(0)
+        self.panel_layout = QtGui.QVBoxLayout(self.panel)
+        self.panel_layout.setSpacing(0)
+        self.panel_layout.setMargin(0)
         # Type label for the top of the slide controller
-        self.typeLabel = QtGui.QLabel(self.panel)
-        if self.isLive:
+        self.type_label = QtGui.QLabel(self.panel)
+        if self.is_live:
             Registry().register(u'live_controller', self)
-            self.typeLabel.setText(UiStrings().Live)
+            self.type_label.setText(UiStrings().Live)
             self.split = 1
-            self.typePrefix = u'live'
+            self.type_prefix = u'live'
             self.keypress_queue = deque()
             self.keypress_loop = False
             self.category = UiStrings().LiveToolbar
             ActionList.get_instance().add_category(unicode(self.category), CategoryOrder.standard_toolbar)
         else:
             Registry().register(u'preview_controller', self)
-            self.typeLabel.setText(UiStrings().Preview)
+            self.type_label.setText(UiStrings().Preview)
             self.split = 0
-            self.typePrefix = u'preview'
+            self.type_prefix = u'preview'
             self.category = None
-        self.typeLabel.setStyleSheet(u'font-weight: bold; font-size: 12pt;')
-        self.typeLabel.setAlignment(QtCore.Qt.AlignCenter)
-        self.panelLayout.addWidget(self.typeLabel)
+        self.type_label.setStyleSheet(u'font-weight: bold; font-size: 12pt;')
+        self.type_label.setAlignment(QtCore.Qt.AlignCenter)
+        self.panel_layout.addWidget(self.type_label)
         # Splitter
         self.splitter = QtGui.QSplitter(self.panel)
         self.splitter.setOrientation(QtCore.Qt.Vertical)
-        self.panelLayout.addWidget(self.splitter)
+        self.panel_layout.addWidget(self.splitter)
         # Actual controller section
         self.controller = QtGui.QWidget(self.splitter)
         self.controller.setGeometry(QtCore.QRect(0, 0, 100, 536))
         self.controller.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Maximum))
-        self.controllerLayout = QtGui.QVBoxLayout(self.controller)
-        self.controllerLayout.setSpacing(0)
-        self.controllerLayout.setMargin(0)
+        self.controller_layout = QtGui.QVBoxLayout(self.controller)
+        self.controller_layout.setSpacing(0)
+        self.controller_layout.setMargin(0)
         # Controller list view
-        self.previewListWidget = QtGui.QTableWidget(self.controller)
-        self.previewListWidget.setColumnCount(1)
-        self.previewListWidget.horizontalHeader().setVisible(False)
-        self.previewListWidget.setColumnWidth(0, self.controller.width())
-        self.previewListWidget.isLive = self.isLive
-        self.previewListWidget.setObjectName(u'previewListWidget')
-        self.previewListWidget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
-        self.previewListWidget.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
-        self.previewListWidget.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
-        self.previewListWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
-        self.previewListWidget.setAlternatingRowColors(True)
-        self.controllerLayout.addWidget(self.previewListWidget)
+        self.preview_list_widget = QtGui.QTableWidget(self.controller)
+        self.preview_list_widget.setColumnCount(1)
+        self.preview_list_widget.horizontalHeader().setVisible(False)
+        self.preview_list_widget.setColumnWidth(0, self.controller.width())
+        self.preview_list_widget.is_live = self.is_live
+        self.preview_list_widget.setObjectName(u'preview_list_widget')
+        self.preview_list_widget.setSelectionBehavior(QtGui.QAbstractItemView.SelectRows)
+        self.preview_list_widget.setSelectionMode(QtGui.QAbstractItemView.SingleSelection)
+        self.preview_list_widget.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
+        self.preview_list_widget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
+        self.preview_list_widget.setAlternatingRowColors(True)
+        self.controller_layout.addWidget(self.preview_list_widget)
         # Build the full toolbar
         self.toolbar = OpenLPToolbar(self)
-        sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
-        sizeToolbarPolicy.setHorizontalStretch(0)
-        sizeToolbarPolicy.setVerticalStretch(0)
-        sizeToolbarPolicy.setHeightForWidth(self.toolbar.sizePolicy().hasHeightForWidth())
-        self.toolbar.setSizePolicy(sizeToolbarPolicy)
-        self.previousItem = create_action(self, u'previousItem_' + self.typePrefix,
+        size_toolbar_policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
+        size_toolbar_policy.setHorizontalStretch(0)
+        size_toolbar_policy.setVerticalStretch(0)
+        size_toolbar_policy.setHeightForWidth(self.toolbar.sizePolicy().hasHeightForWidth())
+        self.toolbar.setSizePolicy(size_toolbar_policy)
+        self.previous_item = create_action(self, u'previousItem_' + self.type_prefix,
             text=translate('OpenLP.SlideController', 'Previous Slide'), icon=u':/slides/slide_previous.png',
             tooltip=translate('OpenLP.SlideController', 'Move to previous.'),
             can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
             category=self.category, triggers=self.on_slide_selected_previous)
-        self.toolbar.addAction(self.previousItem)
-        self.nextItem = create_action(self, u'nextItem_' + self.typePrefix,
+        self.toolbar.addAction(self.previous_item)
+        self.nextItem = create_action(self, u'nextItem_' + self.type_prefix,
             text=translate('OpenLP.SlideController', 'Next Slide'), icon=u':/slides/slide_next.png',
             tooltip=translate('OpenLP.SlideController', 'Move to next.'),
             can_shortcuts=True, context=QtCore.Qt.WidgetWithChildrenShortcut,
             category=self.category, triggers=self.on_slide_selected_next_action)
         self.toolbar.addAction(self.nextItem)
         self.toolbar.addSeparator()
-        self.controllerType = DisplayControllerType.Preview
-        if self.isLive:
-            self.controllerType = DisplayControllerType.Live
+        self.controller_type = DisplayControllerType.Preview
+        if self.is_live:
+            self.controller_type = DisplayControllerType.Live
             # Hide Menu
-            self.hideMenu = QtGui.QToolButton(self.toolbar)
-            self.hideMenu.setObjectName(u'hideMenu')
-            self.hideMenu.setText(translate('OpenLP.SlideController', 'Hide'))
-            self.hideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup)
-            self.hideMenu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Hide'), self.toolbar))
-            self.toolbar.addToolbarWidget(self.hideMenu)
-            self.blankScreen = create_action(self, u'blankScreen',
+            self.hide_menu = QtGui.QToolButton(self.toolbar)
+            self.hide_menu.setObjectName(u'hide_menu')
+            self.hide_menu.setText(translate('OpenLP.SlideController', 'Hide'))
+            self.hide_menu.setPopupMode(QtGui.QToolButton.MenuButtonPopup)
+            self.hide_menu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Hide'), self.toolbar))
+            self.toolbar.addToolbarWidget(self.hide_menu)
+            self.blank_screen = create_action(self, u'blankScreen',
                 text=translate('OpenLP.SlideController', 'Blank Screen'), icon=u':/slides/slide_blank.png',
                 checked=False, can_shortcuts=True, category=self.category, triggers=self.onBlankDisplay)
-            self.themeScreen = create_action(self, u'themeScreen',
+            self.theme_screen = create_action(self, u'themeScreen',
                 text=translate('OpenLP.SlideController', 'Blank to Theme'), icon=u':/slides/slide_theme.png',
                 checked=False, can_shortcuts=True, category=self.category,
                 triggers=self.onThemeDisplay)
-            self.desktopScreen = create_action(self, u'desktopScreen',
+            self.desktop_screen = create_action(self, u'desktopScreen',
                 text=translate('OpenLP.SlideController', 'Show Desktop'), icon=u':/slides/slide_desktop.png',
                 checked=False, can_shortcuts=True, category=self.category,
                 triggers=self.onHideDisplay)
-            self.hideMenu.setDefaultAction(self.blankScreen)
-            self.hideMenu.menu().addAction(self.blankScreen)
-            self.hideMenu.menu().addAction(self.themeScreen)
-            self.hideMenu.menu().addAction(self.desktopScreen)
+            self.hide_menu.setDefaultAction(self.blank_screen)
+            self.hide_menu.menu().addAction(self.blank_screen)
+            self.hide_menu.menu().addAction(self.theme_screen)
+            self.hide_menu.menu().addAction(self.desktop_screen)
             # Wide menu of display control buttons.
-            self.blankScreenButton = QtGui.QToolButton(self.toolbar)
-            self.blankScreenButton.setObjectName(u'blankScreenButton')
-            self.toolbar.addToolbarWidget(self.blankScreenButton)
-            self.blankScreenButton.setDefaultAction(self.blankScreen)
-            self.themeScreenButton = QtGui.QToolButton(self.toolbar)
-            self.themeScreenButton.setObjectName(u'themeScreenButton')
-            self.toolbar.addToolbarWidget(self.themeScreenButton)
-            self.themeScreenButton.setDefaultAction(self.themeScreen)
-            self.desktopScreenButton = QtGui.QToolButton(self.toolbar)
-            self.desktopScreenButton.setObjectName(u'desktopScreenButton')
-            self.toolbar.addToolbarWidget(self.desktopScreenButton)
-            self.desktopScreenButton.setDefaultAction(self.desktopScreen)
-            self.toolbar.addToolbarAction(u'loopSeparator', separator=True)
+            self.blank_screen_button = QtGui.QToolButton(self.toolbar)
+            self.blank_screen_button.setObjectName(u'blank_screen_button')
+            self.toolbar.addToolbarWidget(self.blank_screen_button)
+            self.blank_screen_button.setDefaultAction(self.blank_screen)
+            self.theme_screen_button = QtGui.QToolButton(self.toolbar)
+            self.theme_screen_button.setObjectName(u'theme_screen_button')
+            self.toolbar.addToolbarWidget(self.theme_screen_button)
+            self.theme_screen_button.setDefaultAction(self.theme_screen)
+            self.desktop_screen_button = QtGui.QToolButton(self.toolbar)
+            self.desktop_screen_button.setObjectName(u'desktop_screen_button')
+            self.toolbar.addToolbarWidget(self.desktop_screen_button)
+            self.desktop_screen_button.setDefaultAction(self.desktop_screen)
+            self.toolbar.addToolbarAction(u'loop_separator', separator=True)
             # Play Slides Menu
-            self.playSlidesMenu = QtGui.QToolButton(self.toolbar)
-            self.playSlidesMenu.setObjectName(u'playSlidesMenu')
-            self.playSlidesMenu.setText(translate('OpenLP.SlideController', 'Play Slides'))
-            self.playSlidesMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup)
-            self.playSlidesMenu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Play Slides'), self.toolbar))
-            self.toolbar.addToolbarWidget(self.playSlidesMenu)
-            self.playSlidesLoop = create_action(self, u'playSlidesLoop', text=UiStrings().PlaySlidesInLoop,
+            self.play_slides_menu = QtGui.QToolButton(self.toolbar)
+            self.play_slides_menu.setObjectName(u'play_slides_menu')
+            self.play_slides_menu.setText(translate('OpenLP.SlideController', 'Play Slides'))
+            self.play_slides_menu.setPopupMode(QtGui.QToolButton.MenuButtonPopup)
+            self.play_slides_menu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Play Slides'), self.toolbar))
+            self.toolbar.addToolbarWidget(self.play_slides_menu)
+            self.play_slides_loop = create_action(self, u'playSlidesLoop', text=UiStrings().PlaySlidesInLoop,
                 icon=u':/media/media_time.png', checked=False, can_shortcuts=True,
                 category=self.category, triggers=self.onPlaySlidesLoop)
-            self.playSlidesOnce = create_action(self, u'playSlidesOnce', text=UiStrings().PlaySlidesToEnd,
+            self.play_slides_once = create_action(self, u'playSlidesOnce', text=UiStrings().PlaySlidesToEnd,
                 icon=u':/media/media_time.png', checked=False, can_shortcuts=True,
                 category=self.category, triggers=self.onPlaySlidesOnce)
             if Settings().value(self.main_window.advancedSettingsSection + u'/slide limits') == SlideLimits.Wrap:
-                self.playSlidesMenu.setDefaultAction(self.playSlidesLoop)
+                self.play_slides_menu.setDefaultAction(self.play_slides_loop)
             else:
-                self.playSlidesMenu.setDefaultAction(self.playSlidesOnce)
-            self.playSlidesMenu.menu().addAction(self.playSlidesLoop)
-            self.playSlidesMenu.menu().addAction(self.playSlidesOnce)
+                self.play_slides_menu.setDefaultAction(self.play_slides_once)
+            self.play_slides_menu.menu().addAction(self.play_slides_loop)
+            self.play_slides_menu.menu().addAction(self.play_slides_once)
             # Loop Delay Spinbox
-            self.delaySpinBox = QtGui.QSpinBox()
-            self.delaySpinBox.setObjectName(u'delaySpinBox')
-            self.delaySpinBox.setRange(1, 180)
-            self.delaySpinBox.setSuffix(UiStrings().Seconds)
-            self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds.'))
-            self.toolbar.addToolbarWidget(self.delaySpinBox)
+            self.delay_spin_box = QtGui.QSpinBox()
+            self.delay_spin_box.setObjectName(u'delay_spin_box')
+            self.delay_spin_box.setRange(1, 180)
+            self.delay_spin_box.setSuffix(UiStrings().Seconds)
+            self.delay_spin_box.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds.'))
+            self.toolbar.addToolbarWidget(self.delay_spin_box)
         else:
             self.toolbar.addToolbarAction(u'goLive', icon=u':/general/general_live.png',
                 tooltip=translate('OpenLP.SlideController', 'Move to live.'), triggers=self.onGoLive)
@@ -259,27 +259,27 @@
             self.toolbar.addSeparator()
             self.toolbar.addToolbarAction(u'editSong', icon=u':/general/general_edit.png',
                 tooltip=translate('OpenLP.SlideController', 'Edit and reload song preview.'), triggers=self.onEditSong)
-        self.controllerLayout.addWidget(self.toolbar)
+        self.controller_layout.addWidget(self.toolbar)
         # Build the Media Toolbar
         self.media_controller.register_controller(self)
-        if self.isLive:
+        if self.is_live:
             # Build the Song Toolbar
-            self.songMenu = QtGui.QToolButton(self.toolbar)
-            self.songMenu.setObjectName(u'songMenu')
-            self.songMenu.setText(translate('OpenLP.SlideController', 'Go To'))
-            self.songMenu.setPopupMode(QtGui.QToolButton.InstantPopup)
-            self.songMenu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Go To'), self.toolbar))
-            self.toolbar.addToolbarWidget(self.songMenu)
+            self.song_menu = QtGui.QToolButton(self.toolbar)
+            self.song_menu.setObjectName(u'song_menu')
+            self.song_menu.setText(translate('OpenLP.SlideController', 'Go To'))
+            self.song_menu.setPopupMode(QtGui.QToolButton.InstantPopup)
+            self.song_menu.setMenu(QtGui.QMenu(translate('OpenLP.SlideController', 'Go To'), self.toolbar))
+            self.toolbar.addToolbarWidget(self.song_menu)
             # Stuff for items with background audio.
-            self.audioPauseItem = self.toolbar.addToolbarAction(u'audioPauseItem',
+            self.audio_pause_item = self.toolbar.addToolbarAction(u'audioPauseItem',
                 icon=u':/slides/media_playback_pause.png', text=translate('OpenLP.SlideController', 'Pause Audio'),
                 tooltip=translate('OpenLP.SlideController', 'Pause audio.'),
                 checked=False, visible=False, category=self.category, context=QtCore.Qt.WindowShortcut,
                 can_shortcuts=True, triggers=self.onAudioPauseClicked)
             self.audioMenu = QtGui.QMenu(translate('OpenLP.SlideController', 'Background Audio'), self.toolbar)
-            self.audioPauseItem.setMenu(self.audioMenu)
-            self.audioPauseItem.setParent(self.toolbar)
-            self.toolbar.widgetForAction(self.audioPauseItem).setPopupMode(
+            self.audio_pause_item.setMenu(self.audioMenu)
+            self.audio_pause_item.setParent(self.toolbar)
+            self.toolbar.widgetForAction(self.audio_pause_item).setPopupMode(
                 QtGui.QToolButton.MenuButtonPopup)
             self.nextTrackItem = create_action(self, u'nextTrackItem', text=UiStrings().NextTrack,
                 icon=u':/slides/media_playback_next.png',
@@ -287,35 +287,35 @@
                 category=self.category, can_shortcuts=True, triggers=self.onNextTrackClicked)
             self.audioMenu.addAction(self.nextTrackItem)
             self.trackMenu = self.audioMenu.addMenu(translate('OpenLP.SlideController', 'Tracks'))
-            self.audioTimeLabel = QtGui.QLabel(u' 00:00 ', self.toolbar)
-            self.audioTimeLabel.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignHCenter)
-            self.audioTimeLabel.setStyleSheet(AUDIO_TIME_LABEL_STYLESHEET)
-            self.audioTimeLabel.setObjectName(u'audioTimeLabel')
-            self.toolbar.addToolbarWidget(self.audioTimeLabel)
-            self.toolbar.setWidgetVisible(self.audioList, False)
+            self.audio_time_label = QtGui.QLabel(u' 00:00 ', self.toolbar)
+            self.audio_time_label.setAlignment(QtCore.Qt.AlignCenter | QtCore.Qt.AlignHCenter)
+            self.audio_time_label.setStyleSheet(AUDIO_TIME_LABEL_STYLESHEET)
+            self.audio_time_label.setObjectName(u'audio_time_label')
+            self.toolbar.addToolbarWidget(self.audio_time_label)
+            self.toolbar.setWidgetVisible(self.audio_list, False)
             self.toolbar.setWidgetVisible([u'songMenu'], False)
         # Screen preview area
-        self.previewFrame = QtGui.QFrame(self.splitter)
-        self.previewFrame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio))
-        self.previewFrame.setMinimumHeight(100)
-        self.previewFrame.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored,
+        self.preview_frame = QtGui.QFrame(self.splitter)
+        self.preview_frame.setGeometry(QtCore.QRect(0, 0, 300, 300 * self.ratio))
+        self.preview_frame.setMinimumHeight(100)
+        self.preview_frame.setSizePolicy(QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored,
             QtGui.QSizePolicy.Label))
-        self.previewFrame.setFrameShape(QtGui.QFrame.StyledPanel)
-        self.previewFrame.setFrameShadow(QtGui.QFrame.Sunken)
-        self.previewFrame.setObjectName(u'previewFrame')
-        self.grid = QtGui.QGridLayout(self.previewFrame)
+        self.preview_frame.setFrameShape(QtGui.QFrame.StyledPanel)
+        self.preview_frame.setFrameShadow(QtGui.QFrame.Sunken)
+        self.preview_frame.setObjectName(u'preview_frame')
+        self.grid = QtGui.QGridLayout(self.preview_frame)
         self.grid.setMargin(8)
         self.grid.setObjectName(u'grid')
-        self.slideLayout = QtGui.QVBoxLayout()
-        self.slideLayout.setSpacing(0)
-        self.slideLayout.setMargin(0)
-        self.slideLayout.setObjectName(u'SlideLayout')
-        self.previewDisplay = Display(self, self.isLive, self)
-        self.previewDisplay.setGeometry(QtCore.QRect(0, 0, 300, 300))
-        self.previewDisplay.screen = {u'size': self.previewDisplay.geometry()}
-        self.previewDisplay.setup()
-        self.slideLayout.insertWidget(0, self.previewDisplay)
-        self.previewDisplay.hide()
+        self.slide_layout = QtGui.QVBoxLayout()
+        self.slide_layout.setSpacing(0)
+        self.slide_layout.setMargin(0)
+        self.slide_layout.setObjectName(u'SlideLayout')
+        self.preview_display = Display(self, self.is_live, self)
+        self.preview_display.setGeometry(QtCore.QRect(0, 0, 300, 300))
+        self.preview_display.screen = {u'size': self.preview_display.geometry()}
+        self.preview_display.setup()
+        self.slide_layout.insertWidget(0, self.preview_display)
+        self.preview_display.hide()
         # Actual preview screen
         self.slidePreview = QtGui.QLabel(self)
         sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
@@ -328,9 +328,9 @@
         self.slidePreview.setLineWidth(1)
         self.slidePreview.setScaledContents(True)
         self.slidePreview.setObjectName(u'slidePreview')
-        self.slideLayout.insertWidget(0, self.slidePreview)
-        self.grid.addLayout(self.slideLayout, 0, 0, 1, 1)
-        if self.isLive:
+        self.slide_layout.insertWidget(0, self.slidePreview)
+        self.grid.addLayout(self.slide_layout, 0, 0, 1, 1)
+        if self.is_live:
             self.current_shortcut = u''
             self.shortcutTimer = QtCore.QTimer()
             self.shortcutTimer.setObjectName(u'shortcutTimer')
@@ -346,7 +346,7 @@
                 {u'key': u'O', u'configurable': True, u'text': translate('OpenLP.SlideController', 'Go to "Other"')}
             ]
             shortcuts.extend([{u'key': unicode(number)} for number in range(10)])
-            self.previewListWidget.addActions([create_action(self,
+            self.preview_list_widget.addActions([create_action(self,
                 u'shortcutAction_%s' % s[u'key'], text=s.get(u'text'),
                 can_shortcuts=True,
                 context=QtCore.Qt.WidgetWithChildrenShortcut,
@@ -356,28 +356,28 @@
                 self.shortcutTimer, QtCore.SIGNAL(u'timeout()'),
                 self._slideShortcutActivated)
         # Signals
-        QtCore.QObject.connect(self.previewListWidget, QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
-        if self.isLive:
+        QtCore.QObject.connect(self.preview_list_widget, QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected)
+        if self.is_live:
             Registry().register_function(u'slidecontroller_live_spin_delay', self.receive_spin_delay)
             Registry().register_function(u'slidecontroller_toggle_display', self.toggle_display)
-            self.toolbar.setWidgetVisible(self.loopList, False)
-            self.toolbar.setWidgetVisible(self.wideMenu, False)
+            self.toolbar.setWidgetVisible(self.loop_list, False)
+            self.toolbar.setWidgetVisible(self.wide_menu, False)
         else:
-            QtCore.QObject.connect(self.previewListWidget,
+            QtCore.QObject.connect(self.preview_list_widget,
                 QtCore.SIGNAL(u'doubleClicked(QModelIndex)'), self.onGoLiveClick)
             self.toolbar.setWidgetVisible([u'editSong'], False)
-        if self.isLive:
+        if self.is_live:
             self.setLiveHotkeys(self)
-            self.__addActionsToWidget(self.previewListWidget)
+            self.__addActionsToWidget(self.preview_list_widget)
         else:
-            self.previewListWidget.addActions([self.nextItem, self.previousItem])
-        Registry().register_function(u'slidecontroller_%s_stop_loop' % self.typePrefix, self.on_stop_loop)
-        Registry().register_function(u'slidecontroller_%s_next' % self.typePrefix, self.on_slide_selected_next)
-        Registry().register_function(u'slidecontroller_%s_previous' % self.typePrefix, self.on_slide_selected_previous)
-        Registry().register_function(u'slidecontroller_%s_change' % self.typePrefix, self.on_slide_change)
-        Registry().register_function(u'slidecontroller_%s_set' % self.typePrefix, self.on_slide_selected_index)
-        Registry().register_function(u'slidecontroller_%s_blank' % self.typePrefix, self.on_slide_blank)
-        Registry().register_function(u'slidecontroller_%s_unblank' % self.typePrefix, self.on_slide_unblank)
+            self.preview_list_widget.addActions([self.nextItem, self.previous_item])
+        Registry().register_function(u'slidecontroller_%s_stop_loop' % self.type_prefix, self.on_stop_loop)
+        Registry().register_function(u'slidecontroller_%s_next' % self.type_prefix, self.on_slide_selected_next)
+        Registry().register_function(u'slidecontroller_%s_previous' % self.type_prefix, self.on_slide_selected_previous)
+        Registry().register_function(u'slidecontroller_%s_change' % self.type_prefix, self.on_slide_change)
+        Registry().register_function(u'slidecontroller_%s_set' % self.type_prefix, self.on_slide_selected_index)
+        Registry().register_function(u'slidecontroller_%s_blank' % self.type_prefix, self.on_slide_blank)
+        Registry().register_function(u'slidecontroller_%s_unblank' % self.type_prefix, self.on_slide_unblank)
         Registry().register_function(u'slidecontroller_update_slide_limits', self.update_slide_limits)
 
     def _slideShortcutActivated(self):
@@ -520,11 +520,11 @@
         # rebuild display as screen size changed
         if self.display:
             self.display.close()
-        self.display = MainDisplay(self, self.isLive, self)
+        self.display = MainDisplay(self, self.is_live, self)
         self.display.setup()
-        if self.isLive:
+        if self.is_live:
             self.__addActionsToWidget(self.display)
-            self.display.audioPlayer.connectSlot(QtCore.SIGNAL(u'tick(qint64)'), self.onAudioTimeRemaining)
+            self.display.audioPlayer.connectSlot(QtCore.SIGNAL(u'tick(qint64)'), self.on_audio_time_remaining)
         # The SlidePreview's ratio.
         try:
             self.ratio = float(self.screens.current[u'size'].width()) / float(self.screens.current[u'size'].height())
@@ -532,12 +532,12 @@
             self.ratio = 1
         self.media_controller.setup_display(self.display, False)
         self.previewSizeChanged()
-        self.previewDisplay.setup()
-        serviceItem = ServiceItem()
-        self.previewDisplay.webView.setHtml(build_html(serviceItem, self.previewDisplay.screen, None, self.isLive,
+        self.preview_display.setup()
+        service_item = ServiceItem()
+        self.preview_display.web_view.setHtml(build_html(service_item, self.preview_display.screen, None, self.is_live,
             plugins=self.plugin_manager.plugins))
-        self.media_controller.setup_display(self.previewDisplay, True)
-        if self.serviceItem:
+        self.media_controller.setup_display(self.preview_display, True)
+        if self.service_item:
             self.refreshServiceItem()
 
     def __addActionsToWidget(self, widget):
@@ -545,7 +545,7 @@
         Add actions to the widget specified by `widget`
         """
         widget.addActions([
-            self.previousItem, self.nextItem,
+            self.previous_item, self.nextItem,
             self.previousService, self.nextService,
             self.escapeItem])
 
@@ -555,49 +555,48 @@
         splitters is moved or when the screen size is changed. Note, that this
         method is (also) called frequently from the mainwindow *paintEvent*.
         """
-        if self.ratio < float(self.previewFrame.width()) / float(self.previewFrame.height()):
+        if self.ratio < float(self.preview_frame.width()) / float(self.preview_frame.height()):
             # We have to take the height as limit.
-            max_height = self.previewFrame.height() - self.grid.margin() * 2
+            max_height = self.preview_frame.height() - self.grid.margin() * 2
             self.slidePreview.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height))
-            self.previewDisplay.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height))
-            self.previewDisplay.screen = {
-                u'size': self.previewDisplay.geometry()}
+            self.preview_display.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height))
+            self.preview_display.screen = {
+                u'size': self.preview_display.geometry()}
         else:
             # We have to take the width as limit.
-            max_width = self.previewFrame.width() - self.grid.margin() * 2
+            max_width = self.preview_frame.width() - self.grid.margin() * 2
             self.slidePreview.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
-            self.previewDisplay.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
-            self.previewDisplay.screen = {
-                u'size': self.previewDisplay.geometry()}
+            self.preview_display.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
+            self.preview_display.screen = {
+                u'size': self.preview_display.geometry()}
         # Make sure that the frames have the correct size.
-        self.previewListWidget.setColumnWidth(0,
-            self.previewListWidget.viewport().size().width())
-        if self.serviceItem:
+        self.preview_list_widget.setColumnWidth(0, self.preview_list_widget.viewport().size().width())
+        if self.service_item:
             # Sort out songs, bibles, etc.
-            if self.serviceItem.is_text():
-                self.previewListWidget.resizeRowsToContents()
+            if self.service_item.is_text():
+                self.preview_list_widget.resizeRowsToContents()
             else:
                 # Sort out image heights.
                 width = self.main_window.controlSplitter.sizes()[self.split]
-                for framenumber in range(len(self.serviceItem.get_frames())):
-                    self.previewListWidget.setRowHeight(framenumber, width / self.ratio)
+                for framenumber in range(len(self.service_item.get_frames())):
+                    self.preview_list_widget.setRowHeight(framenumber, width / self.ratio)
         self.onControllerSizeChanged(self.controller.width(), self.controller.height())
 
     def onControllerSizeChanged(self, width, height):
         """
         Change layout of display control buttons on controller size change
         """
-        if self.isLive:
+        if self.is_live:
             # Space used by the toolbar.
-            used_space = self.toolbar.size().width() + self.hideMenu.size().width()
+            used_space = self.toolbar.size().width() + self.hide_menu.size().width()
             # The + 40 is needed to prevent flickering. This can be considered a "buffer".
-            if width > used_space + 40 and self.hideMenu.isVisible():
-                self.toolbar.setWidgetVisible(self.hideMenuList, False)
-                self.toolbar.setWidgetVisible(self.wideMenu)
+            if width > used_space + 40 and self.hide_menu.isVisible():
+                self.toolbar.setWidgetVisible(self.narrow_menu, False)
+                self.toolbar.setWidgetVisible(self.wide_menu)
             # The - 40 is needed to prevent flickering. This can be considered a "buffer".
-            elif width < used_space - 40 and not self.hideMenu.isVisible():
-                self.toolbar.setWidgetVisible(self.wideMenu, False)
-                self.toolbar.setWidgetVisible(self.hideMenuList)
+            elif width < used_space - 40 and not self.hide_menu.isVisible():
+                self.toolbar.setWidgetVisible(self.wide_menu, False)
+                self.toolbar.setWidgetVisible(self.narrow_menu)
 
     def onSongBarHandler(self):
         """
@@ -610,9 +609,9 @@
 
     def receive_spin_delay(self, value):
         """
-        Adjusts the value of the ``delaySpinBox`` to the given one.
+        Adjusts the value of the ``delay_spin_box`` to the given one.
         """
-        self.delaySpinBox.setValue(int(value))
+        self.delay_spin_box.setValue(int(value))
 
     def update_slide_limits(self):
         """
@@ -625,7 +624,7 @@
         Allows the toolbars to be reconfigured based on Controller Type
         and ServiceItem Type
         """
-        if self.isLive:
+        if self.is_live:
             self.enableLiveToolBar(item)
         else:
             self.enablePreviewToolBar(item)
@@ -638,22 +637,22 @@
         # See bug #791050
         self.toolbar.hide()
         self.mediabar.hide()
-        self.songMenu.hide()
-        self.toolbar.setWidgetVisible(self.loopList, False)
+        self.song_menu.hide()
+        self.toolbar.setWidgetVisible(self.loop_list, False)
         self.toolbar.setWidgetVisible([u'songMenu'], False)
         # Reset the button
-        self.playSlidesOnce.setChecked(False)
-        self.playSlidesOnce.setIcon(build_icon(u':/media/media_time.png'))
-        self.playSlidesLoop.setChecked(False)
-        self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png'))
+        self.play_slides_once.setChecked(False)
+        self.play_slides_once.setIcon(build_icon(u':/media/media_time.png'))
+        self.play_slides_loop.setChecked(False)
+        self.play_slides_loop.setIcon(build_icon(u':/media/media_time.png'))
         if item.is_text():
             if Settings().value(self.main_window.songsSettingsSection + u'/display songbar') and self.slideList:
                 self.toolbar.setWidgetVisible([u'songMenu'], True)
         if item.is_capable(ItemCapabilities.CanLoop) and len(item.get_frames()) > 1:
-            self.toolbar.setWidgetVisible(self.loopList)
+            self.toolbar.setWidgetVisible(self.loop_list)
         if item.is_media():
             self.mediabar.show()
-        self.previousItem.setVisible(not item.is_media())
+        self.previous_item.setVisible(not item.is_media())
         self.nextItem.setVisible(not item.is_media())
         # Work-around for OS X, hide and then show the toolbar
         # See bug #791050
@@ -672,7 +671,7 @@
             self.toolbar.setWidgetVisible([u'editSong'])
         elif item.is_media():
             self.mediabar.show()
-        self.previousItem.setVisible(not item.is_media())
+        self.previous_item.setVisible(not item.is_media())
         self.nextItem.setVisible(not item.is_media())
         # Work-around for OS X, hide and then show the toolbar
         # See bug #791050
@@ -682,31 +681,31 @@
         """
         Method to update the service item if the screen has changed
         """
-        log.debug(u'refreshServiceItem live = %s' % self.isLive)
-        if self.serviceItem.is_text() or self.serviceItem.is_image():
-            item = self.serviceItem
+        log.debug(u'refreshServiceItem live = %s' % self.is_live)
+        if self.service_item.is_text() or self.service_item.is_image():
+            item = self.service_item
             item.render()
-            self._processItem(item, self.selectedRow)
+            self._processItem(item, self.selected_row)
 
     def add_service_item(self, item):
         """
         Method to install the service item into the controller
         Called by plugins
         """
-        log.debug(u'add_service_item live = %s' % self.isLive)
+        log.debug(u'add_service_item live = %s' % self.is_live)
         item.render()
         slideno = 0
-        if self.songEdit:
-            slideno = self.selectedRow
-        self.songEdit = False
+        if self.song_edit:
+            slideno = self.selected_row
+        self.song_edit = False
         self._processItem(item, slideno)
 
     def replaceServiceManagerItem(self, item):
         """
         Replacement item following a remote edit
         """
-        if item == self.serviceItem:
-            self._processItem(item, self.previewListWidget.currentRow())
+        if item == self.service_item:
+            self._processItem(item, self.preview_list_widget.currentRow())
 
     def addServiceManagerItem(self, item, slideno):
         """
@@ -714,74 +713,74 @@
         request the correct toolbar for the plugin.
         Called by ServiceManager
         """
-        log.debug(u'addServiceManagerItem live = %s' % self.isLive)
+        log.debug(u'addServiceManagerItem live = %s' % self.is_live)
         # If no valid slide number is specified we take the first one, but we
         # remember the initial value to see if we should reload the song or not
         slidenum = slideno
         if slideno == -1:
             slidenum = 0
         # If service item is the same as the current one, only change slide
-        if slideno >= 0 and item == self.serviceItem:
+        if slideno >= 0 and item == self.service_item:
             self.__checkUpdateSelectedSlide(slidenum)
             self.slideSelected()
         else:
             self._processItem(item, slidenum)
-            if self.isLive and item.auto_play_slides_loop and item.timed_slide_interval > 0:
-                self.playSlidesLoop.setChecked(item.auto_play_slides_loop)
-                self.delaySpinBox.setValue(int(item.timed_slide_interval))
+            if self.is_live and item.auto_play_slides_loop and item.timed_slide_interval > 0:
+                self.play_slides_loop.setChecked(item.auto_play_slides_loop)
+                self.delay_spin_box.setValue(int(item.timed_slide_interval))
                 self.onPlaySlidesLoop()
-            elif self.isLive and item.auto_play_slides_once and item.timed_slide_interval > 0:
-                self.playSlidesOnce.setChecked(item.auto_play_slides_once)
-                self.delaySpinBox.setValue(int(item.timed_slide_interval))
+            elif self.is_live and item.auto_play_slides_once and item.timed_slide_interval > 0:
+                self.play_slides_once.setChecked(item.auto_play_slides_once)
+                self.delay_spin_box.setValue(int(item.timed_slide_interval))
                 self.onPlaySlidesOnce()
 
-    def _processItem(self, serviceItem, slideno):
+    def _processItem(self, service_item, slideno):
         """
         Loads a ServiceItem into the system from ServiceManager
         Display the slide number passed
         """
-        log.debug(u'processManagerItem live = %s' % self.isLive)
+        log.debug(u'processManagerItem live = %s' % self.is_live)
         self.on_stop_loop()
-        old_item = self.serviceItem
+        old_item = self.service_item
         # take a copy not a link to the servicemanager copy.
-        self.serviceItem = copy.copy(serviceItem)
-        if old_item and self.isLive and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
+        self.service_item = copy.copy(service_item)
+        if old_item and self.is_live and old_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
             self._resetBlank()
-        Registry().execute(u'%s_start' % serviceItem.name.lower(), [serviceItem, self.isLive, self.hideMode(), slideno])
+        Registry().execute(u'%s_start' % service_item.name.lower(), [service_item, self.is_live, self.hide_mode(), slideno])
         self.slideList = {}
         width = self.main_window.controlSplitter.sizes()[self.split]
-        self.previewListWidget.clear()
-        self.previewListWidget.setRowCount(0)
-        self.previewListWidget.setColumnWidth(0, width)
-        if self.isLive:
-            self.songMenu.menu().clear()
+        self.preview_list_widget.clear()
+        self.preview_list_widget.setRowCount(0)
+        self.preview_list_widget.setColumnWidth(0, width)
+        if self.is_live:
+            self.song_menu.menu().clear()
             self.display.audioPlayer.reset()
             self.setAudioItemsVisibility(False)
-            self.audioPauseItem.setChecked(False)
+            self.audio_pause_item.setChecked(False)
             # If the current item has background audio
-            if self.serviceItem.is_capable(ItemCapabilities.HasBackgroundAudio):
+            if self.service_item.is_capable(ItemCapabilities.HasBackgroundAudio):
                 log.debug(u'Starting to play...')
-                self.display.audioPlayer.addToPlaylist(self.serviceItem.background_audio)
+                self.display.audioPlayer.add_to_playlist(self.service_item.background_audio)
                 self.trackMenu.clear()
-                for counter in range(len(self.serviceItem.background_audio)):
-                    action = self.trackMenu.addAction(os.path.basename(self.serviceItem.background_audio[counter]))
+                for counter in range(len(self.service_item.background_audio)):
+                    action = self.trackMenu.addAction(os.path.basename(self.service_item.background_audio[counter]))
                     action.setData(counter)
                     QtCore.QObject.connect(action, QtCore.SIGNAL(u'triggered(bool)'), self.onTrackTriggered)
                 self.display.audioPlayer.repeat = Settings().value(
                     self.main_window.generalSettingsSection + u'/audio repeat list')
                 if Settings().value(self.main_window.generalSettingsSection + u'/audio start paused'):
-                    self.audioPauseItem.setChecked(True)
+                    self.audio_pause_item.setChecked(True)
                     self.display.audioPlayer.pause()
                 else:
                     self.display.audioPlayer.play()
                 self.setAudioItemsVisibility(True)
         row = 0
         text = []
-        for framenumber, frame in enumerate(self.serviceItem.get_frames()):
-            self.previewListWidget.setRowCount(self.previewListWidget.rowCount() + 1)
+        for framenumber, frame in enumerate(self.service_item.get_frames()):
+            self.preview_list_widget.setRowCount(self.preview_list_widget.rowCount() + 1)
             item = QtGui.QTableWidgetItem()
             slideHeight = 0
-            if self.serviceItem.is_text():
+            if self.service_item.is_text():
                 if frame[u'verseTag']:
                     # These tags are already translated.
                     verse_def = frame[u'verseTag']
@@ -790,9 +789,8 @@
                     row = two_line_def
                     if verse_def not in self.slideList:
                         self.slideList[verse_def] = framenumber
-                        if self.isLive:
-                            self.songMenu.menu().addAction(verse_def,
-                                self.onSongBarHandler)
+                        if self.is_live:
+                            self.song_menu.menu().addAction(verse_def, self.onSongBarHandler)
                 else:
                     row += 1
                     self.slideList[unicode(row)] = row - 1
@@ -800,61 +798,61 @@
             else:
                 label = QtGui.QLabel()
                 label.setMargin(4)
-                if serviceItem.is_media():
+                if service_item.is_media():
                     label.setAlignment(QtCore.Qt.AlignHCenter | QtCore.Qt.AlignVCenter)
                 else:
                     label.setScaledContents(True)
-                if self.serviceItem.is_command():
+                if self.service_item.is_command():
                     label.setPixmap(QtGui.QPixmap(frame[u'image']))
                 else:
                     # If current slide set background to image
                     if framenumber == slideno:
-                        self.serviceItem.bg_image_bytes = self.image_manager.get_image_bytes(frame[u'path'],
+                        self.service_item.bg_image_bytes = self.image_manager.get_image_bytes(frame[u'path'],
                             ImageSource.ImagePlugin)
                     image = self.image_manager.get_image(frame[u'path'], ImageSource.ImagePlugin)
                     label.setPixmap(QtGui.QPixmap.fromImage(image))
-                self.previewListWidget.setCellWidget(framenumber, 0, label)
+                self.preview_list_widget.setCellWidget(framenumber, 0, label)
                 slideHeight = width * (1 / self.ratio)
                 row += 1
                 self.slideList[unicode(row)] = row - 1
             text.append(unicode(row))
-            self.previewListWidget.setItem(framenumber, 0, item)
+            self.preview_list_widget.setItem(framenumber, 0, item)
             if slideHeight:
-                self.previewListWidget.setRowHeight(framenumber, slideHeight)
-        self.previewListWidget.setVerticalHeaderLabels(text)
-        if self.serviceItem.is_text():
-            self.previewListWidget.resizeRowsToContents()
-        self.previewListWidget.setColumnWidth(0,
-            self.previewListWidget.viewport().size().width())
+                self.preview_list_widget.setRowHeight(framenumber, slideHeight)
+        self.preview_list_widget.setVerticalHeaderLabels(text)
+        if self.service_item.is_text():
+            self.preview_list_widget.resizeRowsToContents()
+        self.preview_list_widget.setColumnWidth(0,
+            self.preview_list_widget.viewport().size().width())
         self.__updatePreviewSelection(slideno)
-        self.enableToolBar(serviceItem)
+        self.enableToolBar(service_item)
         # Pass to display for viewing.
         # Postpone image build, we need to do this later to avoid the theme
         # flashing on the screen
-        if not self.serviceItem.is_image():
-            self.display.buildHtml(self.serviceItem)
-        if serviceItem.is_media():
-            self.onMediaStart(serviceItem)
+        if not self.service_item.is_image():
+            self.display.build_html(self.service_item)
+        if service_item.is_media():
+            self.onMediaStart(service_item)
         self.slideSelected(True)
-        self.previewListWidget.setFocus()
+        self.preview_list_widget.setFocus()
         if old_item:
             # Close the old item after the new one is opened
             # This avoids the service theme/desktop flashing on screen
             # However opening a new item of the same type will automatically
             # close the previous, so make sure we don't close the new one.
-            if old_item.is_command() and not serviceItem.is_command():
-                Registry().execute(u'%s_stop' % old_item.name.lower(), [old_item, self.isLive])
-            if old_item.is_media() and not serviceItem.is_media():
+            if old_item.is_command() and not service_item.is_command():
+                Registry().execute(u'%s_stop' % old_item.name.lower(), [old_item, self.is_live])
+            if old_item.is_media() and not service_item.is_media():
                 self.onMediaClose()
-        Registry().execute(u'slidecontroller_%s_started' % self.typePrefix, [serviceItem])
+        Registry().execute(u'slidecontroller_%s_started' % self.type_prefix, [service_item])
 
     def __updatePreviewSelection(self, slideno):
         """
         Utility method to update the selected slide in the list.
         """
-        if slideno > self.previewListWidget.rowCount():
-            self.previewListWidget.selectRow(
-                self.previewListWidget.rowCount() - 1)
+        if slideno > self.preview_list_widget.rowCount():
+            self.preview_list_widget.selectRow(
+                self.preview_list_widget.rowCount() - 1)
         else:
             self.__checkUpdateSelectedSlide(slideno)
 
@@ -864,10 +862,10 @@
         Go to the requested slide
         """
         index = int(message[0])
-        if not self.serviceItem:
+        if not self.service_item:
             return
-        if self.serviceItem.is_command():
-            Registry().execute(u'%s_slide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive, index])
+        if self.service_item.is_command():
+            Registry().execute(u'%s_slide' % self.service_item.name.lower(), [self.service_item, self.is_live, index])
             self.updatePreview()
         else:
             self.__checkUpdateSelectedSlide(index)
@@ -877,7 +875,7 @@
         """
         Allow the main display to blank the main display at startup time
         """
-        log.debug(u'mainDisplaySetBackground live = %s' % self.isLive)
+        log.debug(u'mainDisplaySetBackground live = %s' % self.is_live)
         display_type = Settings().value(self.main_window.generalSettingsSection + u'/screen blank')
         if self.screens.which_screen(self.window()) != self.screens.which_screen(self.display):
             # Order done to handle initial conversion
@@ -909,12 +907,12 @@
         Handle the blank screen button actions
         """
         if checked is None:
-            checked = self.blankScreen.isChecked()
+            checked = self.blank_screen.isChecked()
         log.debug(u'onBlankDisplay %s' % checked)
-        self.hideMenu.setDefaultAction(self.blankScreen)
-        self.blankScreen.setChecked(checked)
-        self.themeScreen.setChecked(False)
-        self.desktopScreen.setChecked(False)
+        self.hide_menu.setDefaultAction(self.blank_screen)
+        self.blank_screen.setChecked(checked)
+        self.theme_screen.setChecked(False)
+        self.desktop_screen.setChecked(False)
         if checked:
             Settings().setValue(self.main_window.generalSettingsSection + u'/screen blank', u'blanked')
         else:
@@ -928,12 +926,12 @@
         Handle the Theme screen button
         """
         if checked is None:
-            checked = self.themeScreen.isChecked()
+            checked = self.theme_screen.isChecked()
         log.debug(u'onThemeDisplay %s' % checked)
-        self.hideMenu.setDefaultAction(self.themeScreen)
-        self.blankScreen.setChecked(False)
-        self.themeScreen.setChecked(checked)
-        self.desktopScreen.setChecked(False)
+        self.hide_menu.setDefaultAction(self.theme_screen)
+        self.blank_screen.setChecked(False)
+        self.theme_screen.setChecked(checked)
+        self.desktop_screen.setChecked(False)
         if checked:
             Settings().setValue(self.main_window.generalSettingsSection + u'/screen blank', u'themed')
         else:
@@ -947,12 +945,12 @@
         Handle the Hide screen button
         """
         if checked is None:
-            checked = self.desktopScreen.isChecked()
+            checked = self.desktop_screen.isChecked()
         log.debug(u'onHideDisplay %s' % checked)
-        self.hideMenu.setDefaultAction(self.desktopScreen)
-        self.blankScreen.setChecked(False)
-        self.themeScreen.setChecked(False)
-        self.desktopScreen.setChecked(checked)
+        self.hide_menu.setDefaultAction(self.desktop_screen)
+        self.blank_screen.setChecked(False)
+        self.theme_screen.setChecked(False)
+        self.desktop_screen.setChecked(checked)
         if checked:
             Settings().setValue(self.main_window.generalSettingsSection + u'/screen blank', u'hidden')
         else:
@@ -965,18 +963,18 @@
         """
         Blank/Hide the display screen within a plugin if required.
         """
-        hide_mode = self.hideMode()
+        hide_mode = self.hide_mode()
         log.debug(u'blankPlugin %s ', hide_mode)
-        if self.serviceItem is not None:
+        if self.service_item is not None:
             if hide_mode:
-                if not self.serviceItem.is_command():
+                if not self.service_item.is_command():
                     Registry().execute(u'live_display_hide', hide_mode)
-                Registry().execute(u'%s_blank' % self.serviceItem.name.lower(),
-                    [self.serviceItem, self.isLive, hide_mode])
+                Registry().execute(u'%s_blank' % self.service_item.name.lower(),
+                    [self.service_item, self.is_live, hide_mode])
             else:
-                if not self.serviceItem.is_command():
+                if not self.service_item.is_command():
                     Registry().execute(u'live_display_show')
-                Registry().execute(u'%s_unblank' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
+                Registry().execute(u'%s_unblank' % self.service_item.name.lower(), [self.service_item, self.is_live])
         else:
             if hide_mode:
                 Registry().execute(u'live_display_hide', hide_mode)
@@ -988,14 +986,14 @@
         Tell the plugin to hide the display screen.
         """
         log.debug(u'hidePlugin %s ', hide)
-        if self.serviceItem is not None:
+        if self.service_item is not None:
             if hide:
                 Registry().execute(u'live_display_hide', HideMode.Screen)
-                Registry().execute(u'%s_hide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
+                Registry().execute(u'%s_hide' % self.service_item.name.lower(), [self.service_item, self.is_live])
             else:
-                if not self.serviceItem.is_command():
+                if not self.service_item.is_command():
                     Registry().execute(u'live_display_show')
-                Registry().execute(u'%s_unblank' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
+                Registry().execute(u'%s_unblank' % self.service_item.name.lower(), [self.service_item, self.is_live])
         else:
             if hide:
                 Registry().execute(u'live_display_hide', HideMode.Screen)
@@ -1013,28 +1011,28 @@
         Generate the preview when you click on a slide.
         if this is the Live Controller also display on the screen
         """
-        row = self.previewListWidget.currentRow()
-        self.selectedRow = 0
-        if -1 < row < self.previewListWidget.rowCount():
-            if self.serviceItem.is_command():
-                if self.isLive and not start:
-                    Registry().execute(u'%s_slide' % self.serviceItem.name.lower(),
-                        [self.serviceItem, self.isLive, row])
+        row = self.preview_list_widget.currentRow()
+        self.selected_row = 0
+        if -1 < row < self.preview_list_widget.rowCount():
+            if self.service_item.is_command():
+                if self.is_live and not start:
+                    Registry().execute(u'%s_slide' % self.service_item.name.lower(),
+                        [self.service_item, self.is_live, row])
             else:
-                to_display = self.serviceItem.get_rendered_frame(row)
-                if self.serviceItem.is_text():
+                to_display = self.service_item.get_rendered_frame(row)
+                if self.service_item.is_text():
                     self.display.text(to_display)
                 else:
                     if start:
-                        self.display.buildHtml(self.serviceItem, to_display)
+                        self.display.build_html(self.service_item, to_display)
                     else:
                         self.display.image(to_display)
                     # reset the store used to display first image
-                    self.serviceItem.bg_image_bytes = None
+                    self.service_item.bg_image_bytes = None
             self.updatePreview()
-            self.selectedRow = row
+            self.selected_row = row
             self.__checkUpdateSelectedSlide(row)
-        Registry().execute(u'slidecontroller_%s_changed' % self.typePrefix, row)
+        Registry().execute(u'slidecontroller_%s_changed' % self.type_prefix, row)
         self.display.setFocus()
 
     def on_slide_change(self, row):
@@ -1043,7 +1041,7 @@
         """
         self.__checkUpdateSelectedSlide(row)
         self.updatePreview()
-        Registry().execute(u'slidecontroller_%s_changed' % self.typePrefix, row)
+        Registry().execute(u'slidecontroller_%s_changed' % self.type_prefix, row)
 
     def updatePreview(self):
         """
@@ -1051,8 +1049,8 @@
         using *Blank to Theme*.
         """
         log.debug(u'updatePreview %s ' % self.screens.current[u'primary'])
-        if not self.screens.current[u'primary'] and self.serviceItem and \
-                self.serviceItem.is_capable(ItemCapabilities.ProvidesOwnDisplay):
+        if not self.screens.current[u'primary'] and self.service_item and \
+                self.service_item.is_capable(ItemCapabilities.ProvidesOwnDisplay):
             # Grab now, but try again in a couple of seconds if slide change
             # is slow
             QtCore.QTimer.singleShot(0.5, self.grabMainDisplay)
@@ -1080,26 +1078,26 @@
         """
         Go to the next slide.
         """
-        if not self.serviceItem:
+        if not self.service_item:
             return
-        Registry().execute(u'%s_next' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
-        if self.serviceItem.is_command() and self.isLive:
+        Registry().execute(u'%s_next' % self.service_item.name.lower(), [self.service_item, self.is_live])
+        if self.service_item.is_command() and self.is_live:
             self.updatePreview()
         else:
-            row = self.previewListWidget.currentRow() + 1
-            if row == self.previewListWidget.rowCount():
+            row = self.preview_list_widget.currentRow() + 1
+            if row == self.preview_list_widget.rowCount():
                 if wrap is None:
                     if self.slide_limits == SlideLimits.Wrap:
                         row = 0
-                    elif self.isLive and self.slide_limits == SlideLimits.Next:
+                    elif self.is_live and self.slide_limits == SlideLimits.Next:
                         self.serviceNext()
                         return
                     else:
-                        row = self.previewListWidget.rowCount() - 1
+                        row = self.preview_list_widget.rowCount() - 1
                 elif wrap:
                     row = 0
                 else:
-                    row = self.previewListWidget.rowCount() - 1
+                    row = self.preview_list_widget.rowCount() - 1
             self.__checkUpdateSelectedSlide(row)
             self.slideSelected()
 
@@ -1107,17 +1105,17 @@
         """
         Go to the previous slide.
         """
-        if not self.serviceItem:
+        if not self.service_item:
             return
-        Registry().execute(u'%s_previous' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
-        if self.serviceItem.is_command() and self.isLive:
+        Registry().execute(u'%s_previous' % self.service_item.name.lower(), [self.service_item, self.is_live])
+        if self.service_item.is_command() and self.is_live:
             self.updatePreview()
         else:
-            row = self.previewListWidget.currentRow() - 1
+            row = self.preview_list_widget.currentRow() - 1
             if row == -1:
                 if self.slide_limits == SlideLimits.Wrap:
-                    row = self.previewListWidget.rowCount() - 1
-                elif self.isLive and self.slide_limits == SlideLimits.Next:
+                    row = self.preview_list_widget.rowCount() - 1
+                elif self.is_live and self.slide_limits == SlideLimits.Next:
                     self.keypress_queue.append(ServiceItemAction.PreviousLastSlide)
                     self._process_queue()
                     return
@@ -1130,16 +1128,16 @@
         """
         Check if this slide has been updated
         """
-        if row + 1 < self.previewListWidget.rowCount():
-            self.previewListWidget.scrollToItem(self.previewListWidget.item(row + 1, 0))
-        self.previewListWidget.selectRow(row)
+        if row + 1 < self.preview_list_widget.rowCount():
+            self.preview_list_widget.scrollToItem(self.preview_list_widget.item(row + 1, 0))
+        self.preview_list_widget.selectRow(row)
 
     def onToggleLoop(self):
         """
         Toggles the loop state.
         """
-        hide_mode = self.hideMode()
-        if hide_mode is None and (self.playSlidesLoop.isChecked() or self.playSlidesOnce.isChecked()):
+        hide_mode = self.hide_mode()
+        if hide_mode is None and (self.play_slides_loop.isChecked() or self.play_slides_once.isChecked()):
             self.onStartLoop()
         else:
             self.on_stop_loop()
@@ -1148,8 +1146,8 @@
         """
         Start the timer loop running and store the timer id
         """
-        if self.previewListWidget.rowCount() > 1:
-            self.timer_id = self.startTimer(int(self.delaySpinBox.value()) * 1000)
+        if self.preview_list_widget.rowCount() > 1:
+            self.timer_id = self.startTimer(int(self.delay_spin_box.value()) * 1000)
 
     def on_stop_loop(self):
         """
@@ -1164,20 +1162,20 @@
         Start or stop 'Play Slides in Loop'
         """
         if checked is None:
-            checked = self.playSlidesLoop.isChecked()
+            checked = self.play_slides_loop.isChecked()
         else:
-            self.playSlidesLoop.setChecked(checked)
+            self.play_slides_loop.setChecked(checked)
         log.debug(u'onPlaySlidesLoop %s' % checked)
         if checked:
-            self.playSlidesLoop.setIcon(build_icon(u':/media/media_stop.png'))
-            self.playSlidesLoop.setText(UiStrings().StopPlaySlidesInLoop)
-            self.playSlidesOnce.setIcon(build_icon(u':/media/media_time.png'))
-            self.playSlidesOnce.setText(UiStrings().PlaySlidesToEnd)
-            self.playSlidesMenu.setDefaultAction(self.playSlidesLoop)
-            self.playSlidesOnce.setChecked(False)
+            self.play_slides_loop.setIcon(build_icon(u':/media/media_stop.png'))
+            self.play_slides_loop.setText(UiStrings().StopPlaySlidesInLoop)
+            self.play_slides_once.setIcon(build_icon(u':/media/media_time.png'))
+            self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)
+            self.play_slides_menu.setDefaultAction(self.play_slides_loop)
+            self.play_slides_once.setChecked(False)
         else:
-            self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png'))
-            self.playSlidesLoop.setText(UiStrings().PlaySlidesInLoop)
+            self.play_slides_loop.setIcon(build_icon(u':/media/media_time.png'))
+            self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
         self.onToggleLoop()
 
     def onPlaySlidesOnce(self, checked=None):
@@ -1185,33 +1183,33 @@
         Start or stop 'Play Slides to End'
         """
         if checked is None:
-            checked = self.playSlidesOnce.isChecked()
+            checked = self.play_slides_once.isChecked()
         else:
-            self.playSlidesOnce.setChecked(checked)
+            self.play_slides_once.setChecked(checked)
         log.debug(u'onPlaySlidesOnce %s' % checked)
         if checked:
-            self.playSlidesOnce.setIcon(build_icon(u':/media/media_stop.png'))
-            self.playSlidesOnce.setText(UiStrings().StopPlaySlidesToEnd)
-            self.playSlidesLoop.setIcon(build_icon(u':/media/media_time.png'))
-            self.playSlidesLoop.setText(UiStrings().PlaySlidesInLoop)
-            self.playSlidesMenu.setDefaultAction(self.playSlidesOnce)
-            self.playSlidesLoop.setChecked(False)
+            self.play_slides_once.setIcon(build_icon(u':/media/media_stop.png'))
+            self.play_slides_once.setText(UiStrings().StopPlaySlidesToEnd)
+            self.play_slides_loop.setIcon(build_icon(u':/media/media_time.png'))
+            self.play_slides_loop.setText(UiStrings().PlaySlidesInLoop)
+            self.play_slides_menu.setDefaultAction(self.play_slides_once)
+            self.play_slides_loop.setChecked(False)
         else:
-            self.playSlidesOnce.setIcon(build_icon(u':/media/media_time'))
-            self.playSlidesOnce.setText(UiStrings().PlaySlidesToEnd)
+            self.play_slides_once.setIcon(build_icon(u':/media/media_time'))
+            self.play_slides_once.setText(UiStrings().PlaySlidesToEnd)
         self.onToggleLoop()
 
     def setAudioItemsVisibility(self, visible):
         """
         Set the visibility of the audio stuff
         """
-        self.toolbar.setWidgetVisible(self.audioList, visible)
+        self.toolbar.setWidgetVisible(self.audio_list, visible)
 
     def onAudioPauseClicked(self, checked):
         """
         Pause the audio player
         """
-        if not self.audioPauseItem.isVisible():
+        if not self.audio_pause_item.isVisible():
             return
         if checked:
             self.display.audioPlayer.pause()
@@ -1223,14 +1221,14 @@
         If the timer event is for this window select next slide
         """
         if event.timerId() == self.timer_id:
-            self.on_slide_selected_next(self.playSlidesLoop.isChecked())
+            self.on_slide_selected_next(self.play_slides_loop.isChecked())
 
     def onEditSong(self):
         """
         From the preview display requires the service Item to be editied
         """
-        self.songEdit = True
-        new_item = Registry().get(self.serviceItem.name).onRemoteEdit(self.serviceItem.edit_id, True)
+        self.song_edit = True
+        new_item = Registry().get(self.service_item.name).onRemoteEdit(self.service_item.edit_id, True)
         if new_item:
             self.add_service_item(new_item)
 
@@ -1238,8 +1236,8 @@
         """
         From the preview display request the Item to be added to service
         """
-        if self.serviceItem:
-            self.service_manager.add_service_item(self.serviceItem)
+        if self.service_item:
+            self.service_manager.add_service_item(self.service_item)
 
     def onGoLiveClick(self):
         """
@@ -1248,9 +1246,9 @@
         if Settings().value(u'advanced/double click live'):
             # Live and Preview have issues if we have video or presentations
             # playing in both at the same time.
-            if self.serviceItem.is_command():
-                Registry().execute(u'%s_stop' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive])
-            if self.serviceItem.is_media():
+            if self.service_item.is_command():
+                Registry().execute(u'%s_stop' % self.service_item.name.lower(), [self.service_item, self.is_live])
+            if self.service_item.is_media():
                 self.onMediaClose()
             self.onGoLive()
 
@@ -1258,21 +1256,21 @@
         """
         If preview copy slide item to live controller from Preview Controller
         """
-        row = self.previewListWidget.currentRow()
-        if -1 < row < self.previewListWidget.rowCount():
-            if self.serviceItem.from_service:
-                self.service_manager.preview_live(self.serviceItem.unique_identifier, row)
+        row = self.preview_list_widget.currentRow()
+        if -1 < row < self.preview_list_widget.rowCount():
+            if self.service_item.from_service:
+                self.service_manager.preview_live(self.service_item.unique_identifier, row)
             else:
-                self.live_controller.addServiceManagerItem(self.serviceItem, row)
+                self.live_controller.addServiceManagerItem(self.service_item, row)
 
     def onMediaStart(self, item):
         """
         Respond to the arrival of a media service item
         """
         log.debug(u'SlideController onMediaStart')
-        self.media_controller.video(self.controllerType, item, self.hideMode())
-        if not self.isLive:
-            self.previewDisplay.show()
+        self.media_controller.video(self.controller_type, item, self.hide_mode())
+        if not self.is_live:
+            self.preview_display.show()
             self.slidePreview.hide()
 
     def onMediaClose(self):
@@ -1281,7 +1279,7 @@
         """
         log.debug(u'SlideController onMediaClose')
         self.media_controller.media_reset(self)
-        self.previewDisplay.hide()
+        self.preview_display.hide()
         self.slidePreview.show()
 
     def _resetBlank(self):
@@ -1289,7 +1287,7 @@
         Used by command items which provide their own displays to reset the
         screen hide attributes
         """
-        hide_mode = self.hideMode()
+        hide_mode = self.hide_mode()
         if hide_mode == HideMode.Blank:
             self.onBlankDisplay(True)
         elif hide_mode == HideMode.Theme:
@@ -1299,17 +1297,17 @@
         else:
             self.hidePlugin(False)
 
-    def hideMode(self):
+    def hide_mode(self):
         """
         Determine what the hide mode should be according to the blank button
         """
-        if not self.isLive:
+        if not self.is_live:
             return None
-        elif self.blankScreen.isChecked():
+        elif self.blank_screen.isChecked():
             return HideMode.Blank
-        elif self.themeScreen.isChecked():
+        elif self.theme_screen.isChecked():
             return HideMode.Theme
-        elif self.desktopScreen.isChecked():
+        elif self.desktop_screen.isChecked():
             return HideMode.Screen
         else:
             return None
@@ -1320,21 +1318,21 @@
         """
         self.display.audioPlayer.next()
 
-    def onAudioTimeRemaining(self, time):
+    def on_audio_time_remaining(self, time):
         """
         Update how much time is remaining
         """
         seconds = self.display.audioPlayer.mediaObject.remainingTime() // 1000
         minutes = seconds // 60
         seconds %= 60
-        self.audioTimeLabel.setText(u' %02d:%02d ' % (minutes, seconds))
+        self.audio_time_label.setText(u' %02d:%02d ' % (minutes, seconds))
 
     def onTrackTriggered(self):
         """
         Start playing a track
         """
         action = self.sender()
-        self.display.audioPlayer.goTo(action.data())
+        self.display.audioPlayer.go_to(action.data())
 
     def _get_plugin_manager(self):
         """

=== modified file 'openlp/core/ui/thememanager.py'
--- openlp/core/ui/thememanager.py	2013-03-04 19:35:33 +0000
+++ openlp/core/ui/thememanager.py	2013-03-05 17:13:27 +0000
@@ -253,8 +253,8 @@
                     self.cloneThemeData(old_theme_data, new_theme_name)
                     self.delete_theme(old_theme_name)
                     for plugin in self.plugin_manager.plugins:
-                        if plugin.usesTheme(old_theme_name):
-                            plugin.renameTheme(old_theme_name, new_theme_name)
+                        if plugin.uses_theme(old_theme_name):
+                            plugin.rename_theme(old_theme_name, new_theme_name)
                     self.renderer.update_theme(new_theme_name, old_theme_name)
                     self.load_themes()
 
@@ -747,7 +747,7 @@
             # check for use in the system else where.
             if testPlugin:
                 for plugin in self.plugin_manager.plugins:
-                    if plugin.usesTheme(theme):
+                    if plugin.uses_theme(theme):
                         critical_error_message_box(translate('OpenLP.ThemeManager', 'Validation Error'),
                             translate('OpenLP.ThemeManager', 'Theme %s is used in the %s plugin.') %
                                 (theme, plugin.name))

=== modified file 'openlp/plugins/alerts/alertsplugin.py'
--- openlp/plugins/alerts/alertsplugin.py	2013-02-26 17:27:30 +0000
+++ openlp/plugins/alerts/alertsplugin.py	2013-03-05 17:13:27 +0000
@@ -185,7 +185,7 @@
             '<br />The alert plugin controls the displaying of nursery alerts on the display screen.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/bibles/bibleplugin.py'
--- openlp/plugins/bibles/bibleplugin.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/bibles/bibleplugin.py	2013-03-05 17:13:27 +0000
@@ -164,7 +164,7 @@
             'verses from different sources during the service.')
         return about_text
 
-    def usesTheme(self, theme):
+    def uses_theme(self, theme):
         """
         Called to find out if the bible plugin is currently using a theme.
         Returns ``True`` if the theme is being used, otherwise returns
@@ -172,7 +172,7 @@
         """
         return unicode(self.settingsTab.bible_theme) == theme
 
-    def renameTheme(self, oldTheme, newTheme):
+    def rename_theme(self, oldTheme, newTheme):
         """
         Rename the theme the bible plugin is using making the plugin use the
         new name.
@@ -187,7 +187,7 @@
         self.settingsTab.bible_theme = newTheme
         self.settingsTab.save()
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/custom/customplugin.py'
--- openlp/plugins/custom/customplugin.py	2013-01-23 21:05:25 +0000
+++ openlp/plugins/custom/customplugin.py	2013-03-05 17:13:27 +0000
@@ -73,7 +73,7 @@
             'the same way songs are. This plugin provides greater freedom over the songs plugin.')
         return about_text
 
-    def usesTheme(self, theme):
+    def uses_theme(self, theme):
         """
         Called to find out if the custom plugin is currently using a theme.
 
@@ -83,7 +83,7 @@
             return True
         return False
 
-    def renameTheme(self, oldTheme, newTheme):
+    def rename_theme(self, oldTheme, newTheme):
         """
         Renames a theme the custom plugin is using making the plugin use the
         new name.
@@ -94,12 +94,12 @@
         ``newTheme``
             The new name the plugin should now use.
         """
-        customsUsingTheme = self.manager.get_all_objects(CustomSlide, CustomSlide.theme_name == oldTheme)
-        for custom in customsUsingTheme:
+        customs_using_theme = self.manager.get_all_objects(CustomSlide, CustomSlide.theme_name == oldTheme)
+        for custom in customs_using_theme:
             custom.theme_name = newTheme
             self.manager.save_object(custom)
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/custom/forms/editcustomdialog.py'
--- openlp/plugins/custom/forms/editcustomdialog.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/custom/forms/editcustomdialog.py	2013-03-05 17:13:27 +0000
@@ -32,84 +32,86 @@
 from openlp.core.lib import UiStrings, build_icon, translate
 from openlp.core.lib.ui import create_button_box, create_button
 
+
 class Ui_CustomEditDialog(object):
-    def setupUi(self, customEditDialog):
-        customEditDialog.setObjectName(u'customEditDialog')
-        customEditDialog.resize(450, 350)
-        customEditDialog.setWindowIcon(build_icon(u':/icon/openlp-logo-16x16.png'))
-        self.dialogLayout = QtGui.QVBoxLayout(customEditDialog)
-        self.dialogLayout.setObjectName(u'dialog_layout')
-        self.titleLayout = QtGui.QHBoxLayout()
-        self.titleLayout.setObjectName(u'titleLayout')
-        self.titleLabel = QtGui.QLabel(customEditDialog)
-        self.titleLabel.setObjectName(u'titleLabel')
-        self.titleLayout.addWidget(self.titleLabel)
-        self.titleEdit = QtGui.QLineEdit(customEditDialog)
-        self.titleLabel.setBuddy(self.titleEdit)
-        self.titleEdit.setObjectName(u'titleEdit')
-        self.titleLayout.addWidget(self.titleEdit)
-        self.dialogLayout.addLayout(self.titleLayout)
-        self.centralLayout = QtGui.QHBoxLayout()
-        self.centralLayout.setObjectName(u'centralLayout')
-        self.slideListView = QtGui.QListWidget(customEditDialog)
-        self.slideListView.setAlternatingRowColors(True)
-        self.slideListView.setObjectName(u'slideListView')
-        self.centralLayout.addWidget(self.slideListView)
-        self.buttonLayout = QtGui.QVBoxLayout()
-        self.buttonLayout.setObjectName(u'buttonLayout')
-        self.addButton = QtGui.QPushButton(customEditDialog)
-        self.addButton.setObjectName(u'addButton')
-        self.buttonLayout.addWidget(self.addButton)
-        self.editButton = QtGui.QPushButton(customEditDialog)
-        self.editButton.setEnabled(False)
-        self.editButton.setObjectName(u'editButton')
-        self.buttonLayout.addWidget(self.editButton)
-        self.editAllButton = QtGui.QPushButton(customEditDialog)
-        self.editAllButton.setObjectName(u'editAllButton')
-        self.buttonLayout.addWidget(self.editAllButton)
-        self.deleteButton = create_button(customEditDialog, u'deleteButton', role=u'delete',
-            click=customEditDialog.onDeleteButtonClicked)
-        self.deleteButton.setEnabled(False)
-        self.buttonLayout.addWidget(self.deleteButton)
-        self.buttonLayout.addStretch()
-        self.upButton = create_button(customEditDialog, u'upButton', role=u'up', enabled=False,
-            click=customEditDialog.onUpButtonClicked)
-        self.downButton = create_button(customEditDialog, u'downButton', role=u'down', enabled=False,
-            click=customEditDialog.onDownButtonClicked)
-        self.buttonLayout.addWidget(self.upButton)
-        self.buttonLayout.addWidget(self.downButton)
-        self.centralLayout.addLayout(self.buttonLayout)
-        self.dialogLayout.addLayout(self.centralLayout)
-        self.bottomFormLayout = QtGui.QFormLayout()
-        self.bottomFormLayout.setObjectName(u'bottomFormLayout')
-        self.themeLabel = QtGui.QLabel(customEditDialog)
-        self.themeLabel.setObjectName(u'themeLabel')
-        self.themeComboBox = QtGui.QComboBox(customEditDialog)
-        self.themeComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
-        self.themeComboBox.setObjectName(u'themeComboBox')
-        self.themeLabel.setBuddy(self.themeComboBox)
-        self.bottomFormLayout.addRow(self.themeLabel, self.themeComboBox)
-        self.creditLabel = QtGui.QLabel(customEditDialog)
-        self.creditLabel.setObjectName(u'creditLabel')
-        self.creditEdit = QtGui.QLineEdit(customEditDialog)
-        self.creditEdit.setObjectName(u'creditEdit')
-        self.creditLabel.setBuddy(self.creditEdit)
-        self.bottomFormLayout.addRow(self.creditLabel, self.creditEdit)
-        self.dialogLayout.addLayout(self.bottomFormLayout)
-        self.previewButton = QtGui.QPushButton()
-        self.button_box = create_button_box(customEditDialog, u'button_box', [u'cancel', u'save'], [self.previewButton])
-        self.dialogLayout.addWidget(self.button_box)
-        self.retranslateUi(customEditDialog)
+    def setupUi(self, custom_edit_dialog):
+        custom_edit_dialog.setObjectName(u'custom_edit_dialog')
+        custom_edit_dialog.resize(450, 350)
+        custom_edit_dialog.setWindowIcon(build_icon(u':/icon/openlp-logo-16x16.png'))
+        self.dialog_layout = QtGui.QVBoxLayout(custom_edit_dialog)
+        self.dialog_layout.setObjectName(u'dialog_layout')
+        self.title_layout = QtGui.QHBoxLayout()
+        self.title_layout.setObjectName(u'title_layout')
+        self.title_label = QtGui.QLabel(custom_edit_dialog)
+        self.title_label.setObjectName(u'title_label')
+        self.title_layout.addWidget(self.title_label)
+        self.title_edit = QtGui.QLineEdit(custom_edit_dialog)
+        self.title_label.setBuddy(self.title_edit)
+        self.title_edit.setObjectName(u'title_edit')
+        self.title_layout.addWidget(self.title_edit)
+        self.dialog_layout.addLayout(self.title_layout)
+        self.central_layout = QtGui.QHBoxLayout()
+        self.central_layout.setObjectName(u'central_layout')
+        self.slide_list_view = QtGui.QListWidget(custom_edit_dialog)
+        self.slide_list_view.setAlternatingRowColors(True)
+        self.slide_list_view.setObjectName(u'slide_list_view')
+        self.central_layout.addWidget(self.slide_list_view)
+        self.button_layout = QtGui.QVBoxLayout()
+        self.button_layout.setObjectName(u'button_layout')
+        self.add_button = QtGui.QPushButton(custom_edit_dialog)
+        self.add_button.setObjectName(u'add_button')
+        self.button_layout.addWidget(self.add_button)
+        self.edit_button = QtGui.QPushButton(custom_edit_dialog)
+        self.edit_button.setEnabled(False)
+        self.edit_button.setObjectName(u'edit_button')
+        self.button_layout.addWidget(self.edit_button)
+        self.edit_all_button = QtGui.QPushButton(custom_edit_dialog)
+        self.edit_all_button.setObjectName(u'edit_all_button')
+        self.button_layout.addWidget(self.edit_all_button)
+        self.delete_button = create_button(custom_edit_dialog, u'delete_button', role=u'delete',
+            click=custom_edit_dialog.on_delete_button_clicked)
+        self.delete_button.setEnabled(False)
+        self.button_layout.addWidget(self.delete_button)
+        self.button_layout.addStretch()
+        self.up_button = create_button(custom_edit_dialog, u'up_button', role=u'up', enabled=False,
+            click=custom_edit_dialog.on_up_button_clicked)
+        self.down_button = create_button(custom_edit_dialog, u'down_button', role=u'down', enabled=False,
+            click=custom_edit_dialog.on_down_button_clicked)
+        self.button_layout.addWidget(self.up_button)
+        self.button_layout.addWidget(self.down_button)
+        self.central_layout.addLayout(self.button_layout)
+        self.dialog_layout.addLayout(self.central_layout)
+        self.bottom_form_layout = QtGui.QFormLayout()
+        self.bottom_form_layout.setObjectName(u'bottom_form_layout')
+        self.theme_label = QtGui.QLabel(custom_edit_dialog)
+        self.theme_label.setObjectName(u'theme_label')
+        self.theme_combo_box = QtGui.QComboBox(custom_edit_dialog)
+        self.theme_combo_box.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
+        self.theme_combo_box.setObjectName(u'theme_combo_box')
+        self.theme_label.setBuddy(self.theme_combo_box)
+        self.bottom_form_layout.addRow(self.theme_label, self.theme_combo_box)
+        self.credit_label = QtGui.QLabel(custom_edit_dialog)
+        self.credit_label.setObjectName(u'credit_label')
+        self.credit_edit = QtGui.QLineEdit(custom_edit_dialog)
+        self.credit_edit.setObjectName(u'credit_edit')
+        self.credit_label.setBuddy(self.credit_edit)
+        self.bottom_form_layout.addRow(self.credit_label, self.credit_edit)
+        self.dialog_layout.addLayout(self.bottom_form_layout)
+        self.preview_button = QtGui.QPushButton()
+        self.button_box = create_button_box(custom_edit_dialog, u'button_box', [u'cancel', u'save'],
+            [self.preview_button])
+        self.dialog_layout.addWidget(self.button_box)
+        self.retranslateUi(custom_edit_dialog)
 
-    def retranslateUi(self, customEditDialog):
-        customEditDialog.setWindowTitle(translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
-        self.titleLabel.setText(translate('CustomPlugin.EditCustomForm', '&Title:'))
-        self.addButton.setText(UiStrings().Add)
-        self.addButton.setToolTip(translate('CustomPlugin.EditCustomForm', 'Add a new slide at bottom.'))
-        self.editButton.setText(UiStrings().Edit)
-        self.editButton.setToolTip(translate('CustomPlugin.EditCustomForm', 'Edit the selected slide.'))
-        self.editAllButton.setText(translate('CustomPlugin.EditCustomForm', 'Ed&it All'))
-        self.editAllButton.setToolTip(translate('CustomPlugin.EditCustomForm', 'Edit all the slides at once.'))
-        self.themeLabel.setText(translate('CustomPlugin.EditCustomForm', 'The&me:'))
-        self.creditLabel.setText(translate('CustomPlugin.EditCustomForm', '&Credits:'))
-        self.previewButton.setText(UiStrings().SaveAndPreview)
+    def retranslateUi(self, custom_edit_dialog):
+        custom_edit_dialog.setWindowTitle(translate('CustomPlugin.EditCustomForm', 'Edit Custom Slides'))
+        self.title_label.setText(translate('CustomPlugin.EditCustomForm', '&Title:'))
+        self.add_button.setText(UiStrings().Add)
+        self.add_button.setToolTip(translate('CustomPlugin.EditCustomForm', 'Add a new slide at bottom.'))
+        self.edit_button.setText(UiStrings().Edit)
+        self.edit_button.setToolTip(translate('CustomPlugin.EditCustomForm', 'Edit the selected slide.'))
+        self.edit_all_button.setText(translate('CustomPlugin.EditCustomForm', 'Ed&it All'))
+        self.edit_all_button.setToolTip(translate('CustomPlugin.EditCustomForm', 'Edit all the slides at once.'))
+        self.theme_label.setText(translate('CustomPlugin.EditCustomForm', 'The&me:'))
+        self.credit_label.setText(translate('CustomPlugin.EditCustomForm', '&Credits:'))
+        self.preview_button.setText(UiStrings().SaveAndPreview)

=== modified file 'openlp/plugins/custom/forms/editcustomform.py'
--- openlp/plugins/custom/forms/editcustomform.py	2013-02-07 11:33:47 +0000
+++ openlp/plugins/custom/forms/editcustomform.py	2013-03-05 17:13:27 +0000
@@ -29,7 +29,7 @@
 
 import logging
 
-from PyQt4 import QtCore, QtGui
+from PyQt4 import QtGui
 
 from openlp.core.lib import Registry, translate
 from openlp.core.lib.ui import critical_error_message_box, find_and_set_in_combo_box
@@ -56,14 +56,14 @@
         self.mediaitem = mediaitem
         self.setupUi(self)
         # Create other objects and forms.
-        self.editSlideForm = EditCustomSlideForm(self)
+        self.edit_slide_form = EditCustomSlideForm(self)
         # Connecting signals and slots
-        self.previewButton.clicked.connect(self.on_preview_button_clicked)
-        self.addButton.clicked.connect(self.on_add_button_clicked)
-        self.editButton.clicked.connect(self.on_edit_button_clicked)
-        self.editAllButton.clicked.connect(self.on_edit_all_button_clicked)
-        self.slideListView.currentRowChanged.connect(self.on_current_row_changed)
-        self.slideListView.doubleClicked.connect(self.on_edit_button_clicked)
+        self.preview_button.clicked.connect(self.on_preview_button_clicked)
+        self.add_button.clicked.connect(self.on_add_button_clicked)
+        self.edit_button.clicked.connect(self.on_edit_button_clicked)
+        self.edit_all_button.clicked.connect(self.on_edit_all_button_clicked)
+        self.slide_list_view.currentRowChanged.connect(self.on_current_row_changed)
+        self.slide_list_view.doubleClicked.connect(self.on_edit_button_clicked)
         Registry().register_function(u'theme_update_list', self.load_themes)
 
     def load_themes(self, theme_list):
@@ -73,11 +73,11 @@
         ``theme_list``
             The list of themes to load.
         """
-        self.themeComboBox.clear()
-        self.themeComboBox.addItem(u'')
-        self.themeComboBox.addItems(theme_list)
+        self.theme_combo_box.clear()
+        self.theme_combo_box.addItem(u'')
+        self.theme_combo_box.addItems(theme_list)
 
-    def loadCustom(self, id, preview=False):
+    def load_custom(self, id, preview=False):
         """
         Called when editing or creating a new custom.
 
@@ -88,111 +88,111 @@
             States whether the custom is edited while being previewed in the
             preview panel.
         """
-        self.slideListView.clear()
+        self.slide_list_view.clear()
         if id == 0:
-            self.customSlide = CustomSlide()
-            self.titleEdit.setText(u'')
-            self.creditEdit.setText(u'')
-            self.themeComboBox.setCurrentIndex(0)
+            self.custom_slide = CustomSlide()
+            self.title_edit.set_text(u'')
+            self.credit_edit.set_text(u'')
+            self.theme_combo_box.setCurrentIndex(0)
         else:
-            self.customSlide = self.manager.get_object(CustomSlide, id)
-            self.titleEdit.setText(self.customSlide.title)
-            self.creditEdit.setText(self.customSlide.credits)
-            customXML = CustomXMLParser(self.customSlide.text)
-            slideList = customXML.get_verses()
-            for slide in slideList:
-                self.slideListView.addItem(slide[1])
-            theme = self.customSlide.theme_name
-            find_and_set_in_combo_box(self.themeComboBox, theme)
-        self.titleEdit.setFocus()
+            self.custom_slide = self.manager.get_object(CustomSlide, id)
+            self.title_edit.setText(self.custom_slide.title)
+            self.credit_edit.setText(self.custom_slide.credits)
+            custom_XML = CustomXMLParser(self.custom_slide.text)
+            slide_list = custom_XML.get_verses()
+            for slide in slide_list:
+                self.slide_list_view.addItem(slide[1])
+            theme = self.custom_slide.theme_name
+            find_and_set_in_combo_box(self.theme_combo_box, theme)
+        self.title_edit.setFocus()
         # If not preview hide the preview button.
-        self.previewButton.setVisible(preview)
+        self.preview_button.setVisible(preview)
 
     def accept(self):
         """
         Override the QDialog method to check if the custom slide has been saved before closing the dialog.
         """
         log.debug(u'accept')
-        if self.saveCustom():
+        if self.save_custom():
             QtGui.QDialog.accept(self)
 
-    def saveCustom(self):
+    def save_custom(self):
         """
         Saves the custom.
         """
         if not self._validate():
             return False
         sxml = CustomXMLBuilder()
-        for count in range(self.slideListView.count()):
-            sxml.add_verse_to_lyrics(u'custom', unicode(count + 1), self.slideListView.item(count).text())
-        self.customSlide.title = self.titleEdit.text()
-        self.customSlide.text = unicode(sxml.extract_xml(), u'utf-8')
-        self.customSlide.credits = self.creditEdit.text()
-        self.customSlide.theme_name = self.themeComboBox.currentText()
-        success = self.manager.save_object(self.customSlide)
-        self.mediaitem.autoSelectId = self.customSlide.id
+        for count in range(self.slide_list_view.count()):
+            sxml.add_verse_to_lyrics(u'custom', unicode(count + 1), self.slide_list_view.item(count).text())
+        self.custom_slide.title = self.title_edit.text()
+        self.custom_slide.text = unicode(sxml.extract_xml(), u'utf-8')
+        self.custom_slide.credits = self.credit_edit.text()
+        self.custom_slide.theme_name = self.theme_combo_box.currentText()
+        success = self.manager.save_object(self.custom_slide)
+        self.mediaitem.autoSelectId = self.custom_slide.id
         return success
 
-    def onUpButtonClicked(self):
+    def on_up_button_clicked(self):
         """
         Move a slide up in the list when the "Up" button is clicked.
         """
-        selectedRow = self.slideListView.currentRow()
+        selectedRow = self.slide_list_view.currentRow()
         if selectedRow != 0:
-            qw = self.slideListView.takeItem(selectedRow)
-            self.slideListView.insertItem(selectedRow - 1, qw)
-            self.slideListView.setCurrentRow(selectedRow - 1)
+            qw = self.slide_list_view.takeItem(selectedRow)
+            self.slide_list_view.insertItem(selectedRow - 1, qw)
+            self.slide_list_view.setCurrentRow(selectedRow - 1)
 
-    def onDownButtonClicked(self):
+    def on_down_button_clicked(self):
         """
         Move a slide down in the list when the "Down" button is clicked.
         """
-        selectedRow = self.slideListView.currentRow()
+        selectedRow = self.slide_list_view.currentRow()
         # zero base arrays
-        if selectedRow != self.slideListView.count() - 1:
-            qw = self.slideListView.takeItem(selectedRow)
-            self.slideListView.insertItem(selectedRow + 1, qw)
-            self.slideListView.setCurrentRow(selectedRow + 1)
+        if selectedRow != self.slide_list_view.count() - 1:
+            qw = self.slide_list_view.takeItem(selectedRow)
+            self.slide_list_view.insertItem(selectedRow + 1, qw)
+            self.slide_list_view.setCurrentRow(selectedRow + 1)
 
     def on_add_button_clicked(self):
         """
         Add a new blank slide.
         """
-        self.editSlideForm.setText(u'')
-        if self.editSlideForm.exec_():
-            self.slideListView.addItems(self.editSlideForm.getText())
+        self.edit_slide_form.set_text(u'')
+        if self.edit_slide_form.exec_():
+            self.slide_list_view.addItems(self.edit_slide_form.get_text())
 
     def on_edit_button_clicked(self):
         """
         Edit the currently selected slide.
         """
-        self.editSlideForm.setText(self.slideListView.currentItem().text())
-        if self.editSlideForm.exec_():
-            self.updateSlideList(self.editSlideForm.getText())
+        self.edit_slide_form.set_text(self.slide_list_view.currentItem().text())
+        if self.edit_slide_form.exec_():
+            self.update_slide_list(self.edit_slide_form.get_text())
 
     def on_edit_all_button_clicked(self):
         """
         Edits all slides.
         """
         slide_text = u''
-        for row in range(self.slideListView.count()):
-            item = self.slideListView.item(row)
+        for row in range(self.slide_list_view.count()):
+            item = self.slide_list_view.item(row)
             slide_text += item.text()
-            if row != self.slideListView.count() - 1:
+            if row != self.slide_list_view.count() - 1:
                 slide_text += u'\n[===]\n'
-        self.editSlideForm.setText(slide_text)
-        if self.editSlideForm.exec_():
-            self.updateSlideList(self.editSlideForm.getText(), True)
+        self.edit_slide_form.set_text(slide_text)
+        if self.edit_slide_form.exec_():
+            self.update_slide_list(self.edit_slide_form.get_text(), True)
 
     def on_preview_button_clicked(self):
         """
         Save the custom item and preview it.
         """
         log.debug(u'onPreview')
-        if self.saveCustom():
+        if self.save_custom():
             Registry().execute(u'custom_preview')
 
-    def updateSlideList(self, slides, edit_all=False):
+    def update_slide_list(self, slides, edit_all=False):
         """
         Updates the slide list after editing slides.
 
@@ -203,60 +203,59 @@
             Indicates if all slides or only one slide has been edited.
         """
         if edit_all:
-            self.slideListView.clear()
-            self.slideListView.addItems(slides)
+            self.slide_list_view.clear()
+            self.slide_list_view.addItems(slides)
         else:
             old_slides = []
-            old_row = self.slideListView.currentRow()
+            old_row = self.slide_list_view.currentRow()
             # Create a list with all (old/unedited) slides.
-            old_slides = [self.slideListView.item(row).text() for row in
-                range(self.slideListView.count())]
-            self.slideListView.clear()
+            old_slides = [self.slide_list_view.item(row).text() for row in range(self.slide_list_view.count())]
+            self.slide_list_view.clear()
             old_slides.pop(old_row)
             # Insert all slides to make the old_slides list complete.
             for slide in slides:
                 old_slides.insert(old_row, slide)
-            self.slideListView.addItems(old_slides)
-        self.slideListView.repaint()
+            self.slide_list_view.addItems(old_slides)
+        self.slide_list_view.repaint()
 
-    def onDeleteButtonClicked(self):
+    def on_delete_button_clicked(self):
         """
         Removes the current row from the list.
         """
-        self.slideListView.takeItem(self.slideListView.currentRow())
-        self.on_current_row_changed(self.slideListView.currentRow())
+        self.slide_list_view.takeItem(self.slide_list_view.currentRow())
+        self.on_current_row_changed(self.slide_list_view.currentRow())
 
     def on_current_row_changed(self, row):
         """
-        Called when the *slideListView*'s current row has been changed. This
+        Called when the *slide_list_view*'s current row has been changed. This
         enables or disables buttons which require an slide to act on.
 
         ``row``
             The row (int). If there is no current row, the value is -1.
         """
         if row == -1:
-            self.deleteButton.setEnabled(False)
-            self.editButton.setEnabled(False)
-            self.upButton.setEnabled(False)
-            self.downButton.setEnabled(False)
+            self.delete_button.setEnabled(False)
+            self.edit_button.setEnabled(False)
+            self.up_button.setEnabled(False)
+            self.down_button.setEnabled(False)
         else:
-            self.deleteButton.setEnabled(True)
-            self.editButton.setEnabled(True)
+            self.delete_button.setEnabled(True)
+            self.edit_button.setEnabled(True)
             # Decide if the up/down buttons should be enabled or not.
-            self.downButton.setEnabled(self.slideListView.count() - 1 != row)
-            self.upButton.setEnabled(row != 0)
+            self.down_button.setEnabled(self.slide_list_view.count() - 1 != row)
+            self.up_button.setEnabled(row != 0)
 
     def _validate(self):
         """
         Checks whether a custom is valid or not.
         """
         # We must have a title.
-        if not self.titleEdit.displayText():
-            self.titleEdit.setFocus()
+        if not self.title_edit.displayText():
+            self.title_edit.setFocus()
             critical_error_message_box(message=translate('CustomPlugin.EditCustomForm', 'You need to type in a title.'))
             return False
         # We must have at least one slide.
-        if self.slideListView.count() == 0:
+        if self.slide_list_view.count() == 0:
             critical_error_message_box(message=translate('CustomPlugin.EditCustomForm',
                 'You need to add at least one slide'))
             return False

=== modified file 'openlp/plugins/custom/forms/editcustomslidedialog.py'
--- openlp/plugins/custom/forms/editcustomslidedialog.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/custom/forms/editcustomslidedialog.py	2013-03-05 17:13:27 +0000
@@ -33,24 +33,25 @@
 from openlp.core.lib.ui import create_button, create_button_box
 
 class Ui_CustomSlideEditDialog(object):
-    def setupUi(self, customSlideEditDialog):
-        customSlideEditDialog.setObjectName(u'customSlideEditDialog')
-        customSlideEditDialog.resize(350, 300)
-        self.dialogLayout = QtGui.QVBoxLayout(customSlideEditDialog)
-        self.slideTextEdit = SpellTextEdit(self)
-        self.slideTextEdit.setObjectName(u'slideTextEdit')
-        self.dialogLayout.addWidget(self.slideTextEdit)
-        self.splitButton = create_button(customSlideEditDialog, u'splitButton', icon=u':/general/general_add.png')
-        self.insertButton = create_button(customSlideEditDialog, u'insertButton', icon=u':/general/general_add.png')
-        self.button_box = create_button_box(customSlideEditDialog, u'button_box', [u'cancel', u'save'],
-            [self.splitButton, self.insertButton])
-        self.dialogLayout.addWidget(self.button_box)
-        self.retranslateUi(customSlideEditDialog)
+    def setupUi(self, custom_slide_edit_dialog):
+        custom_slide_edit_dialog.setObjectName(u'custom_slide_edit_dialog')
+        custom_slide_edit_dialog.resize(350, 300)
+        self.dialog_layout = QtGui.QVBoxLayout(custom_slide_edit_dialog)
+        self.slide_text_edit = SpellTextEdit(self)
+        self.slide_text_edit.setObjectName(u'slide_text_edit')
+        self.dialog_layout.addWidget(self.slide_text_edit)
+        self.split_button = create_button(custom_slide_edit_dialog, u'splitButton', icon=u':/general/general_add.png')
+        self.insert_button = create_button(custom_slide_edit_dialog, u'insertButton',
+                                           icon=u':/general/general_add.png')
+        self.button_box = create_button_box(custom_slide_edit_dialog, u'button_box', [u'cancel', u'save'],
+            [self.split_button, self.insert_button])
+        self.dialog_layout.addWidget(self.button_box)
+        self.retranslateUi(custom_slide_edit_dialog)
 
-    def retranslateUi(self, customSlideEditDialog):
-        customSlideEditDialog.setWindowTitle(translate('CustomPlugin.EditVerseForm', 'Edit Slide'))
-        self.splitButton.setText(UiStrings().Split)
-        self.splitButton.setToolTip(UiStrings().SplitToolTip)
-        self.insertButton.setText(translate('CustomPlugin.EditCustomForm', 'Insert Slide'))
-        self.insertButton.setToolTip(translate('CustomPlugin.EditCustomForm',
+    def retranslateUi(self, custom_slide_edit_dialog):
+        custom_slide_edit_dialog.setWindowTitle(translate('CustomPlugin.EditVerseForm', 'Edit Slide'))
+        self.split_button.setText(UiStrings().Split)
+        self.split_button.setToolTip(UiStrings().SplitToolTip)
+        self.insert_button.setText(translate('CustomPlugin.EditCustomForm', 'Insert Slide'))
+        self.insert_button.setToolTip(translate('CustomPlugin.EditCustomForm',
             'Split a slide into two by inserting a slide splitter.'))

=== modified file 'openlp/plugins/custom/forms/editcustomslideform.py'
--- openlp/plugins/custom/forms/editcustomslideform.py	2013-02-03 14:40:48 +0000
+++ openlp/plugins/custom/forms/editcustomslideform.py	2013-03-05 17:13:27 +0000
@@ -50,51 +50,49 @@
         super(EditCustomSlideForm, self).__init__(parent)
         self.setupUi(self)
         # Connecting signals and slots
-        QtCore.QObject.connect(self.insertButton, QtCore.SIGNAL(u'clicked()'), self.onInsertButtonClicked)
-        QtCore.QObject.connect(self.splitButton, QtCore.SIGNAL(u'clicked()'), self.onSplitButtonClicked)
+        self.insert_button.clicked.connect(self.on_insert_button_clicked)
+        self.split_button.clicked.connect(self.on_split_button_clicked)
 
-    def setText(self, text):
+    def set_text(self, text):
         """
-        Set the text for slideTextEdit.
+        Set the text for slide_text_edit.
 
         ``text``
             The text (unicode).
         """
-        self.slideTextEdit.clear()
+        self.slide_text_edit.clear()
         if text:
-            self.slideTextEdit.setPlainText(text)
-        self.slideTextEdit.setFocus()
+            self.slide_text_edit.setPlainText(text)
+        self.slide_text_edit.setFocus()
 
-    def getText(self):
+    def get_text(self):
         """
         Returns a list with all slides.
         """
-        return self.slideTextEdit.toPlainText().split(u'\n[===]\n')
+        return self.slide_text_edit.toPlainText().split(u'\n[===]\n')
 
-    def onInsertButtonClicked(self):
+    def on_insert_button_clicked(self):
         """
         Adds a slide split at the cursor.
         """
-        self.insertSingleLineTextAtCursor(u'[===]')
-        self.slideTextEdit.setFocus()
+        self.insert_single_line_text_at_cursor(u'[===]')
+        self.slide_text_edit.setFocus()
 
-    def onSplitButtonClicked(self):
+    def on_split_button_clicked(self):
         """
         Adds an optional split at cursor.
         """
-        self.insertSingleLineTextAtCursor(u'[---]')
-        self.slideTextEdit.setFocus()
+        self.insert_single_line_text_at_cursor(u'[---]')
+        self.slide_text_edit.setFocus()
 
-    def insertSingleLineTextAtCursor(self, text):
+    def insert_single_line_text_at_cursor(self, text):
         """
         Adds ``text`` in a single line at the cursor position.
         """
-        full_text = self.slideTextEdit.toPlainText()
-        position = self.slideTextEdit.textCursor().position()
+        full_text = self.slide_text_edit.toPlainText()
+        position = self.slide_text_edit.textCursor().position()
         if position and full_text[position - 1] != u'\n':
             text = u'\n' + text
         if position == len(full_text) or full_text[position] != u'\n':
             text += u'\n'
-        self.slideTextEdit.insertPlainText(text)
-
-#lint:enable
+        self.slide_text_edit.insertPlainText(text)

=== modified file 'openlp/plugins/custom/lib/customtab.py'
--- openlp/plugins/custom/lib/customtab.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/custom/lib/customtab.py	2013-03-05 17:13:27 +0000
@@ -45,38 +45,36 @@
     def setupUi(self):
         self.setObjectName(u'CustomTab')
         SettingsTab.setupUi(self)
-        self.customModeGroupBox = QtGui.QGroupBox(self.leftColumn)
-        self.customModeGroupBox.setObjectName(u'customModeGroupBox')
-        self.customModeLayout = QtGui.QFormLayout(self.customModeGroupBox)
-        self.customModeLayout.setObjectName(u'customModeLayout')
-        self.displayFooterCheckBox = QtGui.QCheckBox(self.customModeGroupBox)
-        self.displayFooterCheckBox.setObjectName(u'displayFooterCheckBox')
-        self.customModeLayout.addRow(self.displayFooterCheckBox)
-        self.add_from_service_checkbox = QtGui.QCheckBox(self.customModeGroupBox)
+        self.custom_mode_group_box = QtGui.QGroupBox(self.leftColumn)
+        self.custom_mode_group_box.setObjectName(u'custom_mode_group_box')
+        self.custom_mode_layout = QtGui.QFormLayout(self.custom_mode_group_box)
+        self.custom_mode_layout.setObjectName(u'custom_mode_layout')
+        self.display_footer_check_box = QtGui.QCheckBox(self.custom_mode_group_box)
+        self.display_footer_check_box.setObjectName(u'display_footer_check_box')
+        self.custom_mode_layout.addRow(self.display_footer_check_box)
+        self.add_from_service_checkbox = QtGui.QCheckBox(self.custom_mode_group_box)
         self.add_from_service_checkbox.setObjectName(u'add_from_service_checkbox')
-        self.customModeLayout.addRow(self.add_from_service_checkbox)
-        self.leftLayout.addWidget(self.customModeGroupBox)
+        self.custom_mode_layout.addRow(self.add_from_service_checkbox)
+        self.leftLayout.addWidget(self.custom_mode_group_box)
         self.leftLayout.addStretch()
         self.rightLayout.addStretch()
-        QtCore.QObject.connect(self.displayFooterCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
-            self.onDisplayFooterCheckBoxChanged)
-        QtCore.QObject.connect(self.add_from_service_checkbox, QtCore.SIGNAL(u'stateChanged(int)'),
-            self.on_add_from_service_check_box_changed)
+        self.display_footer_check_box.stateChanged.connect(self.on_display_footer_check_box_changed)
+        self.add_from_service_checkbox.stateChanged.connect(self.on_add_from_service_check_box_changed)
 
     def retranslateUi(self):
-        self.customModeGroupBox.setTitle(translate('CustomPlugin.CustomTab', 'Custom Display'))
-        self.displayFooterCheckBox.setText(translate('CustomPlugin.CustomTab', 'Display footer'))
+        self.custom_mode_group_box.setTitle(translate('CustomPlugin.CustomTab', 'Custom Display'))
+        self.display_footer_check_box.setText(translate('CustomPlugin.CustomTab', 'Display footer'))
         self.add_from_service_checkbox.setText(translate('CustomPlugin.CustomTab',
             'Import missing custom slides from service files'))
 
-    def onDisplayFooterCheckBoxChanged(self, check_state):
+    def on_display_footer_check_box_changed(self, check_state):
         """
         Toggle the setting for displaying the footer.
         """
-        self.displayFooter = False
+        self.display_footer = False
         # we have a set value convert to True/False
         if check_state == QtCore.Qt.Checked:
-            self.displayFooter = True
+            self.display_footer = True
 
     def on_add_from_service_check_box_changed(self, check_state):
         self.update_load = (check_state == QtCore.Qt.Checked)
@@ -84,15 +82,15 @@
     def load(self):
         settings = Settings()
         settings.beginGroup(self.settingsSection)
-        self.displayFooter = settings.value(u'display footer')
+        self.display_footer = settings.value(u'display footer')
         self.update_load = settings.value(u'add custom from service')
-        self.displayFooterCheckBox.setChecked(self.displayFooter)
+        self.display_footer_check_box.setChecked(self.display_footer)
         self.add_from_service_checkbox.setChecked(self.update_load)
         settings.endGroup()
 
     def save(self):
         settings = Settings()
         settings.beginGroup(self.settingsSection)
-        settings.setValue(u'display footer', self.displayFooter)
+        settings.setValue(u'display footer', self.display_footer)
         settings.setValue(u'add custom from service', self.update_load)
         settings.endGroup()

=== modified file 'openlp/plugins/custom/lib/mediaitem.py'
--- openlp/plugins/custom/lib/mediaitem.py	2013-02-07 08:42:17 +0000
+++ openlp/plugins/custom/lib/mediaitem.py	2013-03-05 17:13:27 +0000
@@ -114,7 +114,7 @@
         # active trigger it and clean up so it will not update again.
 
     def onNewClick(self):
-        self.edit_custom_form.loadCustom(0)
+        self.edit_custom_form.load_custom(0)
         self.edit_custom_form.exec_()
         self.onClearTextButtonClick()
         self.onSelectionChange()
@@ -128,7 +128,7 @@
         custom_id = int(custom_id)
         valid = self.manager.get_object(CustomSlide, custom_id)
         if valid:
-            self.edit_custom_form.loadCustom(custom_id, preview)
+            self.edit_custom_form.load_custom(custom_id, preview)
             if self.edit_custom_form.exec_() == QtGui.QDialog.Accepted:
                 self.remoteTriggered = True
                 self.remoteCustom = custom_id
@@ -148,7 +148,7 @@
         if check_item_selected(self.listView, UiStrings().SelectEdit):
             item = self.listView.currentItem()
             item_id = item.data(QtCore.Qt.UserRole)
-            self.edit_custom_form.loadCustom(item_id, False)
+            self.edit_custom_form.load_custom(item_id, False)
             self.edit_custom_form.exec_()
             self.autoSelectId = -1
             self.onSearchTextButtonClicked()

=== modified file 'openlp/plugins/images/imageplugin.py'
--- openlp/plugins/images/imageplugin.py	2013-02-16 18:24:31 +0000
+++ openlp/plugins/images/imageplugin.py	2013-03-05 17:13:27 +0000
@@ -65,7 +65,7 @@
             'provided by the theme.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/images/lib/mediaitem.py'
--- openlp/plugins/images/lib/mediaitem.py	2013-02-27 11:33:03 +0000
+++ openlp/plugins/images/lib/mediaitem.py	2013-03-05 17:13:27 +0000
@@ -191,7 +191,7 @@
         Called to reset the Live background with the image selected,
         """
         self.resetAction.setVisible(False)
-        self.live_controller.display.resetImage()
+        self.live_controller.display.reset_image()
 
     def live_theme_changed(self):
         """
@@ -210,7 +210,7 @@
             bitem = self.listView.item(item.row())
             filename = bitem.data(QtCore.Qt.UserRole)
             if os.path.exists(filename):
-                if self.live_controller.display.directImage(filename, background):
+                if self.live_controller.display.direct_image(filename, background):
                     self.resetAction.setVisible(True)
                 else:
                     critical_error_message_box(UiStrings().LiveBGError,

=== modified file 'openlp/plugins/media/lib/mediaitem.py'
--- openlp/plugins/media/lib/mediaitem.py	2013-02-07 11:33:47 +0000
+++ openlp/plugins/media/lib/mediaitem.py	2013-03-05 17:13:27 +0000
@@ -61,16 +61,16 @@
         self.singleServiceItem = False
         self.hasSearch = True
         self.mediaObject = None
-        self.displayController = DisplayController(parent)
-        self.displayController.controllerLayout = QtGui.QVBoxLayout()
-        self.media_controller.register_controller(self.displayController)
-        self.media_controller.set_controls_visible(self.displayController, False)
-        self.displayController.previewDisplay = Display(self.displayController, False, self.displayController)
-        self.displayController.previewDisplay.hide()
-        self.displayController.previewDisplay.setGeometry(QtCore.QRect(0, 0, 300, 300))
-        self.displayController.previewDisplay.screen = {u'size':self.displayController.previewDisplay.geometry()}
-        self.displayController.previewDisplay.setup()
-        self.media_controller.setup_display(self.displayController.previewDisplay, False)
+        self.display_controller = DisplayController(parent)
+        self.display_controller.controller_layout = QtGui.QVBoxLayout()
+        self.media_controller.register_controller(self.display_controller)
+        self.media_controller.set_controls_visible(self.display_controller, False)
+        self.display_controller.preview_display = Display(self.display_controller, False, self.display_controller)
+        self.display_controller.preview_display.hide()
+        self.display_controller.preview_display.setGeometry(QtCore.QRect(0, 0, 300, 300))
+        self.display_controller.preview_display.screen = {u'size': self.display_controller.preview_display.geometry()}
+        self.display_controller.preview_display.setup()
+        self.media_controller.setup_display(self.display_controller.preview_display, False)
         Registry().register_function(u'video_background_replaced', self.video_background_replaced)
         Registry().register_function(u'mediaitem_media_rebuild', self.rebuild_players)
         Registry().register_function(u'config_screen_changed', self.display_setup)
@@ -214,7 +214,7 @@
             u' '.join(self.media_controller.audio_extensions_list), UiStrings().AllFiles)
 
     def display_setup(self):
-        self.media_controller.setup_display(self.displayController.previewDisplay, False)
+        self.media_controller.setup_display(self.display_controller.previewDisplay, False)
 
     def populateDisplayTypes(self):
         """

=== modified file 'openlp/plugins/media/mediaplugin.py'
--- openlp/plugins/media/mediaplugin.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/media/mediaplugin.py	2013-03-05 17:13:27 +0000
@@ -66,7 +66,7 @@
             '<br />The media plugin provides playback of audio and video.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/presentations/presentationplugin.py'
--- openlp/plugins/presentations/presentationplugin.py	2013-02-07 11:33:47 +0000
+++ openlp/plugins/presentations/presentationplugin.py	2013-03-05 17:13:27 +0000
@@ -156,7 +156,7 @@
             'available to the user in a drop down box.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/remotes/lib/httpserver.py'
--- openlp/plugins/remotes/lib/httpserver.py	2013-03-01 08:38:25 +0000
+++ openlp/plugins/remotes/lib/httpserver.py	2013-03-05 17:13:27 +0000
@@ -129,6 +129,7 @@
 
 log = logging.getLogger(__name__)
 
+
 class HttpResponse(object):
     """
     A simple object to encapsulate a pseudo-http response.
@@ -178,7 +179,7 @@
         self.server.listen(QtNetwork.QHostAddress(address), port)
         Registry().register_function(u'slidecontroller_live_changed', self.slide_change)
         Registry().register_function(u'slidecontroller_live_started', self.item_change)
-        QtCore.QObject.connect(self.server, QtCore.SIGNAL(u'newConnection()'), self.new_connection)
+        self.server.newConnection.connect(self.new_connection)
         log.debug(u'TCP listening on port %d' % port)
 
     def slide_change(self, row):
@@ -245,8 +246,8 @@
             (r'^/api/(.*)/live$', self.go_live),
             (r'^/api/(.*)/add$', self.add_to_service)
         ]
-        QtCore.QObject.connect(self.socket, QtCore.SIGNAL(u'readyRead()'), self.ready_read)
-        QtCore.QObject.connect(self.socket, QtCore.SIGNAL(u'disconnected()'), self.disconnected)
+        self.socket.readyRead.connect(self.ready_read)
+        self.socket.disconnected.connect(self.disconnected)
         self.translate()
 
     def _get_service_items(self):
@@ -389,13 +390,12 @@
             u'service': self.service_manager.service_id,
             u'slide': self.parent.current_slide or 0,
             u'item': self.parent.current_item.unique_identifier if self.parent.current_item else u'',
-            u'twelve':Settings().value(u'remotes/twelve hour'),
-            u'blank': self.live_controller.blankScreen.isChecked(),
-            u'theme': self.live_controller.themeScreen.isChecked(),
-            u'display': self.live_controller.desktopScreen.isChecked()
+            u'twelve': Settings().value(u'remotes/twelve hour'),
+            u'blank': self.live_controller.blank_screen.isChecked(),
+            u'theme': self.live_controller.theme_screen.isChecked(),
+            u'display': self.live_controller.desktop_screen.isChecked()
         }
-        return HttpResponse(json.dumps({u'results': result}),
-            {u'Content-Type': u'application/json'})
+        return HttpResponse(json.dumps({u'results': result}), {u'Content-Type': u'application/json'})
 
     def display(self, action):
         """
@@ -426,18 +426,17 @@
         return HttpResponse(json.dumps({u'results': {u'success': success}}),
             {u'Content-Type': u'application/json'})
 
-    def controller(self, type, action):
+    def controller(self, display_type, action):
         """
         Perform an action on the slide controller.
 
-        ``type``
-            This is the type of slide controller, either ``preview`` or
-            ``live``.
+        ``display_type``
+            This is the type of slide controller, either ``preview`` or ``live``.
 
         ``action``
             The action to perform.
         """
-        event = u'slidecontroller_%s_%s' % (type, action)
+        event = u'slidecontroller_%s_%s' % (display_type, action)
         if action == u'text':
             current_item = self.parent.current_item
             data = []
@@ -473,10 +472,15 @@
             else:
                 Registry().execute(event)
             json_data = {u'results': {u'success': True}}
-        return HttpResponse(json.dumps(json_data),
-            {u'Content-Type': u'application/json'})
+        return HttpResponse(json.dumps(json_data), {u'Content-Type': u'application/json'})
 
     def service(self, action):
+        """
+        Handles requests for service items
+
+        ``action``
+            The action to perform.
+        """
         event = u'servicemanager_%s' % action
         if action == u'list':
             return HttpResponse(json.dumps({u'results': {u'items': self._get_service_items()}}),
@@ -491,8 +495,7 @@
             Registry().execute(event, data[u'request'][u'id'])
         else:
             Registry().execute(event)
-        return HttpResponse(json.dumps({u'results': {u'success': True}}),
-            {u'Content-Type': u'application/json'})
+        return HttpResponse(json.dumps({u'results': {u'success': True}}), {u'Content-Type': u'application/json'})
 
     def pluginInfo(self, action):
         """
@@ -507,15 +510,13 @@
             for plugin in self.plugin_manager.plugins:
                 if plugin.status == PluginStatus.Active and plugin.mediaItem and plugin.mediaItem.hasSearch:
                     searches.append([plugin.name, unicode(plugin.textStrings[StringContent.Name][u'plural'])])
-            return HttpResponse(
-                json.dumps({u'results': {u'items': searches}}),
-                {u'Content-Type': u'application/json'})
+            return HttpResponse(json.dumps({u'results': {u'items': searches}}), {u'Content-Type': u'application/json'})
 
-    def search(self, type):
+    def search(self, plugin_name):
         """
         Return a list of items that match the search text.
 
-        ``type``
+        ``plugin``
             The plugin name to search in.
         """
         try:
@@ -523,36 +524,35 @@
         except KeyError, ValueError:
             return HttpResponse(code=u'400 Bad Request')
         text = urllib.unquote(text)
-        plugin = self.plugin_manager.get_plugin_by_name(type)
+        plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
         if plugin.status == PluginStatus.Active and plugin.mediaItem and plugin.mediaItem.hasSearch:
             results = plugin.mediaItem.search(text, False)
         else:
             results = []
-        return HttpResponse(json.dumps({u'results': {u'items': results}}),
-            {u'Content-Type': u'application/json'})
+        return HttpResponse(json.dumps({u'results': {u'items': results}}), {u'Content-Type': u'application/json'})
 
-    def go_live(self, type):
+    def go_live(self, plugin_name):
         """
-        Go live on an item of type ``type``.
+        Go live on an item of type ``plugin``.
         """
         try:
             id = json.loads(self.url_params[u'data'][0])[u'request'][u'id']
         except KeyError, ValueError:
             return HttpResponse(code=u'400 Bad Request')
-        plugin = self.plugin_manager.get_plugin_by_name(type)
+        plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
         if plugin.status == PluginStatus.Active and plugin.mediaItem:
             plugin.mediaItem.goLive(id, remote=True)
         return HttpResponse(code=u'200 OK')
 
-    def add_to_service(self, type):
+    def add_to_service(self, plugin_name):
         """
-        Add item of type ``type`` to the end of the service.
+        Add item of type ``plugin_name`` to the end of the service.
         """
         try:
             id = json.loads(self.url_params[u'data'][0])[u'request'][u'id']
         except KeyError, ValueError:
             return HttpResponse(code=u'400 Bad Request')
-        plugin = self.plugin_manager.get_plugin_by_name(type)
+        plugin = self.plugin_manager.get_plugin_by_name(plugin_name)
         if plugin.status == PluginStatus.Active and plugin.mediaItem:
             item_id = plugin.mediaItem.createItemFromId(id)
             plugin.mediaItem.addToService(item_id, remote=True)

=== modified file 'openlp/plugins/remotes/lib/remotetab.py'
--- openlp/plugins/remotes/lib/remotetab.py	2013-02-07 08:42:17 +0000
+++ openlp/plugins/remotes/lib/remotetab.py	2013-03-05 17:13:27 +0000
@@ -45,117 +45,115 @@
     def setupUi(self):
         self.setObjectName(u'RemoteTab')
         SettingsTab.setupUi(self)
-        self.serverSettingsGroupBox = QtGui.QGroupBox(self.leftColumn)
-        self.serverSettingsGroupBox.setObjectName(u'serverSettingsGroupBox')
-        self.serverSettingsLayout = QtGui.QFormLayout(self.serverSettingsGroupBox)
-        self.serverSettingsLayout.setObjectName(u'serverSettingsLayout')
-        self.addressLabel = QtGui.QLabel(self.serverSettingsGroupBox)
-        self.addressLabel.setObjectName(u'addressLabel')
-        self.addressEdit = QtGui.QLineEdit(self.serverSettingsGroupBox)
-        self.addressEdit.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
-        self.addressEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(
+        self.server_settings_group_box = QtGui.QGroupBox(self.leftColumn)
+        self.server_settings_group_box.setObjectName(u'server_settings_group_box')
+        self.server_settings_layout = QtGui.QFormLayout(self.server_settings_group_box)
+        self.server_settings_layout.setObjectName(u'server_settings_layout')
+        self.address_label = QtGui.QLabel(self.server_settings_group_box)
+        self.address_label.setObjectName(u'address_label')
+        self.address_edit = QtGui.QLineEdit(self.server_settings_group_box)
+        self.address_edit.setSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed)
+        self.address_edit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(
             u'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'), self))
-        self.addressEdit.setObjectName(u'addressEdit')
-        QtCore.QObject.connect(self.addressEdit, QtCore.SIGNAL(u'textChanged(const QString&)'), self.setUrls)
-        self.serverSettingsLayout.addRow(self.addressLabel, self.addressEdit)
-        self.twelveHourCheckBox = QtGui.QCheckBox(self.serverSettingsGroupBox)
-        self.twelveHourCheckBox.setObjectName(u'twelveHourCheckBox')
-        self.serverSettingsLayout.addRow(self.twelveHourCheckBox)
-        self.portLabel = QtGui.QLabel(self.serverSettingsGroupBox)
+        self.address_edit.setObjectName(u'address_edit')
+        self.server_settings_layout.addRow(self.address_label, self.address_edit)
+        self.twelve_hour_check_box = QtGui.QCheckBox(self.server_settings_group_box)
+        self.twelve_hour_check_box.setObjectName(u'twelve_hour_check_box')
+        self.server_settings_layout.addRow(self.twelve_hour_check_box)
+        self.portLabel = QtGui.QLabel(self.server_settings_group_box)
         self.portLabel.setObjectName(u'portLabel')
-        self.portSpinBox = QtGui.QSpinBox(self.serverSettingsGroupBox)
-        self.portSpinBox.setMaximum(32767)
-        self.portSpinBox.setObjectName(u'portSpinBox')
-        QtCore.QObject.connect(self.portSpinBox, QtCore.SIGNAL(u'valueChanged(int)'), self.setUrls)
-        self.serverSettingsLayout.addRow(self.portLabel, self.portSpinBox)
-        self.remoteUrlLabel = QtGui.QLabel(self.serverSettingsGroupBox)
-        self.remoteUrlLabel.setObjectName(u'remoteUrlLabel')
-        self.remoteUrl = QtGui.QLabel(self.serverSettingsGroupBox)
-        self.remoteUrl.setObjectName(u'remoteUrl')
-        self.remoteUrl.setOpenExternalLinks(True)
-        self.serverSettingsLayout.addRow(self.remoteUrlLabel, self.remoteUrl)
-        self.stageUrlLabel = QtGui.QLabel(self.serverSettingsGroupBox)
-        self.stageUrlLabel.setObjectName(u'stageUrlLabel')
-        self.stageUrl = QtGui.QLabel(self.serverSettingsGroupBox)
-        self.stageUrl.setObjectName(u'stageUrl')
-        self.stageUrl.setOpenExternalLinks(True)
-        self.serverSettingsLayout.addRow(self.stageUrlLabel, self.stageUrl)
-        self.leftLayout.addWidget(self.serverSettingsGroupBox)
-        self.androidAppGroupBox = QtGui.QGroupBox(self.rightColumn)
-        self.androidAppGroupBox.setObjectName(u'androidAppGroupBox')
-        self.rightLayout.addWidget(self.androidAppGroupBox)
-        self.qrLayout = QtGui.QVBoxLayout(self.androidAppGroupBox)
-        self.qrLayout.setObjectName(u'qrLayout')
-        self.qrCodeLabel = QtGui.QLabel(self.androidAppGroupBox)
-        self.qrCodeLabel.setPixmap(QtGui.QPixmap(u':/remotes/android_app_qr.png'))
-        self.qrCodeLabel.setAlignment(QtCore.Qt.AlignCenter)
-        self.qrCodeLabel.setObjectName(u'qrCodeLabel')
-        self.qrLayout.addWidget(self.qrCodeLabel)
-        self.qrDescriptionLabel = QtGui.QLabel(self.androidAppGroupBox)
-        self.qrDescriptionLabel.setObjectName(u'qrDescriptionLabel')
-        self.qrDescriptionLabel.setOpenExternalLinks(True)
-        self.qrDescriptionLabel.setWordWrap(True)
-        self.qrLayout.addWidget(self.qrDescriptionLabel)
+        self.port_spin_box = QtGui.QSpinBox(self.server_settings_group_box)
+        self.port_spin_box.setMaximum(32767)
+        self.port_spin_box.setObjectName(u'port_spin_box')
+        self.server_settings_layout.addRow(self.portLabel, self.port_spin_box)
+        self.remote_url_label = QtGui.QLabel(self.server_settings_group_box)
+        self.remote_url_label.setObjectName(u'remote_url_label')
+        self.remote_url = QtGui.QLabel(self.server_settings_group_box)
+        self.remote_url.setObjectName(u'remote_url')
+        self.remote_url.setOpenExternalLinks(True)
+        self.server_settings_layout.addRow(self.remote_url_label, self.remote_url)
+        self.stage_url_label = QtGui.QLabel(self.server_settings_group_box)
+        self.stage_url_label.setObjectName(u'stage_url_label')
+        self.stage_url = QtGui.QLabel(self.server_settings_group_box)
+        self.stage_url.setObjectName(u'stage_url')
+        self.stage_url.setOpenExternalLinks(True)
+        self.server_settings_layout.addRow(self.stage_url_label, self.stage_url)
+        self.leftLayout.addWidget(self.server_settings_group_box)
+        self.android_app_group_box = QtGui.QGroupBox(self.rightColumn)
+        self.android_app_group_box.setObjectName(u'android_app_group_box')
+        self.rightLayout.addWidget(self.android_app_group_box)
+        self.qr_layout = QtGui.QVBoxLayout(self.android_app_group_box)
+        self.qr_layout.setObjectName(u'qr_layout')
+        self.qr_code_label = QtGui.QLabel(self.android_app_group_box)
+        self.qr_code_label.setPixmap(QtGui.QPixmap(u':/remotes/android_app_qr.png'))
+        self.qr_code_label.setAlignment(QtCore.Qt.AlignCenter)
+        self.qr_code_label.setObjectName(u'qr_code_label')
+        self.qr_layout.addWidget(self.qr_code_label)
+        self.qr_description_label = QtGui.QLabel(self.android_app_group_box)
+        self.qr_description_label.setObjectName(u'qr_description_label')
+        self.qr_description_label.setOpenExternalLinks(True)
+        self.qr_description_label.setWordWrap(True)
+        self.qr_layout.addWidget(self.qr_description_label)
         self.leftLayout.addStretch()
         self.rightLayout.addStretch()
-        QtCore.QObject.connect(self.twelveHourCheckBox, QtCore.SIGNAL(u'stateChanged(int)'),
-            self.onTwelveHourCheckBoxChanged)
+        self.twelve_hour_check_box.stateChanged.connect(self.onTwelveHourCheckBoxChanged)
+        self.address_edit.textChanged.connect(self.set_urls)
+        self.port_spin_box.valueChanged.connect(self.set_urls)
 
     def retranslateUi(self):
-        self.serverSettingsGroupBox.setTitle(
-            translate('RemotePlugin.RemoteTab', 'Server Settings'))
-        self.addressLabel.setText(translate('RemotePlugin.RemoteTab', 'Serve on IP address:'))
+        self.server_settings_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'Server Settings'))
+        self.address_label.setText(translate('RemotePlugin.RemoteTab', 'Serve on IP address:'))
         self.portLabel.setText(translate('RemotePlugin.RemoteTab', 'Port number:'))
-        self.remoteUrlLabel.setText(translate('RemotePlugin.RemoteTab', 'Remote URL:'))
-        self.stageUrlLabel.setText(translate('RemotePlugin.RemoteTab', 'Stage view URL:'))
-        self.twelveHourCheckBox.setText(translate('RemotePlugin.RemoteTab', 'Display stage time in 12h format'))
-        self.androidAppGroupBox.setTitle(translate('RemotePlugin.RemoteTab', 'Android App'))
-        self.qrDescriptionLabel.setText(translate('RemotePlugin.RemoteTab',
+        self.remote_url_label.setText(translate('RemotePlugin.RemoteTab', 'Remote URL:'))
+        self.stage_url_label.setText(translate('RemotePlugin.RemoteTab', 'Stage view URL:'))
+        self.twelve_hour_check_box.setText(translate('RemotePlugin.RemoteTab', 'Display stage time in 12h format'))
+        self.android_app_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'Android App'))
+        self.qr_description_label.setText(translate('RemotePlugin.RemoteTab',
             'Scan the QR code or click <a href="https://play.google.com/store/'
             'apps/details?id=org.openlp.android">download</a> to install the '
             'Android app from Google Play.'))
 
-    def setUrls(self):
+    def set_urls(self):
         ipAddress = u'localhost'
-        if self.addressEdit.text() == ZERO_URL:
-            ifaces = QtNetwork.QNetworkInterface.allInterfaces()
-            for iface in ifaces:
-                if not iface.isValid():
-                    continue
-                if not (iface.flags() & (QtNetwork.QNetworkInterface.IsUp | QtNetwork.QNetworkInterface.IsRunning)):
-                    continue
-                for addr in iface.addressEntries():
-                    ip = addr.ip()
+        if self.address_edit.text() == ZERO_URL:
+            interfaces = QtNetwork.QNetworkInterface.allInterfaces()
+            for interface in interfaces:
+                if not interface.isValid():
+                    continue
+                if not (interface.flags() & (QtNetwork.QNetworkInterface.IsUp | QtNetwork.QNetworkInterface.IsRunning)):
+                    continue
+                for address in interface.addressEntries():
+                    ip = address.ip()
                     if ip.protocol() == 0 and ip != QtNetwork.QHostAddress.LocalHost:
                         ipAddress = ip
                         break
         else:
-            ipAddress = self.addressEdit.text()
-        url = u'http://%s:%s/' % (ipAddress, self.portSpinBox.value())
-        self.remoteUrl.setText(u'<a href="%s">%s</a>' % (url, url))
+            ipAddress = self.address_edit.text()
+        url = u'http://%s:%s/' % (ipAddress, self.port_spin_box.value())
+        self.remote_url.setText(u'<a href="%s">%s</a>' % (url, url))
         url += u'stage'
-        self.stageUrl.setText(u'<a href="%s">%s</a>' % (url, url))
+        self.stage_url.setText(u'<a href="%s">%s</a>' % (url, url))
 
     def load(self):
-        self.portSpinBox.setValue(Settings().value(self.settingsSection + u'/port'))
-        self.addressEdit.setText(Settings().value(self.settingsSection + u'/ip address'))
-        self.twelveHour = Settings().value(self.settingsSection + u'/twelve hour')
-        self.twelveHourCheckBox.setChecked(self.twelveHour)
-        self.setUrls()
+        self.port_spin_box.setValue(Settings().value(self.settingsSection + u'/port'))
+        self.address_edit.setText(Settings().value(self.settingsSection + u'/ip address'))
+        self.twelve_hour = Settings().value(self.settingsSection + u'/twelve hour')
+        self.twelve_hour_check_box.setChecked(self.twelve_hour)
+        self.set_urls()
 
     def save(self):
         changed = False
-        if Settings().value(self.settingsSection + u'/ip address') != self.addressEdit.text() or \
-                Settings().value(self.settingsSection + u'/port') != self.portSpinBox.value():
+        if Settings().value(self.settingsSection + u'/ip address') != self.address_edit.text() or \
+                Settings().value(self.settingsSection + u'/port') != self.port_spin_box.value():
             changed = True
-        Settings().setValue(self.settingsSection + u'/port', self.portSpinBox.value())
-        Settings().setValue(self.settingsSection + u'/ip address', self.addressEdit.text())
-        Settings().setValue(self.settingsSection + u'/twelve hour', self.twelveHour)
+        Settings().setValue(self.settingsSection + u'/port', self.port_spin_box.value())
+        Settings().setValue(self.settingsSection + u'/ip address', self.address_edit.text())
+        Settings().setValue(self.settingsSection + u'/twelve hour', self.twelve_hour)
         if changed:
             Registry().register_function(u'remotes_config_updated')
 
     def onTwelveHourCheckBoxChanged(self, check_state):
-        self.twelveHour = False
+        self.twelve_hour = False
         # we have a set value convert to True/False
         if check_state == QtCore.Qt.Checked:
-            self.twelveHour = True
+            self.twelve_hour = True

=== modified file 'openlp/plugins/remotes/remoteplugin.py'
--- openlp/plugins/remotes/remoteplugin.py	2013-02-07 07:08:35 +0000
+++ openlp/plugins/remotes/remoteplugin.py	2013-03-05 17:13:27 +0000
@@ -38,7 +38,7 @@
         u'remotes/twelve hour': True,
         u'remotes/port': 4316,
         u'remotes/ip address': u'0.0.0.0'
-    }
+}
 
 
 class RemotesPlugin(Plugin):
@@ -81,7 +81,7 @@
             'browser or through the remote API.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2013-02-05 08:05:28 +0000
+++ openlp/plugins/songs/songsplugin.py	2013-03-05 17:13:27 +0000
@@ -176,7 +176,7 @@
         return translate('SongsPlugin', '<strong>Songs Plugin</strong>'
             '<br />The songs plugin provides the ability to display and manage songs.')
 
-    def usesTheme(self, theme):
+    def uses_theme(self, theme):
         """
         Called to find out if the song plugin is currently using a theme.
 
@@ -186,7 +186,7 @@
             return True
         return False
 
-    def renameTheme(self, oldTheme, newTheme):
+    def rename_theme(self, oldTheme, newTheme):
         """
         Renames a theme the song plugin is using making the plugin use the new
         name.
@@ -209,7 +209,7 @@
         importer.register(self.mediaItem.importWizard)
         return importer
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'openlp/plugins/songusage/songusageplugin.py'
--- openlp/plugins/songusage/songusageplugin.py	2013-02-21 21:26:24 +0000
+++ openlp/plugins/songusage/songusageplugin.py	2013-03-05 17:13:27 +0000
@@ -219,7 +219,7 @@
             '</strong><br />This plugin tracks the usage of songs in services.')
         return about_text
 
-    def setPluginTextStrings(self):
+    def set_plugin_text_strings(self):
         """
         Called to define all translatable texts of the plugin
         """

=== modified file 'tests/functional/openlp_core_lib/test_serviceitem.py'
--- tests/functional/openlp_core_lib/test_serviceitem.py	2013-02-18 19:34:36 +0000
+++ tests/functional/openlp_core_lib/test_serviceitem.py	2013-03-05 17:13:27 +0000
@@ -216,12 +216,15 @@
         assert service_item.get_frame_path(0) == test_file, u'The frame path should match the full path to the image'
         assert service_item.get_frame_title(0) == image_name, u'The frame title should match the image name'
         assert service_item.get_display_title() == image_name, u'The display title should match the first image name'
-        assert service_item.is_image() is True, u'This service item is an Image'
-        assert service_item.is_capable(ItemCapabilities.CanMaintain) is True, u'This service item can be Maintained'
-        assert service_item.is_capable(ItemCapabilities.CanPreview) is True, u'This service item can be Previewed'
-        assert service_item.is_capable(ItemCapabilities.CanLoop) is True, u'This service item can be made to Loop'
+        assert service_item.is_image() is True, u'This service item should be of an "image" type'
+        assert service_item.is_capable(ItemCapabilities.CanMaintain) is True, \
+            u'This service item should be able to be Maintained'
+        assert service_item.is_capable(ItemCapabilities.CanPreview) is True, \
+            u'This service item should be able to be be Previewed'
+        assert service_item.is_capable(ItemCapabilities.CanLoop) is True, \
+            u'This service item should be able to be run in a can be made to Loop'
         assert service_item.is_capable(ItemCapabilities.CanAppend) is True, \
-            u'This service item can have new items added'
+            u'This service item should be able to have new items added to it'
 
     def serviceitem_load_image_from_local_service_test(self):
         """
@@ -256,11 +259,14 @@
         assert service_item.get_display_title().lower() == service_item.name, \
             u'The plugin name should match the display title, as there are > 1 Images'
         assert service_item.is_image() is True, u'This service item should be of an "image" type'
-        assert service_item.is_capable(ItemCapabilities.CanMaintain) is True, u'This service item can be Maintained'
-        assert service_item.is_capable(ItemCapabilities.CanPreview) is True, u'This service item can be Previewed'
-        assert service_item.is_capable(ItemCapabilities.CanLoop) is True, u'This service item can be made to Loop'
+        assert service_item.is_capable(ItemCapabilities.CanMaintain) is True, \
+            u'This service item should be able to be Maintained'
+        assert service_item.is_capable(ItemCapabilities.CanPreview) is True, \
+            u'This service item should be able to be be Previewed'
+        assert service_item.is_capable(ItemCapabilities.CanLoop) is True, \
+            u'This service item should be able to be run in a can be made to Loop'
         assert service_item.is_capable(ItemCapabilities.CanAppend) is True, \
-            u'This service item can have new items added'
+            u'This service item should be able to have new items added to it'
 
     def convert_file_service_item(self, name):
         service_file = os.path.join(TEST_PATH, name)


Follow ups