From 7ec0a53d77e66c0908eecf8ea9ad9e6713813dfe Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 24 Aug 2009 05:30:04 +0100 Subject: [PATCH] SlideController clean up part 2 --- openlp.pyw | 4 +- openlp/core/lib/eventreceiver.py | 10 ++-- openlp/core/ui/maindisplay.py | 4 +- openlp/core/ui/slidecontroller.py | 59 +++++++++++++--------- openlp/plugins/bibles/lib/bibleCSVimpl.py | 4 +- openlp/plugins/bibles/lib/bibleOSISimpl.py | 4 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- 7 files changed, 51 insertions(+), 36 deletions(-) diff --git a/openlp.pyw b/openlp.pyw index 81c631fdf..4eda4d1e2 100755 --- a/openlp.pyw +++ b/openlp.pyw @@ -28,7 +28,7 @@ from openlp.core.lib import Receiver from openlp.core.resources import * from openlp.core.ui import MainWindow, SplashScreen -logging.basicConfig(level=logging.INFO, +logging.basicConfig(level=logging.DEBUG, format=u'%(asctime)s:%(msecs)3d %(name)-15s %(levelname)-8s %(message)s', datefmt=u'%m-%d %H:%M:%S', filename=u'openlp.log', filemode=u'w') @@ -52,7 +52,7 @@ class OpenLP(QtGui.QApplication): pass #provide a listener for widgets to reqest a screen update. QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'openlpprocessevents'), self.processEvents) + QtCore.SIGNAL(u'process_events'), self.processEvents) self.setApplicationName(u'openlp.org') self.setApplicationVersion(u'1.9.0') self.splash = SplashScreen(self.applicationVersion()) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index cc1178d11..eb78aa445 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -33,8 +33,8 @@ class EventReceiver(QtCore.QObject): print "send_message ", event , msg self.emit(QtCore.SIGNAL(event), msg) - def received(self, msg=None): - print "received ", msg +# def received(self, msg=None): +# print "received ", msg class Receiver(): @@ -56,9 +56,9 @@ class Receiver(): def send_message(event, msg=None): Receiver.eventreceiver.send_message(event, msg) - @staticmethod - def receive(): - Receiver.eventreceiver.receive() +# @staticmethod +# def receive(): +# Receiver.eventreceiver.receive() @staticmethod def get_receiver(): diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 78f0caa2b..bf5cfaa77 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -21,7 +21,7 @@ import logging from PyQt4 import QtCore, QtGui from time import sleep -from openlp.core.lib import translate, EventManager, Event, EventType +from openlp.core.lib import translate, EventManager, Event, EventType, Receiver class MainDisplay(QtGui.QWidget): """ @@ -60,6 +60,8 @@ class MainDisplay(QtGui.QWidget): self.timer_id = 0 # Register the main form as an event consumer. self.parent.EventManager.register(self) + QtCore.QObject.connect(Receiver.get_receiver(), + QtCore.SIGNAL(u'live_slide_blank'), self.blankDisplay) def handle_event(self, event): """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 50d0e211d..8df86d7a5 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -66,6 +66,9 @@ class SlideController(QtGui.QWidget): self.toolbarList = {} QtGui.QWidget.__init__(self, parent) self.isLive = isLive + self.prefix = u'preview_' + if isLive: + self.prefix = u'live_' self.parent = parent self.Panel = QtGui.QWidget(parent.ControlSplitter) self.Splitter = QtGui.QSplitter(self.Panel) @@ -139,18 +142,13 @@ class SlideController(QtGui.QWidget): QtCore.SIGNAL(u'activated(QModelIndex)'), self.onSlideSelected) # Window Event Handlers QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_first'), self.onSlideSelectedFirst) + QtCore.SIGNAL(u'%sslide_first'% self.prefix), self.onSlideSelectedFirst) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_previous'), self.onSlideSelectedPrevious) + QtCore.SIGNAL(u'%sslide_previous'% self.prefix), self.onSlideSelectedPrevious) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_next'), self.onSlideSelectedNext) + QtCore.SIGNAL(u'%sslide_next'% self.prefix), self.onSlideSelectedNext) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_last'), self.onSlideSelectedLast) - - # Add Late Arrivals -# self.BaseToolbar.PreviewListWidget = self.PreviewListWidget -# self.BaseToolbar.SlidePreview = self.SlidePreview -# self.BaseToolbar.mainDisplay = self.parent.mainDisplay + QtCore.SIGNAL(u'%sslide_last'% self.prefix), self.onSlideSelectedLast) def registerToolbar(self, handle,controller): """ @@ -175,9 +173,6 @@ class SlideController(QtGui.QWidget): toolbar = self.toolbarList[handle.lower()] except: toolbar = self.toolbarList[u'master'] -# toolbar.PreviewListWidget = self.PreviewListWidget -# toolbar.SlidePreview = self.SlidePreview -# toolbar.mainDisplay = self.parent.mainDisplay return toolbar def addServiceItem(self, item): @@ -243,12 +238,6 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setFocus() #Screen event methods - def onBlankScreen(self): - """ - Blank the screen. - """ - self.mainDisplay.blankDisplay() - def onSlideSelected(self): """ Generate the preview when you click on a slide. @@ -328,11 +317,19 @@ class MasterToolbar(QtCore.QObject): QtCore.QObject.__init__(self) self.PreviewListWidget = QtGui.QListWidget() self.isLive = isLive + self.prefix = u'preview_' + if isLive: + self.prefix = u'live_' def getToolbar(self): #define toolbar here as it needs to be redefined each time #as the clear destroys it. self.defineToolbar() + self.defineZone1() + self.defineZone2() + self.defineZone3() + self.defineZone4() + self.defineZone5() return self.Toolbar def defineToolbar(self): @@ -346,6 +343,11 @@ class MasterToolbar(QtCore.QObject): self.Toolbar.sizePolicy().hasHeightForWidth()) self.Toolbar.setSizePolicy(sizeToolbarPolicy) + def defineZone1(self): + #Dummy Zone + pass + + def defineZone2(self): if self.isLive: self.Toolbar.addToolbarButton(u'First Slide', u':/slides/slide_first.png', @@ -364,19 +366,30 @@ class MasterToolbar(QtCore.QObject): u':/slides/slide_last.png', translate(u'SlideController', u'Move to last'), self.onSlideLast) + + def defineZone3(self): + #Dummy Zone + pass + + def defineZone4(self): + if self.isLive: self.Toolbar.addSeparator() self.Toolbar.addToolbarButton(u'Close Screen', u':/slides/slide_close.png', translate(u'SlideController', u'Close Screen'), self.onSlideBlank) + def defineZone5(self): + #Dummy Zone + pass + def onSlideFirst(self): - Receiver().send_message(u'slide_first') + Receiver().send_message(u'%sslide_first'% self.prefix) def onSlidePrevious(self): - Receiver().send_message(u'slide_previous') + Receiver().send_message(u'%sslide_previous'% self.prefix) def onSlideNext(self): - Receiver().send_message(u'slide_next') + Receiver().send_message(u'%sslide_next'% self.prefix) def onSlideLast(self): - Receiver().send_message(u'slide_last') + Receiver().send_message(u'%sslide_last' % self.prefix) def onSlideBlank(self): - Receiver().send_message(u'slide_blank') + Receiver().send_message(u'%sslide_blank' % self.prefix) diff --git a/openlp/plugins/bibles/lib/bibleCSVimpl.py b/openlp/plugins/bibles/lib/bibleCSVimpl.py index e97c4173c..763044a6f 100644 --- a/openlp/plugins/bibles/lib/bibleCSVimpl.py +++ b/openlp/plugins/bibles/lib/bibleCSVimpl.py @@ -60,7 +60,7 @@ class BibleCSVImpl(BibleCommon): count += 1 #Flush the screen events if count % 3 == 0: - Receiver().send_message(u'openlpprocessevents') + Receiver().send_message(u'process_events') count = 0 count = 0 @@ -83,5 +83,5 @@ class BibleCSVImpl(BibleCommon): count += 1 #Every x verses repaint the screen if count % 3 == 0: - Receiver().send_message(u'openlpprocessevents') + Receiver().send_message(u'process_events') count = 0 diff --git a/openlp/plugins/bibles/lib/bibleOSISimpl.py b/openlp/plugins/bibles/lib/bibleOSISimpl.py index b59e7e5f3..68be69662 100644 --- a/openlp/plugins/bibles/lib/bibleOSISimpl.py +++ b/openlp/plugins/bibles/lib/bibleOSISimpl.py @@ -149,13 +149,13 @@ class BibleOSISImpl(): self.abbrevOfBible[p[0]], testament) dialogobject.incrementProgressBar( self.booksOfBible[p[0]]) - Receiver().send_message(u'openlpprocessevents') + Receiver().send_message(u'process_events') count = 0 self.bibledb.add_verse(book.id, p[1], p[2], text) count += 1 #Every 3 verses repaint the screen if count % 3 == 0: - Receiver().send_message(u'openlpprocessevents') + Receiver().send_message(u'process_events') count = 0 def remove_block(self, start_tag, end_tag, text): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index ebb55b578..791a8f54b 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -252,7 +252,7 @@ class BibleMediaItem(MediaManagerItem): def setQuickMsg2(self, text): self.QuickMsg2.setText(translate(u'BibleMediaItem', unicode(text))) - Receiver().send_message(u'openlpprocessevents') + Receiver().send_message(u'process_events') #minor delay to get the events processed time.sleep(0.5)