diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py
index 397d7b74d..c184585e6 100644
--- a/openlp/core/ui/themeform.py
+++ b/openlp/core/ui/themeform.py
@@ -440,8 +440,10 @@ class ThemeForm(QtGui.QWizard, Ui_ThemeWizard):
"""
Background style Combo box has changed.
"""
- self.theme.background_type = BackgroundType.to_string(index)
- self.setBackgroundPageValues()
+ # do not allow updates when screen is building for the first time.
+ if self.updateThemeAllowed:
+ self.theme.background_type = BackgroundType.to_string(index)
+ self.setBackgroundPageValues()
def onGradientComboBoxCurrentIndexChanged(self, index):
"""
diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py
index 1e800383c..0f55a8eb8 100644
--- a/openlp/plugins/images/lib/mediaitem.py
+++ b/openlp/plugins/images/lib/mediaitem.py
@@ -32,6 +32,7 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \
context_menu_action, ItemCapabilities, SettingsManager, translate, \
check_item_selected, Receiver, checkDirectoryExists
+
from openlp.core.utils import AppLocation, get_images_filter
log = logging.getLogger(__name__)
@@ -207,6 +208,9 @@ class ImageMediaItem(MediaManagerItem):
self.parent.liveController.display.resetImage()
def onReplaceClick(self):
+ """
+ Called to replace Live backgound with the video selected
+ """
if check_item_selected(self.listView,
translate('ImagePlugin.MediaItem',
'You must select an image to replace the background with.')):
@@ -217,11 +221,12 @@ class ImageMediaItem(MediaManagerItem):
(path, name) = os.path.split(filename)
self.parent.liveController.display.directImage(name, filename)
else:
- QtGui.QMessageBox.critical(self,
- translate('ImagePlugin.MediaItem', 'Live Background Could '
- 'Not Be Replaced'),
- unicode(translate('ImagePlugin.MediaItem',
- 'The image %s no longer exists.')) % filename)
+ Receiver.send_message(u'openlp_error_message', {
+ u'title': translate('ImagePlugin.MediaItem',
+ 'Live Background Error'),
+ u'message': unicode(translate('ImagePlugin.MediaItem',
+ 'There was a problem replacing your background, '
+ 'the image file %s no longer exists.')) % filename})
self.resetButton.setVisible(True)
def onPreviewClick(self):
diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py
index 49b26446f..0eff0cc7f 100644
--- a/openlp/plugins/media/lib/mediaitem.py
+++ b/openlp/plugins/media/lib/mediaitem.py
@@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \
ItemCapabilities, SettingsManager, translate, check_item_selected, \
- context_menu_action
+ context_menu_action, Receiver
log = logging.getLogger(__name__)
@@ -108,11 +108,20 @@ class MediaMediaItem(MediaManagerItem):
def onReplaceClick(self):
if check_item_selected(self.listView,
- translate('ImagePlugin.MediaItem',
+ translate('MediaPlugin.MediaItem',
'You must select a media file to replace the background with.')):
item = self.listView.currentItem()
filename = unicode(item.data(QtCore.Qt.UserRole).toString())
- self.parent.liveController.display.video(filename, 0, True)
+ if os.path.exists(filename):
+ (path, name) = os.path.split(filename)
+ self.parent.liveController.display.video(filename, 0, True)
+ else:
+ Receiver.send_message(u'openlp_error_message', {
+ u'title': translate('MediaPlugin.MediaItem',
+ 'Live Background Error'),
+ u'message': unicode(translate('MediaPlugin.MediaItem',
+ 'There was a problem replacing your background, '
+ 'the media file %s no longer exists.')) % filename})
self.resetButton.setVisible(True)
def generateSlideData(self, service_item, item=None, xmlVersion=False):
diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py
index 64caaa0de..ad6087daf 100644
--- a/openlp/plugins/media/mediaplugin.py
+++ b/openlp/plugins/media/mediaplugin.py
@@ -79,7 +79,7 @@ class MediaPlugin(Plugin):
return MediaTab(self.name)
def getMediaManagerItem(self):
- # Create the MediaManagerItem object
+ # Create the MediaManagerItem object.
return MediaMediaItem(self, self, self.icon)
def about(self):
diff --git a/openlp/plugins/songs/lib/songbeamerimport.py b/openlp/plugins/songs/lib/songbeamerimport.py
index f30c40a09..12ff53428 100644
--- a/openlp/plugins/songs/lib/songbeamerimport.py
+++ b/openlp/plugins/songs/lib/songbeamerimport.py
@@ -27,10 +27,11 @@
The :mod:`songbeamerimport` module provides the functionality for importing
SongBeamer songs into the OpenLP database.
"""
-import logging
-import os
import chardet
import codecs
+import logging
+import os
+import re
from openlp.core.lib import translate
from openlp.plugins.songs.lib.songimport import SongImport
@@ -151,23 +152,25 @@ class SongBeamerImport(SongImport):
(u'', u'{/it}'),
(u'', u'{u}'),
(u'', u'{/u}'),
- (u'
', u'{st}'),
- (u'', u'{st}'),
- (u' br>', u'{st}'),
(u'
', u'{p}'), (u'
', u'{/p}'), (u'