diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index df275dd20..6a79958bd 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -550,6 +550,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): log.info(u'Load data from Settings') self.settingsForm.postSetUp() + def versionCheck(self, version): """ Checks the version of the Application called from openlp.pyw diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 0e6cba605..f1a41899a 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -102,6 +102,7 @@ class ServiceManager(QtGui.QWidget): self.serviceItems = [] self.serviceName = u'' self.suffixes = u'' + self.viewers = u'' self.droppos = 0 #is a new service and has not been saved self.isNew = True @@ -232,6 +233,9 @@ class ServiceManager(QtGui.QWidget): def supportedSuffixes(self, suffix): self.suffixes = u'%s %s' % (self.suffixes, suffix) + def supportedViewers(self, viewer): + self.viewers = u'%s %s' % (self.viewers, viewer) + def contextMenu(self, point): item = self.ServiceManagerList.itemAt(point) if item is None: @@ -686,6 +690,8 @@ class ServiceManager(QtGui.QWidget): type = serviceItem._raw_frames[0][u'title'].split(u'.')[1] if type not in self.suffixes: serviceItem.isValid = False + if serviceItem.title not in self.viewers: + serviceItem.isValid = False def cleanUp(self): """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index c0d0d915f..d01babbfe 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -339,16 +339,16 @@ class SlideController(QtGui.QWidget): QtCore.SIGNAL(u'slidecontroller_%s_change' % self.type_prefix), self.onSlideChange) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_set' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_set' % self.type_prefix), self.onSlideSelectedIndex) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_blank' % self.type_prefix), self.onSlideBlank) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_unblank' % self.type_prefix), self.onSlideUnblank) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_text_request' % self.type_prefix), self.onTextRequest) QtCore.QObject.connect(self.Splitter, QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter) @@ -486,6 +486,7 @@ class SlideController(QtGui.QWidget): Display the slide number passed """ log.debug(u'processManagerItem') + self.onStopLoop() #If old item was a command tell it to stop if self.serviceItem and self.serviceItem.is_command(): self.onMediaStop() @@ -589,8 +590,8 @@ class SlideController(QtGui.QWidget): data_item[u'selected'] = \ (self.PreviewListWidget.currentRow() == framenumber) data.append(data_item) - Receiver.send_message(u'slidecontroller_%s_text_response' - % self.type_prefix, data) + Receiver.send_message(u'slidecontroller_%s_text_response' + % self.type_prefix, data) #Screen event methods def onSlideSelectedFirst(self): @@ -614,7 +615,7 @@ class SlideController(QtGui.QWidget): index = int(message[0]) if not self.serviceItem: return - Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive, index]) if self.serviceItem.is_command(): self.updatePreview() @@ -827,7 +828,10 @@ class SlideController(QtGui.QWidget): """ Stop the timer loop running """ - self.killTimer(self.timer_id) + if self.timer_id != 0: + self.killTimer(self.timer_id) + self.timer_id = 0 + def timerEvent(self, event): """ diff --git a/openlp/plugins/media/mediaplugin.py b/openlp/plugins/media/mediaplugin.py index dcefa20c1..1b1d9b984 100644 --- a/openlp/plugins/media/mediaplugin.py +++ b/openlp/plugins/media/mediaplugin.py @@ -55,6 +55,7 @@ class MediaPlugin(Plugin): self.video_list, mimetype = self._add_to_list(self.video_list, type, mimetype) self.service_manager.supportedSuffixes(self.audio_list) self.service_manager.supportedSuffixes(self.video_list) + self.service_manager.supportedViewers(self.name) def _add_to_list(self, list, value, type): if len(value) == 2: diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 3ae3136d5..06a5e276d 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -71,6 +71,7 @@ class PresentationMediaItem(MediaManagerItem): if self.controllers[controller].enabled: types = self.controllers[controller].supports + \ self.controllers[controller].alsosupports + self.parent.service_manager.supportedViewers(controller) for type in types: if fileType.find(type) == -1: fileType += u'*%s ' % type