From 33a924a243f12d2fdcec6451ecd30271deadab1f Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sun, 23 Jan 2011 15:36:15 +0000 Subject: [PATCH] Preserve replacement backgrounds - finish --- openlp/core/lib/htmlbuilder.py | 1 - openlp/core/ui/maindisplay.py | 13 ++++++++----- openlp/plugins/images/lib/mediaitem.py | 11 +++++++++-- openlp/plugins/media/lib/mediaitem.py | 11 ++++++++++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/openlp/core/lib/htmlbuilder.py b/openlp/core/lib/htmlbuilder.py index 83f941d11..ea830855c 100644 --- a/openlp/core/lib/htmlbuilder.py +++ b/openlp/core/lib/htmlbuilder.py @@ -297,7 +297,6 @@ body { function show_text_complete(){ return (text_opacity()==1); } - diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index e9ef449fa..c0e5dd509 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -318,6 +318,9 @@ class MainDisplay(DisplayWidget): """ log.debug(u'video') self.webLoaded = True + # We are running a background theme + self.override[u'theme'] = u'' + self.override[u'video'] = True vol = float(volume)/float(10) if isBackground or not self.usePhonon: js = u'show_video("init", "%s", %s, true); show_video("play");' % \ @@ -389,17 +392,17 @@ class MainDisplay(DisplayWidget): background = None # We have an image override so keep the image till the theme changes if self.override: - if self.override[u'theme'] != \ + # We have an video override so allow it to be stopped + if u'video' in self.override: + Receiver.send_message(u'video_background_replaced') + self.override = {} + elif self.override[u'theme'] != \ serviceItem.themedata.theme_name: Receiver.send_message(u'live_theme_changed') self.override = {} else: background = self.imageManager. \ get_image_bytes(self.override[u'image']) - # We have an video override so allow it to be stopped - if self.override and u'video' in self.override: - Receiver.send_message(u'video_background_replaced') - self.override = {} if self.serviceItem.themedata.background_filename: self.serviceItem.bg_image_bytes = self.imageManager. \ get_image_bytes(self.serviceItem.themedata.theme_name) diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index bd84219fb..4f976bd51 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/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, \ - check_directory_exists + check_directory_exists, Receiver from openlp.core.ui import criticalErrorMessageBox from openlp.core.utils import AppLocation, delete_file, get_images_filter @@ -44,7 +44,6 @@ class ImageListView(BaseListWithDnD): self.PluginName = u'Images' BaseListWithDnD.__init__(self, parent) - class ImageMediaItem(MediaManagerItem): """ This is the custom media manager item for images. @@ -57,6 +56,8 @@ class ImageMediaItem(MediaManagerItem): # be instanced by the base MediaManagerItem. self.ListViewWithDnD_class = ImageListView MediaManagerItem.__init__(self, parent, self, icon) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'live_theme_changed'), self.liveThemeChanged) def retranslateUi(self): self.OnNewPrompt = translate('ImagePlugin.MediaItem', @@ -193,6 +194,12 @@ class ImageMediaItem(MediaManagerItem): self.resetAction.setVisible(False) self.parent.liveController.display.resetImage() + def liveThemeChanged(self): + """ + Triggered by the change of theme in the slide controller + """ + self.resetAction.setVisible(False) + def onReplaceClick(self): """ Called to replace Live backgound with the image selected. diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 121fa80a0..1b5d6b8d8 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -30,7 +30,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - ItemCapabilities, SettingsManager, translate, check_item_selected + ItemCapabilities, SettingsManager, translate, check_item_selected, Receiver from openlp.core.ui import criticalErrorMessageBox log = logging.getLogger(__name__) @@ -58,6 +58,9 @@ class MediaMediaItem(MediaManagerItem): MediaManagerItem.__init__(self, parent, self, icon) self.singleServiceItem = False self.serviceItemIconName = u':/media/image_clapperboard.png' + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'video_background_replaced'), + self.videobackgroundReplaced) def retranslateUi(self): self.OnNewPrompt = translate('MediaPlugin.MediaItem', 'Select Media') @@ -99,6 +102,12 @@ class MediaMediaItem(MediaManagerItem): self.resetAction.setVisible(False) self.parent.liveController.display.resetVideo() + def videobackgroundReplaced(self): + """ + Triggered by main display on change of serviceitem + """ + self.resetAction.setVisible(False) + def onReplaceClick(self): """ Called to replace Live backgound with the media selected.