Fix up toolbar handing to stop toolbar going off screen

Added Media Toolbar for the media items
Added it to Preview 
Added and wired in a volume control
This commit is contained in:
Tim Bentley 2009-11-09 05:58:45 +00:00
parent bc28e3e78f
commit bf63b2ae2f
3 changed files with 44 additions and 38 deletions

View File

@ -264,18 +264,18 @@ class MainDisplay(DisplayWidget):
self.firstTime = False
else:
self.mediaObject.enqueue(Phonon.MediaSource(file))
self.onMediaPlay()
self.onMediaPlay(message[3])
def onMediaPlay(self):
def onMediaPlay(self, live=True):
log.debug(u'Play the new media')
if not self.mediaLoaded and not self.displayBlank:
if not self.mediaLoaded and not self.displayBlank and live:
self.blankDisplay()
self.firstTime = True
self.mediaLoaded = True
self.display.hide()
self.video.setFullScreen(True)
self.mediaObject.play()
if self.primary:
if self.primary and not live:
self.setVisible(True)
def onMediaPaws(self):

View File

@ -536,6 +536,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.settingsForm.postSetUp()
def versionCheck(self):
"""
Checks the version of the Application called from openlp.pyw
"""
applicationVersion = self.applicationVersion[u'Full']
version = check_latest_version(self.generalConfig, applicationVersion)
if applicationVersion != version:

View File

@ -26,6 +26,8 @@ import logging
import time
from PyQt4 import QtCore, QtGui
from PyQt4.phonon import Phonon
from openlp.core.lib import OpenLPToolbar, Receiver, ServiceItemType, \
str_to_bool, PluginConfig
@ -80,20 +82,9 @@ class SlideController(QtGui.QWidget):
u'Loop Separator',
u'Image SpinBox'
]
self.media_list = [
u'Media Start',
u'Media Stop',
u'Media Pause'
]
self.song_edit_list = [
u'Edit Song',
]
self.song_list = [
u'First Slide',
u'Previous Slide',
u'Next Slide',
u'Last Slide',
]
self.timer_id = 0
self.commandItem = None
self.songEdit = False
@ -109,10 +100,12 @@ class SlideController(QtGui.QWidget):
self.TypeLabel.setText(u'<strong>%s</strong>' %
self.trUtf8(u'Live'))
self.split = 1
prefix = u'live_slidecontroller'
else:
self.TypeLabel.setText(u'<strong>%s</strong>' %
self.trUtf8(u'Preview'))
self.split = 0
prefix = u'preview_slidecontroller'
self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter)
self.PanelLayout.addWidget(self.TypeLabel)
# Splitter
@ -190,16 +183,24 @@ class SlideController(QtGui.QWidget):
u'Image SpinBox', self.DelaySpinBox)
self.DelaySpinBox.setSuffix(self.trUtf8(u's'))
self.DelaySpinBox.setToolTip(self.trUtf8(u'Delay between slides in seconds'))
self.Toolbar.addToolbarButton(
u'Media Start', u':/slides/media_playback_start.png',
self.trUtf8(u'Start playing media'), self.onMediaPlay)
self.Toolbar.addToolbarButton(
u'Media Pause', u':/slides/media_playback_pause.png',
self.trUtf8(u'Start playing media'), self.onMediaPause)
self.Toolbar.addToolbarButton(
u'Media Stop', u':/slides/media_playback_stop.png',
self.trUtf8(u'Start playing media'), self.onMediaStop)
self.ControllerLayout.addWidget(self.Toolbar)
#Build a Media ToolBar
self.Mediabar = OpenLPToolbar(self)
self.Mediabar.addToolbarButton(
u'Media Start', u':/slides/media_playback_start.png',
self.trUtf8(u'Start playing media'), self.onMediaPlay)
self.Mediabar.addToolbarButton(
u'Media Pause', u':/slides/media_playback_pause.png',
self.trUtf8(u'Start playing media'), self.onMediaPause)
self.Mediabar.addToolbarButton(
u'Media Stop', u':/slides/media_playback_stop.png',
self.trUtf8(u'Start playing media'), self.onMediaStop)
self.volumeSlider = Phonon.VolumeSlider()
self.volumeSlider.setGeometry(QtCore.QRect(90, 260, 221, 24))
self.volumeSlider.setObjectName("volumeSlider")
self.Mediabar.addToolbarWidget(
u'Audio Volume', self.volumeSlider)
self.ControllerLayout.addWidget(self.Mediabar)
# Build the Song Toolbar
if isLive:
self.Songbar = OpenLPToolbar(self)
@ -259,13 +260,9 @@ class SlideController(QtGui.QWidget):
Receiver().send_message(u'request_spin_delay')
if isLive:
self.Toolbar.makeWidgetsInvisible(self.image_list)
self.Toolbar.makeWidgetsInvisible(self.media_list)
else:
self.Toolbar.makeWidgetsInvisible(self.song_edit_list)
if isLive:
prefix = u'live_slidecontroller'
else:
prefix = u'preview_slidecontroller'
self.Mediabar.setVisible(False)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'%s_first' % prefix), self.onSlideSelectedFirst)
QtCore.QObject.connect(Receiver.get_receiver(),
@ -291,10 +288,9 @@ class SlideController(QtGui.QWidget):
self.PreviewListWidget.setColumnWidth(0, width)
for framenumber, frame in enumerate(self.commandItem.frames):
if frame[u'text']:
break
return
self.PreviewListWidget.setRowHeight(framenumber, height)
def trackSplitter(self, tab, pos):
"""
Splitter between the slide list and the preview panel
@ -333,10 +329,10 @@ class SlideController(QtGui.QWidget):
"""
Allows the live toolbar to be customised
"""
self.Toolbar.setVisible(True)
self.Songbar.setVisible(False)
self.Mediabar.setVisible(False)
self.Toolbar.makeWidgetsInvisible(self.image_list)
self.Toolbar.makeWidgetsInvisible(self.media_list)
self.Toolbar.makeWidgetsVisible(self.song_list)
if item.service_item_type == ServiceItemType.Text:
self.Toolbar.makeWidgetsInvisible(self.image_list)
if item.name == u'Songs' and \
@ -360,17 +356,24 @@ class SlideController(QtGui.QWidget):
self.Toolbar.makeWidgetsVisible(self.image_list)
elif item.service_item_type == ServiceItemType.Command and \
item.name == u'Media':
self.Toolbar.makeWidgetsInvisible(self.song_list)
self.Toolbar.makeWidgetsVisible(self.media_list)
self.Toolbar.setVisible(False)
self.Mediabar.setVisible(True)
self.volumeSlider.setAudioOutput(self.parent.mainDisplay.audio)
def enablePreviewToolBar(self, item):
"""
Allows the Preview toolbar to be customised
"""
self.Toolbar.setVisible(True)
self.Mediabar.setVisible(False)
self.Toolbar.makeWidgetsInvisible(self.song_edit_list)
if (item.name == u'Songs' or item.name == u'Custom') and item.fromPlugin:
self.Toolbar.makeWidgetsVisible(self.song_edit_list)
else:
self.Toolbar.makeWidgetsInvisible(self.song_edit_list)
elif item.service_item_type == ServiceItemType.Command and \
item.name == u'Media':
self.Toolbar.setVisible(False)
self.Mediabar.setVisible(True)
self.volumeSlider.setAudioOutput(self.parent.mainDisplay.audio)
def addServiceItem(self, item):
"""
@ -627,7 +630,7 @@ class SlideController(QtGui.QWidget):
Receiver().send_message(u'%s_pause'% self.commandItem.name.lower())
def onMediaPlay(self):
Receiver().send_message(u'%s_play'% self.commandItem.name.lower())
Receiver().send_message(u'%s_play'% self.commandItem.name.lower(), self.isLive)
def onMediaStop(self):
Receiver().send_message(u'%s_stop'% self.commandItem.name.lower())