forked from openlp/openlp
SlideController clean up part 3
This commit is contained in:
parent
7ec0a53d77
commit
41782ae8a7
@ -30,13 +30,8 @@ class EventReceiver(QtCore.QObject):
|
||||
QtCore.QObject.__init__(self)
|
||||
|
||||
def send_message(self, event, msg=None):
|
||||
print "send_message ", event , msg
|
||||
self.emit(QtCore.SIGNAL(event), msg)
|
||||
|
||||
# def received(self, msg=None):
|
||||
# print "received ", msg
|
||||
|
||||
|
||||
class Receiver():
|
||||
"""
|
||||
Class to allow events to be passed from different parts of the system.
|
||||
@ -56,10 +51,6 @@ class Receiver():
|
||||
def send_message(event, msg=None):
|
||||
Receiver.eventreceiver.send_message(event, msg)
|
||||
|
||||
# @staticmethod
|
||||
# def receive():
|
||||
# Receiver.eventreceiver.receive()
|
||||
|
||||
@staticmethod
|
||||
def get_receiver():
|
||||
return Receiver.eventreceiver
|
||||
|
@ -149,6 +149,11 @@ class SlideController(QtGui.QWidget):
|
||||
QtCore.SIGNAL(u'%sslide_next'% self.prefix), self.onSlideSelectedNext)
|
||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||
QtCore.SIGNAL(u'%sslide_last'% self.prefix), self.onSlideSelectedLast)
|
||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||
QtCore.SIGNAL(u'%sslide_start_loop'% self.prefix), self.onStartLoop)
|
||||
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||
QtCore.SIGNAL(u'%sslide_stop_loop'% self.prefix), self.onStopLoop)
|
||||
|
||||
|
||||
def registerToolbar(self, handle,controller):
|
||||
"""
|
||||
@ -307,6 +312,22 @@ class SlideController(QtGui.QWidget):
|
||||
self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount() - 1)
|
||||
self.onSlideSelected()
|
||||
|
||||
def onStartLoop(self, value):
|
||||
"""
|
||||
Go to the last slide.
|
||||
"""
|
||||
if self.PreviewListWidget.rowCount() > 1:
|
||||
self.timer_id = self.startTimer(int(value) * 1000)
|
||||
|
||||
def onStopLoop(self):
|
||||
"""
|
||||
Go to the last slide.
|
||||
"""
|
||||
self.killTimer(self.timer_id)
|
||||
|
||||
def timerEvent(self, event):
|
||||
if event.timerId() == self.timer_id:
|
||||
self.onSlideSelectedNext()
|
||||
|
||||
class MasterToolbar(QtCore.QObject):
|
||||
"""
|
||||
|
@ -21,7 +21,7 @@ import logging
|
||||
import os
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
from openlp.core.lib import OpenLPToolbar, translate
|
||||
from openlp.core.lib import OpenLPToolbar, translate, Receiver
|
||||
from openlp.core.ui.slidecontroller import MasterToolbar
|
||||
|
||||
class ImageToolbar(MasterToolbar):
|
||||
@ -31,77 +31,33 @@ class ImageToolbar(MasterToolbar):
|
||||
self.parent = parent
|
||||
self.Toolbar = None
|
||||
self.isLive = isLive
|
||||
self.defineToolbar()
|
||||
|
||||
def defineToolbar(self):
|
||||
# Controller toolbar
|
||||
self.Toolbar = OpenLPToolbar(self)
|
||||
sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed,
|
||||
QtGui.QSizePolicy.Fixed)
|
||||
sizeToolbarPolicy.setHorizontalStretch(0)
|
||||
sizeToolbarPolicy.setVerticalStretch(0)
|
||||
sizeToolbarPolicy.setHeightForWidth(
|
||||
self.Toolbar.sizePolicy().hasHeightForWidth())
|
||||
if self.isLive:
|
||||
pass
|
||||
# self.Toolbar.addToolbarButton(u'First Slide',
|
||||
# u':/slides/slide_first.png',
|
||||
# translate(u'SlideController', u'Move to first'),
|
||||
# self.onSlideSelectedFirst)
|
||||
# self.Toolbar.addToolbarButton(u'Previous Slide',
|
||||
# u':/slides/slide_previous.png',
|
||||
# translate(u'SlideController', u'Move to previous'),
|
||||
# self.onSlideSelectedPrevious)
|
||||
# self.Toolbar.addToolbarButton(u'Next Slide',
|
||||
# u':/slides/slide_next.png',
|
||||
# translate(u'SlideController', u'Move to next'),
|
||||
# self.onSlideSelectedNext)
|
||||
# if self.isLive:
|
||||
# self.Toolbar.addToolbarButton(u'Last Slide',
|
||||
# u':/slides/slide_last.png',
|
||||
# translate(u'SlideController', u'Move to last'),
|
||||
# self.onSlideSelectedLast)
|
||||
# self.Toolbar.addSeparator()
|
||||
# self.Toolbar.addToolbarButton(u'Close Screen',
|
||||
# u':/slides/slide_close.png',
|
||||
# translate(u'SlideController', u'Close Screen'),
|
||||
# self.onBlankScreen)
|
||||
# self.Toolbar.addSeparator()
|
||||
# self.Toolbar.addToolbarButton(u'Start Loop',
|
||||
# u':/media/media_time.png',
|
||||
# translate(u'SlideController', u'Start continuous loop'),
|
||||
# self.onStartLoop)
|
||||
# self.Toolbar.addToolbarButton(u'Stop Loop',
|
||||
# u':/media/media_stop.png',
|
||||
# translate(u'SlideController', u'Stop continuous loop'),
|
||||
# self.onStopLoop)
|
||||
def defineZone5(self):
|
||||
self.Toolbar.addSeparator()
|
||||
self.Toolbar.addToolbarButton(u'Start Loop',
|
||||
u':/media/media_time.png',
|
||||
translate(u'SlideController', u'Start continuous loop'),
|
||||
self.onStartLoop)
|
||||
self.Toolbar.addToolbarButton(u'Stop Loop',
|
||||
u':/media/media_stop.png',
|
||||
translate(u'SlideController', u'Stop continuous loop'),
|
||||
self.onStopLoop)
|
||||
self.Toolbar.addSeparator()
|
||||
self.DelaySpinBox = QtGui.QSpinBox(self.Toolbar)
|
||||
self.SpinWidget = QtGui.QWidgetAction(self.Toolbar)
|
||||
self.SpinWidget.setDefaultWidget(self.DelaySpinBox)
|
||||
self.Toolbar.addAction(self.SpinWidget)
|
||||
#self.Layout.addWidget(self.Toolbar)
|
||||
self.Toolbar.setSizePolicy(sizeToolbarPolicy)
|
||||
self.DelaySpinBox.setSuffix(translate(u'ImageSlideController', u's'))
|
||||
|
||||
def serviceLoaded(self):
|
||||
self.DelaySpinBox.setValue(self.parent.parent.ImageTab.loop_delay)
|
||||
if self.PreviewListWidget.rowCount() == 1:
|
||||
self.DelaySpinBox.setEnabled(False)
|
||||
self.DelaySpinBox.setSuffix(translate(u'ImageSlideController', u's'))
|
||||
|
||||
def onStartLoop(self):
|
||||
"""
|
||||
Go to the last slide.
|
||||
Trigger the slide controller to start to loop passing the delay
|
||||
"""
|
||||
if self.PreviewListWidget.rowCount() > 1:
|
||||
self.timer_id = self.startTimer(int(self.TimeoutSpinBox.value()) * 1000)
|
||||
Receiver().send_message(u'%sslide_start_loop' % self.prefix, self.DelaySpinBox.value())
|
||||
|
||||
def onStopLoop(self):
|
||||
"""
|
||||
Go to the last slide.
|
||||
Trigger the slide controller to stop the loop
|
||||
"""
|
||||
self.killTimer(self.timer_id)
|
||||
|
||||
def timerEvent(self, event):
|
||||
if event.timerId() == self.timer_id:
|
||||
self.onSlideSelectedNext()
|
||||
Receiver().send_message(u'%sslide_stop_loop' % self.prefix)
|
||||
|
@ -51,6 +51,8 @@ def main():
|
||||
help="Action to be undertaken")
|
||||
parser.add_option("-m", "--message",
|
||||
help="Message to be passed for the action")
|
||||
parser.add_option("-n", "--slidenext",
|
||||
help="Trigger the next slide")
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
if len(args) > 0:
|
||||
@ -62,6 +64,11 @@ def main():
|
||||
elif options.address is None:
|
||||
parser.print_help()
|
||||
parser.error("IP address missing")
|
||||
elif options.slidenext is not None:
|
||||
options.event = u'next_slide'
|
||||
options.message = u''
|
||||
text = format_message(options)
|
||||
sendData(options, text)
|
||||
else:
|
||||
text = format_message(options)
|
||||
sendData(options, text)
|
||||
|
@ -22,7 +22,7 @@ import sys
|
||||
|
||||
from PyQt4 import QtNetwork, QtGui, QtCore
|
||||
|
||||
from openlp.core.lib import Plugin, Event, EventType
|
||||
from openlp.core.lib import Plugin, Event, EventType, Receiver
|
||||
from openlp.plugins.remotes.lib import RemoteTab
|
||||
|
||||
class RemotesPlugin(Plugin):
|
||||
@ -59,7 +59,8 @@ class RemotesPlugin(Plugin):
|
||||
|
||||
if event == u'alert':
|
||||
self.event_manager.post_event(Event(u'RemotePlugin', EventType.TriggerAlert , unicode(datagram[pos + 1:])))
|
||||
|
||||
if event == u'next_slide':
|
||||
Receiver().send_message(u'live_slide_next')
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user