diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 55cb2faeb..1c464f911 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -485,7 +485,8 @@ class MediaManagerItem(QtGui.QWidget): """ pass - def generateSlideData(self, serviceItem, item=None, xmlVersion=False): + def generateSlideData(self, serviceItem, item=None, xmlVersion=False, + remote=False): raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' u'to be defined by the plugin') @@ -539,12 +540,12 @@ class MediaManagerItem(QtGui.QWidget): else: self.goLive() - def goLive(self, item_id=None): + def goLive(self, item_id=None, remote=False): log.debug(u'%s Live requested', self.plugin.name) item = None if item_id: item = self.createItemFromId(item_id) - serviceItem = self.buildServiceItem(item) + serviceItem = self.buildServiceItem(item, remote=remote) if serviceItem: if not item_id: serviceItem.from_plugin = True @@ -574,8 +575,8 @@ class MediaManagerItem(QtGui.QWidget): for item in items: self.addToService(item) - def addToService(self, item=None, replace=None): - serviceItem = self.buildServiceItem(item, True) + def addToService(self, item=None, replace=None, remote=False): + serviceItem = self.buildServiceItem(item, True, remote=remote) if serviceItem: serviceItem.from_plugin = False self.plugin.serviceManager.addServiceItem(serviceItem, @@ -608,13 +609,13 @@ class MediaManagerItem(QtGui.QWidget): unicode(translate('OpenLP.MediaManagerItem', 'You must select a %s service item.')) % self.title) - def buildServiceItem(self, item=None, xmlVersion=False): + def buildServiceItem(self, item=None, xmlVersion=False, remote=False): """ Common method for generating a service item """ serviceItem = ServiceItem(self.plugin) serviceItem.add_icon(self.plugin.icon_path) - if self.generateSlideData(serviceItem, item, xmlVersion): + if self.generateSlideData(serviceItem, item, xmlVersion, remote): return serviceItem else: return None diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 2872740db..31effe189 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -788,7 +788,8 @@ class BibleMediaItem(MediaManagerItem): items.append(bible_verse) return items - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): """ Generates and formats the slides for the service item as well as the service item's title. diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index ce6463741..59d6b4fb6 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -222,7 +222,8 @@ class CustomMediaItem(MediaManagerItem): def onFocus(self): self.searchTextEdit.setFocus() - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): raw_footer = [] slide = None theme = None diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 1073ac6ca..cf217d8dc 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -139,7 +139,8 @@ class ImageMediaItem(MediaManagerItem): if not initialLoad: self.plugin.formparent.finishedProgressBar() - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): background = QtGui.QColor(QtCore.QSettings().value(self.settingsSection + u'/background color', QtCore.QVariant(u'#000000'))) if item: @@ -166,11 +167,12 @@ class ImageMediaItem(MediaManagerItem): items.remove(item) # We cannot continue, as all images do not exist. if not items: - critical_error_message_box( - translate('ImagePlugin.MediaItem', 'Missing Image(s)'), - unicode(translate('ImagePlugin.MediaItem', - 'The following image(s) no longer exist: %s')) % - u'\n'.join(missing_items_filenames)) + if not remote: + critical_error_message_box( + translate('ImagePlugin.MediaItem', 'Missing Image(s)'), + unicode(translate('ImagePlugin.MediaItem', + 'The following image(s) no longer exist: %s')) % + u'\n'.join(missing_items_filenames)) return False # We have missing as well as existing images. We ask what to do. elif missing_items and QtGui.QMessageBox.question(self, diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index 6bc22afba..f2e0bbc06 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -129,18 +129,20 @@ class MediaMediaItem(MediaManagerItem): 'There was a problem replacing your background, ' 'the media file "%s" no longer exists.')) % filename) - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): if item is None: item = self.listView.currentItem() if item is None: return False filename = unicode(item.data(QtCore.Qt.UserRole).toString()) if not os.path.exists(filename): - # File is no longer present - critical_error_message_box( - translate('MediaPlugin.MediaItem', 'Missing Media File'), - unicode(translate('MediaPlugin.MediaItem', - 'The file %s no longer exists.')) % filename) + if not remote: + # File is no longer present + critical_error_message_box( + translate('MediaPlugin.MediaItem', 'Missing Media File'), + unicode(translate('MediaPlugin.MediaItem', + 'The file %s no longer exists.')) % filename) return False self.mediaObject.stop() self.mediaObject.clearQueue() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index f3752fd73..6c997a6b6 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -233,7 +233,8 @@ class PresentationMediaItem(MediaManagerItem): SettingsManager.set_list(self.settingsSection, u'presentations', self.getFileList()) - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): """ Load the relevant information for displaying the presentation in the slidecontroller. In the case of powerpoints, an image @@ -275,12 +276,13 @@ class PresentationMediaItem(MediaManagerItem): return True else: # File is no longer present - critical_error_message_box( - translate('PresentationPlugin.MediaItem', - 'Missing Presentation'), - unicode(translate('PresentationPlugin.MediaItem', - 'The Presentation %s is incomplete,' - ' please reload.')) % filename) + if not remote: + critical_error_message_box( + translate('PresentationPlugin.MediaItem', + 'Missing Presentation'), + unicode(translate('PresentationPlugin.MediaItem', + 'The Presentation %s is incomplete,' + ' please reload.')) % filename) return False else: # File is no longer present diff --git a/openlp/plugins/remotes/lib/httpserver.py b/openlp/plugins/remotes/lib/httpserver.py index 1545986f0..c81c83d92 100644 --- a/openlp/plugins/remotes/lib/httpserver.py +++ b/openlp/plugins/remotes/lib/httpserver.py @@ -528,7 +528,7 @@ class HttpConnection(object): id = json.loads(self.url_params[u'data'][0])[u'request'][u'id'] plugin = self.parent.plugin.pluginManager.get_plugin_by_name(type) if plugin.status == PluginStatus.Active and plugin.mediaItem: - plugin.mediaItem.goLive(id) + plugin.mediaItem.goLive(id, remote=True) def add_to_service(self, type): """ @@ -538,7 +538,7 @@ class HttpConnection(object): plugin = self.parent.plugin.pluginManager.get_plugin_by_name(type) if plugin.status == PluginStatus.Active and plugin.mediaItem: item_id = plugin.mediaItem.createItemFromId(id) - plugin.mediaItem.addToService(item_id) + plugin.mediaItem.addToService(item_id, remote=True) def send_response(self, response): http = u'HTTP/1.1 %s\r\n' % response.code diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index f00f7e9be..b54efcfb7 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -411,7 +411,8 @@ class SongMediaItem(MediaManagerItem): self.plugin.manager.save_object(new_song) self.onSongListLoad() - def generateSlideData(self, service_item, item=None, xmlVersion=False): + def generateSlideData(self, service_item, item=None, xmlVersion=False, + remote=False): log.debug(u'generateSlideData (%s:%s)' % (service_item, item)) item_id = self._getIdOfItemToGenerate(item, self.remoteSong) service_item.add_capability(ItemCapabilities.CanEdit)