diff --git a/openlp/core/ui/media/mediacontroller.py b/openlp/core/ui/media/mediacontroller.py index be6e3ce52..833c798ef 100644 --- a/openlp/core/ui/media/mediacontroller.py +++ b/openlp/core/ui/media/mediacontroller.py @@ -76,6 +76,11 @@ class MediaController(object): QtCore.SIGNAL(u'media_unblank'), self.video_unblank) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'media_overrideApi'), self.override_api) + # Signals for background video + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'songs_hide'), self.video_hide) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'songs_unblank'), self.video_unblank) def register_controllers(self, controller): """ @@ -275,11 +280,14 @@ class MediaController(object): 'Unsupported File'))) return False # now start playing - if self.video_play([controller]): + if self.video_play([controller], False): self.video_pause([controller]) self.video_seek([controller, [0]]) - if controller.isLive and QtCore.QSettings().value(u'general/auto unblank', - QtCore.QVariant(False)).toBool(): + if controller.isLive and \ + (QtCore.QSettings().value(u'general/auto unblank', + QtCore.QVariant(False)).toBool() or \ + controller.media_info.is_background == True) or \ + controller.isLive == False: self.video_play([controller]) self.set_controls_visible(controller, True) log.debug(u'use %s controller' % self.curDisplayMediaAPI[display]) @@ -332,7 +340,7 @@ class MediaController(object): # no valid api found return False - def video_play(self, msg): + def video_play(self, msg, status=True): """ Responds to the request to play a loaded video """ @@ -345,7 +353,8 @@ class MediaController(object): controller.hideMenu.defaultAction().trigger() if not self.curDisplayMediaAPI[display].play(display): return False - self.curDisplayMediaAPI[display].set_visible(display, True) + if status: + self.curDisplayMediaAPI[display].set_visible(display, True) # Start Timer for ui updates if not self.timer.isActive(): self.timer.start() @@ -452,6 +461,10 @@ class MediaController(object): if self.curDisplayMediaAPI[display].play(display): self.curDisplayMediaAPI[display] \ .set_visible(display, True) + # Start Timer for ui updates + if not self.timer.isActive(): + self.timer.start() + def get_audio_extensions_list(self): audio_list = [] diff --git a/openlp/core/ui/media/phononapi.py b/openlp/core/ui/media/phononapi.py index ff0192bc2..4dbbd5b3c 100644 --- a/openlp/core/ui/media/phononapi.py +++ b/openlp/core/ui/media/phononapi.py @@ -39,7 +39,7 @@ log = logging.getLogger(__name__) class PhononAPI(MediaAPI): """ - A specialised version of the MediaAPI class, + A specialised version of the MediaAPI class, which provides a Phonon display. """ @@ -170,7 +170,6 @@ class PhononAPI(MediaAPI): int(display.mediaObject.totalTime()/1000) controller.seekSlider.setMaximum(controller.media_info.length*1000) self.state = MediaState.Playing - #self.set_visible(display, True) return True else: return False diff --git a/openlp/core/ui/media/webkitapi.py b/openlp/core/ui/media/webkitapi.py index 48a5a211b..40b443f78 100644 --- a/openlp/core/ui/media/webkitapi.py +++ b/openlp/core/ui/media/webkitapi.py @@ -115,8 +115,9 @@ video_js = u""" current_video = '2'; else current_video = '1'; - show_video('play'); show_video('load'); + show_video('play'); + show_video('setVisible',null,null,null,'visible'); break; case 'close': show_video('stop'); diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 9818e1bae..c7b693bc8 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -539,12 +539,15 @@ class SlideController(Controller): if item.is_capable(ItemCapabilities.CanEdit) and item.from_plugin: self.toolbar.makeWidgetsVisible(self.songEditList) elif item.is_media(): - self.toolbar.setVisible(False) + #self.toolbar.setVisible(False) self.mediabar.setVisible(True) + self.previousItem.setVisible(False) + self.nextItem.setVisible(False) if not item.is_media(): # Work-around for OS X, hide and then show the toolbar # See bug #791050 - self.toolbar.show() + self.previousItem.setVisible(True) + self.nextItem.setVisible(True) self.toolbar.show() def refreshServiceItem(self):