From e463e83ed5238f86350266582255b9cfd5a845a5 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 19 Apr 2010 17:45:13 +0100 Subject: [PATCH 1/7] Icon fixes --- openlp/core/lib/mediamanageritem.py | 5 ++++- openlp/plugins/images/lib/mediaitem.py | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 7ac2a6f0a..fdc81092f 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -362,6 +362,9 @@ class MediaManagerItem(QtGui.QWidget): #if file updated rebuild icon if filedate > thumbdate: self.IconFromFile(file, thumb) + if os.path.exists(file): + return True + return False def IconFromFile(self, file, thumb): icon = build_icon(unicode(file)) @@ -471,4 +474,4 @@ class MediaManagerItem(QtGui.QWidget): if self.generateSlideData(service_item, item): return service_item else: - return None \ No newline at end of file + return None diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 6fbf66022..914a6ce20 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -124,8 +124,10 @@ class ImageMediaItem(MediaManagerItem): (path, filename) = os.path.split(unicode(file)) thumb = os.path.join(self.servicePath, filename) if os.path.exists(thumb): - self.validate(file, thumb) - icon = build_icon(thumb) + if self.validate(file, thumb): + icon = build_icon(thumb) + else: + icon = build_icon(u':/general/general_delete.png') else: icon = self.IconFromFile(file, thumb) item_name = QtGui.QListWidgetItem(filename) From 8242bac82f2b2bc575df11cac31fdd5d671dc1c5 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 19 Apr 2010 19:20:44 +0100 Subject: [PATCH 2/7] Presentation icons --- openlp/core/lib/mediamanageritem.py | 10 ++++----- openlp/plugins/presentations/lib/mediaitem.py | 21 ++++++++++++++++++- .../presentations/presentationplugin.py | 1 - 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index fdc81092f..05ce36ad1 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -357,12 +357,12 @@ class MediaManagerItem(QtGui.QWidget): Validates to see if the file still exists or thumbnail is up to date """ - filedate = os.stat(file).st_mtime - thumbdate = os.stat(thumb).st_mtime - #if file updated rebuild icon - if filedate > thumbdate: - self.IconFromFile(file, thumb) if os.path.exists(file): + filedate = os.stat(file).st_mtime + thumbdate = os.stat(thumb).st_mtime + #if file updated rebuild icon + if filedate > thumbdate: + self.IconFromFile(file, thumb) return True return False diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 79c8600f0..c58345eda 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -28,7 +28,7 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import MediaManagerItem, BaseListWithDnD +from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon from openlp.plugins.presentations.lib import MessageListener log = logging.getLogger(__name__) @@ -103,6 +103,10 @@ class PresentationMediaItem(MediaManagerItem): self.PageLayout.addWidget(self.PresentationWidget) def initialise(self): + self.servicePath = os.path.join( + self.parent.config.get_data_path(), u'.thumbnails') + if not os.path.exists(self.servicePath): + os.mkdir(self.servicePath) list = self.parent.config.load_list(u'presentations') self.loadList(list) for item in self.controllers: @@ -128,8 +132,23 @@ class PresentationMediaItem(MediaManagerItem): 'A presentation with that filename already exists.'), QtGui.QMessageBox.Ok) else: + icon = None + for controller in self.controllers: + thumb = os.path.join(self.parent.config.get_data_path(), controller, filename, u'slide1.png') + preview = os.path.join(self.parent.config.get_data_path(), controller, u'thumbnails', filename, u'slide1.png') + if os.path.exists(preview): + if os.path.exists(thumb): + if self.validate(preview, thumb): + icon = build_icon(thumb) + else: + icon = build_icon(u':/general/general_delete.png') + else: + icon = self.IconFromFile(preview, thumb) + if not icon: + icon = build_icon(u':/general/general_delete.png') item_name = QtGui.QListWidgetItem(filename) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) + item_name.setIcon(icon) self.ListView.addItem(item_name) def onDeleteClick(self): diff --git a/openlp/plugins/presentations/presentationplugin.py b/openlp/plugins/presentations/presentationplugin.py index 00a83fe4b..a2d01b1a5 100644 --- a/openlp/plugins/presentations/presentationplugin.py +++ b/openlp/plugins/presentations/presentationplugin.py @@ -58,7 +58,6 @@ class PresentationPlugin(Plugin): if self.controllers[controller].enabled: presentation_types.append({u'%s' % controller : self.controllers[controller].supports}) self.controllers[controller].start_process() - Receiver.send_message( u'presentation types', presentation_types) From 29e4d4cf1adf434d3fbf9023b43a3e0d923fbd02 Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Tue, 20 Apr 2010 23:00:55 +0100 Subject: [PATCH 3/7] event fixes --- openlp/core/lib/mediamanageritem.py | 6 ++-- openlp/core/ui/maindisplay.py | 34 +++++++++---------- openlp/core/ui/servicemanager.py | 13 ++----- openlp/core/ui/slidecontroller.py | 18 +++++----- openlp/core/ui/thememanager.py | 5 ++- openlp/plugins/alerts/lib/alertsmanager.py | 4 +-- openlp/plugins/custom/forms/editcustomform.py | 2 +- openlp/plugins/custom/lib/mediaitem.py | 2 +- .../presentations/lib/messagelistener.py | 6 ++-- openlp/plugins/remotes/remoteplugin.py | 10 +++--- openlp/plugins/songs/forms/editsongform.py | 2 +- openlp/plugins/songs/lib/mediaitem.py | 2 +- 12 files changed, 48 insertions(+), 56 deletions(-) diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 7ac2a6f0a..c37336057 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -450,10 +450,10 @@ class MediaManagerItem(QtGui.QWidget): self.trUtf8('You must select a existing service item to add to.')) elif self.title.lower() == service_item.name.lower(): self.generateSlideData(service_item) - self.parent.service_manager.addServiceItem(service_item) + self.parent.service_manager.addServiceItem(service_item, + replace=True) else: #Turn off the remote edit update message indicator - self.parent.service_manager.remoteEditTriggered = False QtGui.QMessageBox.information(self, self.trUtf8('Invalid Service Item'), self.trUtf8(unicode('You must select a %s service item.' % self.title))) @@ -471,4 +471,4 @@ class MediaManagerItem(QtGui.QWidget): if self.generateSlideData(service_item, item): return service_item else: - return None \ No newline at end of file + return None diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 92312429f..396989b22 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -46,25 +46,25 @@ class DisplayWidget(QtGui.QWidget): self.parent = parent self.hotkey_map = { QtCore.Qt.Key_Return: 'servicemanager_next_item', - QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_Space: 'slidecontroller_live_go_next_noloop', + QtCore.Qt.Key_Enter: 'slidecontroller_live_go_next_noloop', QtCore.Qt.Key_0: 'servicemanager_next_item', - QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} + QtCore.Qt.Key_Backspace: 'slidecontroller_live_go_previous_noloop'} def keyPressEvent(self, event): if type(event) == QtGui.QKeyEvent: #here accept the event and do something if event.key() == QtCore.Qt.Key_Up: - Receiver.send_message(u'slidecontroller_live_previous') + Receiver.send_message(u'slidecontroller_go_live_previous') event.accept() elif event.key() == QtCore.Qt.Key_Down: - Receiver.send_message(u'slidecontroller_live_next') + Receiver.send_message(u'slidecontroller_go_live_next') event.accept() elif event.key() == QtCore.Qt.Key_PageUp: - Receiver.send_message(u'slidecontroller_live_first') + Receiver.send_message(u'slidecontroller_go_live_first') event.accept() elif event.key() == QtCore.Qt.Key_PageDown: - Receiver.send_message(u'slidecontroller_live_last') + Receiver.send_message(u'slidecontroller_go_live_last') event.accept() elif event.key() in self.hotkey_map: Receiver.send_message(self.hotkey_map[event.key()]) @@ -113,9 +113,9 @@ class MainDisplay(DisplayWidget): self.hasTransition = False self.mediaBackground = False QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_live_hide'), self.hideDisplay) + QtCore.SIGNAL(u'maindisplay_hide'), self.hideDisplay) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_live_show'), self.showDisplay) + QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_live_mediastart'), self.onMediaQueue) @@ -191,7 +191,7 @@ class MainDisplay(DisplayWidget): if not self.primary: self.setVisible(True) self.showFullScreen() - Receiver.send_message(u'slide_live_active') + Receiver.send_message(u'maindisplay_active') def addImageWithText(self, frame): log.debug(u'addImageWithText') @@ -284,25 +284,25 @@ class VideoWidget(QtGui.QWidget): self.parent = parent self.hotkey_map = { QtCore.Qt.Key_Return: 'servicemanager_next_item', - QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', - QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_Space: 'slidecontroller_live_go_next_noloop', + QtCore.Qt.Key_Enter: 'slidecontroller_live_go_next_noloop', QtCore.Qt.Key_0: 'servicemanager_next_item', - QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} + QtCore.Qt.Key_Backspace: 'slidecontroller_live_go_previous_noloop'} def keyPressEvent(self, event): if type(event) == QtGui.QKeyEvent: #here accept the event and do something if event.key() == QtCore.Qt.Key_Up: - Receiver.send_message(u'slidecontroller_live_previous') + Receiver.send_message(u'slidecontroller_live_go_previous') event.accept() elif event.key() == QtCore.Qt.Key_Down: - Receiver.send_message(u'slidecontroller_live_next') + Receiver.send_message(u'slidecontroller_live_go_next') event.accept() elif event.key() == QtCore.Qt.Key_PageUp: - Receiver.send_message(u'slidecontroller_live_first') + Receiver.send_message(u'slidecontroller_live_go_first') event.accept() elif event.key() == QtCore.Qt.Key_PageDown: - Receiver.send_message(u'slidecontroller_live_last') + Receiver.send_message(u'slidecontroller_live_go_last') event.accept() elif event.key() in self.hotkey_map: Receiver.send_message(self.hotkey_map[event.key()]) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 11ba067b0..9f0370e95 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -105,7 +105,6 @@ class ServiceManager(QtGui.QWidget): self.isNew = True #Indicates if remoteTriggering is active. If it is the next addServiceItem call #will replace the currently selected one. - self.remoteEditTriggered = False self.serviceNoteForm = ServiceNoteForm() self.serviceItemEditForm = ServiceItemEditForm() #start with the layout @@ -187,8 +186,6 @@ class ServiceManager(QtGui.QWidget): QtCore.SIGNAL(u'itemExpanded(QTreeWidgetItem*)'), self.expanded) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'theme_update_list'), self.updateThemeList) - QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'servicemanager_edit_clear'), self.onRemoteEditClear) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'servicemanager_next_item'), self.nextItem) QtCore.QObject.connect(Receiver.get_receiver(), @@ -638,7 +635,7 @@ class ServiceManager(QtGui.QWidget): #does not impact the saved song so True may also be valid self.parent.serviceChanged(False, self.serviceName) - def addServiceItem(self, item, rebuild=False, expand=True): + def addServiceItem(self, item, rebuild=False, expand=True, replace=False): """ Add a Service item to the list @@ -648,10 +645,9 @@ class ServiceManager(QtGui.QWidget): """ sitem, count = self.findServiceItem() item.render() - if self.remoteEditTriggered: + if replace: item.merge(self.serviceItems[sitem][u'service_item']) self.serviceItems[sitem][u'service_item'] = item - self.remoteEditTriggered = False self.repaintServiceList(sitem + 1, 0) self.parent.LiveController.replaceServiceManagerItem(item) else: @@ -694,8 +690,6 @@ class ServiceManager(QtGui.QWidget): if item == -1: return False else: - #Switch on remote edit update functionality. - self.remoteEditTriggered = True return self.serviceItems[item][u'service_item'] def makeLive(self): @@ -725,9 +719,6 @@ class ServiceManager(QtGui.QWidget): self.serviceItems[item][u'service_item'].name, u'L:%s' % self.serviceItems[item][u'service_item'].editId ) - def onRemoteEditClear(self): - self.remoteEditTriggered = False - def findServiceItem(self): """ Finds a ServiceItem in the list diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 1d36bbdb7..2f31642c9 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -197,7 +197,7 @@ class SlideController(QtGui.QWidget): u'Hide screen', u':/slides/slide_desktop.png', self.trUtf8('Hide Screen'), self.onHideDisplay, True) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_live_blank'), self.blankScreen) + QtCore.SIGNAL(u'maindisplay_blank'), self.blankScreen) if not self.isLive: self.Toolbar.addToolbarSeparator(u'Close Separator') self.Toolbar.addToolbarButton( @@ -318,7 +318,7 @@ class SlideController(QtGui.QWidget): QtCore.SIGNAL(u'slidecontroller_%s_go_first' % self.type_prefix), self.onSlideSelectedFirst) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'%slidecontroller_s_go_next' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_go_next' % self.type_prefix), self.onSlideSelectedNext) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_%s_go_previous' % self.type_prefix), @@ -562,10 +562,9 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return + Receiver.send_message(u'slidecontroller_first', + [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): - Receiver.send_message(u'slidecontroller_%s_first' % - self.type_prefix, - self.serviceItem.name.lower(), self.isLive) self.updatePreview() else: self.PreviewListWidget.selectRow(0) @@ -704,8 +703,8 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return - Receiver.send_message(u'slidecontroller_%s_previous' % - self.type_prefix, [self.serviceItem]) + Receiver.send_message(u'slidecontroller_previous', + [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): self.updatePreview() else: @@ -756,8 +755,9 @@ class SlideController(QtGui.QWidget): def onEditSong(self): self.songEdit = True - Receiver.send_message(u'slidecontroller_edit', - [self.serviceItem]) + Receiver.send_message(u'%s_edit' % + self.serviceItem.name.lower(), u'L:%s' % + self.serviceItem.editId) def onGoLive(self): """ diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 2867ed84b..a651c6211 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -147,8 +147,7 @@ class ThemeManager(QtGui.QWidget): name = u'%s (%s)' % (self.global_theme, self.trUtf8('default')) self.ThemeListWidget.item(count).setText(name) self.config.set_config(u'global theme', self.global_theme) - Receiver.send_message( - u'theme_update_global', self.global_theme) + Receiver.send_message(u'theme_update_global', self.global_theme) self.pushThemes() def onAddTheme(self): @@ -564,4 +563,4 @@ class ThemeManager(QtGui.QWidget): theme.font_main_y = int(theme.font_main_y.strip()) #theme.theme_mode theme.theme_name = theme.theme_name.strip() - #theme.theme_version \ No newline at end of file + #theme.theme_version diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py index 7f3d7a654..7ca7fe084 100644 --- a/openlp/plugins/alerts/lib/alertsmanager.py +++ b/openlp/plugins/alerts/lib/alertsmanager.py @@ -44,9 +44,9 @@ class AlertsManager(QtCore.QObject): self.timer_id = 0 self.alertList = [] QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slide_live_active'), self.generateAlert) + QtCore.SIGNAL(u'maindisplay_active'), self.generateAlert) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'alert_text'), self.displayAlert) + QtCore.SIGNAL(u'alerts_text'), self.displayAlert) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) diff --git a/openlp/plugins/custom/forms/editcustomform.py b/openlp/plugins/custom/forms/editcustomform.py index ff757d638..eff6bc835 100644 --- a/openlp/plugins/custom/forms/editcustomform.py +++ b/openlp/plugins/custom/forms/editcustomform.py @@ -135,7 +135,7 @@ class EditCustomForm(QtGui.QDialog, Ui_customEditDialog): self.previewButton.setVisible(True) def closePressed(self): - Receiver.send_message(u'servicemanager_edit_clear') + Receiver.send_message(u'custom_edit_clear') self.close() def accept(self): diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index a22c211e6..c79452c20 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -60,7 +60,7 @@ class CustomMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_edit'), self.onRemoteEdit) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'servicemanager_edit_clear' ), self.onRemoteEditClear) + QtCore.SIGNAL(u'custom_edit_clear' ), self.onRemoteEditClear) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'custom_load_list'), self.initialise) QtCore.QObject.connect(Receiver.get_receiver(), diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index beede4019..37bfa564d 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -55,7 +55,7 @@ class Controller(object): self.doc.start_presentation() if isBlank: self.blank() - Receiver.send_message(u'live_slide_hide') + Receiver.send_message(u'maindisplay_hide') self.doc.slidenumber = 0 def activate(self): @@ -144,7 +144,7 @@ class Controller(object): """ log.debug(u'Live = %s, shutdown' % self.isLive) if self.isLive: - Receiver.send_message(u'live_slide_show') + Receiver.send_message(u'maindisplay_show') self.doc.close_presentation() self.doc = None #self.doc.slidenumber = 0 @@ -283,7 +283,7 @@ class MessageListener(object): if name != u'presentation': return if isLive: - Receiver.send_message(u'slide_live_show') + Receiver.send_message(u'maindisplay_show') self.liveHandler.shutdown() else: self.previewHandler.shutdown() diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index 4e01e43ee..ede72c954 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -73,10 +73,12 @@ class RemotesPlugin(Plugin): pos = datagram.find(u':') event = unicode(datagram[:pos].lower()) if event == u'alert': - Receiver.send_message(u'alert_text', unicode(datagram[pos + 1:])) - if event == u'next_slide': - Receiver.send_message(u'live_slide_next') - + Receiver.send_message(u'alerts_text', unicode(datagram[pos + 1:])) + elif event == u'next_slide': + Receiver.send_message(u'slidecontroller_live_go_next') + else: + Receiver.send_message(event, unicode(datagram[pos + 1:])) + def about(self): about_text = self.trUtf8('Remote Plugin
This plugin ' 'provides the ability to send messages to a running version of ' diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 176e3c2f6..45940623e 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -467,7 +467,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): Receiver.send_message(u'songs_preview') def closePressed(self): - Receiver.send_message(u'servicemanager_edit_clear') + Receiver.send_message(u'songs_edit_clear') self.close() def accept(self): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index fabf1cc64..fb3f9c3e0 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -130,7 +130,7 @@ class SongMediaItem(MediaManagerItem): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'songs_edit'), self.onRemoteEdit) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'servicemanager_edit_clear'), self.onRemoteEditClear) + QtCore.SIGNAL(u'songs_edit_clear'), self.onRemoteEditClear) def configUpdated(self): self.searchAsYouType = str_to_bool( From 9d0c1c01f353aa66395fd00173f7dfa8d5110f50 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 21 Apr 2010 18:21:56 +0100 Subject: [PATCH 4/7] Alerts cleanup and fixes --- openlp/plugins/alerts/forms/alertdialog.py | 123 ++++++++++-------- openlp/plugins/alerts/forms/alertform.py | 47 +++---- openlp/plugins/alerts/forms/alertstab.py | 31 ----- openlp/plugins/presentations/lib/mediaitem.py | 6 +- resources/forms/alertdialog.ui | 28 +--- 5 files changed, 96 insertions(+), 139 deletions(-) diff --git a/openlp/plugins/alerts/forms/alertdialog.py b/openlp/plugins/alerts/forms/alertdialog.py index 804975ff1..00203f1f2 100644 --- a/openlp/plugins/alerts/forms/alertdialog.py +++ b/openlp/plugins/alerts/forms/alertdialog.py @@ -1,82 +1,92 @@ # -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 -# Form implementation generated from reading ui file 'alertdialog.ui' -# -# Created: Sat Apr 17 08:07:40 2010 -# by: PyQt4 UI code generator 4.7 -# -# WARNING! All changes made in this file will be lost! +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2010 Raoul Snyman # +# Portions copyright (c) 2008-2010 Tim Bentley, Jonathan Corwin, Michael # +# Gorven, Scott Guerrieri, Christian Richter, Maikel Stuivenberg, Martin # +# Thompson, Jon Tibble, Carsten Tinggaard # +# --------------------------------------------------------------------------- # +# This program is free software; you can redistribute it and/or modify it # +# under the terms of the GNU General Public License as published by the Free # +# Software Foundation; version 2 of the License. # +# # +# This program is distributed in the hope that it will be useful, but WITHOUT # +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # +# more details. # +# # +# You should have received a copy of the GNU General Public License along # +# with this program; if not, write to the Free Software Foundation, Inc., 59 # +# Temple Place, Suite 330, Boston, MA 02111-1307 USA # +############################################################################### from PyQt4 import QtCore, QtGui class Ui_AlertDialog(object): def setupUi(self, AlertDialog): - AlertDialog.setObjectName("AlertDialog") + AlertDialog.setObjectName(u'AlertDialog') AlertDialog.resize(567, 440) icon = QtGui.QIcon() - icon.addPixmap(QtGui.QPixmap(":/icon/openlp.org-icon-32.bmp"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon.addPixmap(QtGui.QPixmap(u':/icon/openlp.org-icon-32.bmp'), QtGui.QIcon.Normal, QtGui.QIcon.Off) AlertDialog.setWindowIcon(icon) self.AlertFormLayout = QtGui.QVBoxLayout(AlertDialog) self.AlertFormLayout.setSpacing(8) self.AlertFormLayout.setMargin(8) - self.AlertFormLayout.setObjectName("AlertFormLayout") + self.AlertFormLayout.setObjectName(u'AlertFormLayout') self.AlertTextLayout = QtGui.QFormLayout() self.AlertTextLayout.setContentsMargins(0, 0, -1, -1) self.AlertTextLayout.setSpacing(8) - self.AlertTextLayout.setObjectName("AlertTextLayout") + self.AlertTextLayout.setObjectName(u'AlertTextLayout') self.AlertEntryLabel = QtGui.QLabel(AlertDialog) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(self.AlertEntryLabel.sizePolicy().hasHeightForWidth()) self.AlertEntryLabel.setSizePolicy(sizePolicy) - self.AlertEntryLabel.setObjectName("AlertEntryLabel") + self.AlertEntryLabel.setObjectName(u'AlertEntryLabel') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.AlertEntryLabel) self.AlertParameter = QtGui.QLabel(AlertDialog) - self.AlertParameter.setObjectName("AlertParameter") + self.AlertParameter.setObjectName(u'AlertParameter') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.LabelRole, self.AlertParameter) self.ParameterEdit = QtGui.QLineEdit(AlertDialog) - self.ParameterEdit.setObjectName("ParameterEdit") + self.ParameterEdit.setObjectName(u'ParameterEdit') self.AlertTextLayout.setWidget(1, QtGui.QFormLayout.FieldRole, self.ParameterEdit) self.AlertTextEdit = QtGui.QLineEdit(AlertDialog) - self.AlertTextEdit.setObjectName("AlertTextEdit") + self.AlertTextEdit.setObjectName(u'AlertTextEdit') self.AlertTextLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.AlertTextEdit) self.AlertFormLayout.addLayout(self.AlertTextLayout) self.ManagementLayout = QtGui.QHBoxLayout() self.ManagementLayout.setSpacing(8) self.ManagementLayout.setContentsMargins(-1, -1, -1, 0) - self.ManagementLayout.setObjectName("ManagementLayout") + self.ManagementLayout.setObjectName(u'ManagementLayout') self.AlertListWidget = QtGui.QListWidget(AlertDialog) self.AlertListWidget.setAlternatingRowColors(True) - self.AlertListWidget.setObjectName("AlertListWidget") + self.AlertListWidget.setObjectName(u'AlertListWidget') self.ManagementLayout.addWidget(self.AlertListWidget) self.ManageButtonLayout = QtGui.QVBoxLayout() self.ManageButtonLayout.setSpacing(8) - self.ManageButtonLayout.setObjectName("ManageButtonLayout") + self.ManageButtonLayout.setObjectName(u'ManageButtonLayout') self.NewButton = QtGui.QPushButton(AlertDialog) icon1 = QtGui.QIcon() - icon1.addPixmap(QtGui.QPixmap(":/general/general_new.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon1.addPixmap(QtGui.QPixmap(u':/general/general_new.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.NewButton.setIcon(icon1) - self.NewButton.setObjectName("NewButton") + self.NewButton.setObjectName(u'NewButton') self.ManageButtonLayout.addWidget(self.NewButton) self.SaveButton = QtGui.QPushButton(AlertDialog) self.SaveButton.setEnabled(False) icon2 = QtGui.QIcon() - icon2.addPixmap(QtGui.QPixmap(":/general/general_save.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + icon2.addPixmap(QtGui.QPixmap(u':/general/general_save.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.SaveButton.setIcon(icon2) - self.SaveButton.setObjectName("SaveButton") + self.SaveButton.setObjectName(u'SaveButton') self.ManageButtonLayout.addWidget(self.SaveButton) - self.EditButton = QtGui.QPushButton(AlertDialog) - icon3 = QtGui.QIcon() - icon3.addPixmap(QtGui.QPixmap(":/general/general_edit.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.EditButton.setIcon(icon3) - self.EditButton.setObjectName("EditButton") - self.ManageButtonLayout.addWidget(self.EditButton) self.DeleteButton = QtGui.QPushButton(AlertDialog) - icon4 = QtGui.QIcon() - icon4.addPixmap(QtGui.QPixmap(":/general/general_delete.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.DeleteButton.setIcon(icon4) - self.DeleteButton.setObjectName("DeleteButton") + icon3 = QtGui.QIcon() + icon3.addPixmap(QtGui.QPixmap(u':/general/general_delete.png'), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.DeleteButton.setIcon(icon3) + self.DeleteButton.setObjectName(u'DeleteButton') self.ManageButtonLayout.addWidget(self.DeleteButton) spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) self.ManageButtonLayout.addItem(spacerItem) @@ -84,51 +94,52 @@ class Ui_AlertDialog(object): self.AlertFormLayout.addLayout(self.ManagementLayout) self.AlertButtonLayout = QtGui.QHBoxLayout() self.AlertButtonLayout.setSpacing(8) - self.AlertButtonLayout.setObjectName("AlertButtonLayout") - spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) + self.AlertButtonLayout.setObjectName(u'AlertButtonLayout') + spacerItem1 = QtGui.QSpacerItem(181, 0, QtGui.QSizePolicy.Expanding, + QtGui.QSizePolicy.Minimum) self.AlertButtonLayout.addItem(spacerItem1) self.DisplayButton = QtGui.QPushButton(AlertDialog) - icon5 = QtGui.QIcon() - icon5.addPixmap(QtGui.QPixmap(":/general/general_live.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.DisplayButton.setIcon(icon5) - self.DisplayButton.setObjectName("DisplayButton") + icon4 = QtGui.QIcon() + icon4.addPixmap(QtGui.QPixmap(u':/general/general_live.png'), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.DisplayButton.setIcon(icon4) + self.DisplayButton.setObjectName(u'DisplayButton') self.AlertButtonLayout.addWidget(self.DisplayButton) self.DisplayCloseButton = QtGui.QPushButton(AlertDialog) - self.DisplayCloseButton.setIcon(icon5) - self.DisplayCloseButton.setObjectName("DisplayCloseButton") + self.DisplayCloseButton.setIcon(icon4) + self.DisplayCloseButton.setObjectName(u'DisplayCloseButton') self.AlertButtonLayout.addWidget(self.DisplayCloseButton) self.CloseButton = QtGui.QPushButton(AlertDialog) - icon6 = QtGui.QIcon() - icon6.addPixmap(QtGui.QPixmap(":/system/system_close.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) - self.CloseButton.setIcon(icon6) - self.CloseButton.setObjectName("CloseButton") + icon5 = QtGui.QIcon() + icon5.addPixmap(QtGui.QPixmap(u':/system/system_close.png'), + QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.CloseButton.setIcon(icon5) + self.CloseButton.setObjectName(u'CloseButton') self.AlertButtonLayout.addWidget(self.CloseButton) self.AlertFormLayout.addLayout(self.AlertButtonLayout) self.AlertEntryLabel.setBuddy(self.AlertTextEdit) self.AlertParameter.setBuddy(self.ParameterEdit) self.retranslateUi(AlertDialog) - QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL("clicked()"), AlertDialog.close) + QtCore.QObject.connect(self.CloseButton, QtCore.SIGNAL(u'clicked()'), AlertDialog.close) QtCore.QMetaObject.connectSlotsByName(AlertDialog) AlertDialog.setTabOrder(self.AlertTextEdit, self.ParameterEdit) AlertDialog.setTabOrder(self.ParameterEdit, self.AlertListWidget) AlertDialog.setTabOrder(self.AlertListWidget, self.NewButton) AlertDialog.setTabOrder(self.NewButton, self.SaveButton) - AlertDialog.setTabOrder(self.SaveButton, self.EditButton) - AlertDialog.setTabOrder(self.EditButton, self.DeleteButton) + AlertDialog.setTabOrder(self.SaveButton, self.DeleteButton) AlertDialog.setTabOrder(self.DeleteButton, self.DisplayButton) AlertDialog.setTabOrder(self.DisplayButton, self.DisplayCloseButton) AlertDialog.setTabOrder(self.DisplayCloseButton, self.CloseButton) def retranslateUi(self, AlertDialog): - AlertDialog.setWindowTitle(QtGui.QApplication.translate("AlertDialog", "Alert Message", None, QtGui.QApplication.UnicodeUTF8)) - self.AlertEntryLabel.setText(QtGui.QApplication.translate("AlertDialog", "Alert &text:", None, QtGui.QApplication.UnicodeUTF8)) - self.AlertParameter.setText(QtGui.QApplication.translate("AlertDialog", "&Parameter(s):", None, QtGui.QApplication.UnicodeUTF8)) - self.NewButton.setText(QtGui.QApplication.translate("AlertDialog", "&New", None, QtGui.QApplication.UnicodeUTF8)) - self.SaveButton.setText(QtGui.QApplication.translate("AlertDialog", "&Save", None, QtGui.QApplication.UnicodeUTF8)) - self.EditButton.setText(QtGui.QApplication.translate("AlertDialog", "&Edit", None, QtGui.QApplication.UnicodeUTF8)) - self.DeleteButton.setText(QtGui.QApplication.translate("AlertDialog", "&Delete", None, QtGui.QApplication.UnicodeUTF8)) - self.DisplayButton.setText(QtGui.QApplication.translate("AlertDialog", "Displ&ay", None, QtGui.QApplication.UnicodeUTF8)) - self.DisplayCloseButton.setText(QtGui.QApplication.translate("AlertDialog", "Display && Cl&ose", None, QtGui.QApplication.UnicodeUTF8)) - self.CloseButton.setText(QtGui.QApplication.translate("AlertDialog", "&Close", None, QtGui.QApplication.UnicodeUTF8)) + AlertDialog.setWindowTitle(self.trUtf8('Alert Message')) + self.AlertEntryLabel.setText(self.trUtf8('Alert &text:')) + self.AlertParameter.setText(self.trUtf8('&Parameter(s):')) + self.NewButton.setText(self.trUtf8('&New')) + self.SaveButton.setText(self.trUtf8('&Save')) + self.DeleteButton.setText(self.trUtf8('&Delete')) + self.DisplayButton.setText(self.trUtf8('Displ&ay')) + self.DisplayCloseButton.setText(self.trUtf8('Display && Cl&ose')) + self.CloseButton.setText(self.trUtf8('&Close')) diff --git a/openlp/plugins/alerts/forms/alertform.py b/openlp/plugins/alerts/forms/alertform.py index 08e5f5e02..9656dea42 100644 --- a/openlp/plugins/alerts/forms/alertform.py +++ b/openlp/plugins/alerts/forms/alertform.py @@ -39,7 +39,7 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): """ self.manager = manager self.parent = parent - self.history_required = True + self.item_id = None QtGui.QDialog.__init__(self, None) self.setupUi(self) QtCore.QObject.connect(self.DisplayButton, @@ -57,9 +57,6 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): QtCore.QObject.connect(self.DeleteButton, QtCore.SIGNAL(u'clicked()'), self.onDeleteClick) - QtCore.QObject.connect(self.EditButton, - QtCore.SIGNAL(u'clicked()'), - self.onEditClick) QtCore.QObject.connect(self.SaveButton, QtCore.SIGNAL(u'clicked()'), self.onSaveClick) @@ -79,12 +76,10 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): QtCore.Qt.UserRole, QtCore.QVariant(alert.id)) self.AlertListWidget.addItem(item_name) self.SaveButton.setEnabled(False) - self.EditButton.setEnabled(False) self.DeleteButton.setEnabled(False) def onDisplayClicked(self): if self.triggerAlert(unicode(self.AlertTextEdit.text())): - self.history_required = False self.loadList() def onDisplayCloseClicked(self): @@ -103,15 +98,6 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): self.DeleteButton.setEnabled(False) self.EditButton.setEnabled(False) - def onEditClick(self): - item = self.AlertListWidget.currentItem() - if item: - self.item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] - self.AlertTextEdit.setText(unicode(item.text())) - self.SaveButton.setEnabled(True) - self.DeleteButton.setEnabled(True) - self.EditButton.setEnabled(False) - def onNewClick(self): if len(self.AlertTextEdit.text()) == 0: QtGui.QMessageBox.information(self, @@ -121,19 +107,22 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): alert = AlertItem() alert.text = unicode(self.AlertTextEdit.text()) self.manager.save_alert(alert) - self.onClearClick() + self.AlertTextEdit.setText(u'') self.loadList() def onSaveClick(self): - alert = self.manager.get_alert(self.item_id) - alert.text = unicode(self.AlertTextEdit.text()) - self.manager.save_alert(alert) - self.onClearClick() - self.loadList() + if self.item_id: + alert = self.manager.get_alert(self.item_id) + alert.text = unicode(self.AlertTextEdit.text()) + self.manager.save_alert(alert) + self.item_id = None + self.loadList() + else: + self.onNewClick() def onTextChanged(self): #Data has changed by editing it so potential storage required - self.history_required = True + self.SaveButton.setEnabled(True) def onDoubleClick(self): """ @@ -143,7 +132,10 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): for item in items: bitem = self.AlertListWidget.item(item.row()) self.triggerAlert(bitem.text()) - self.history_required = False + self.AlertTextEdit.setText(bitem.text()) + self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0] + self.SaveButton.setEnabled(False) + self.DeleteButton.setEnabled(True) def onSingleClick(self): """ @@ -154,16 +146,13 @@ class AlertForm(QtGui.QDialog, Ui_AlertDialog): for item in items: bitem = self.AlertListWidget.item(item.row()) self.AlertTextEdit.setText(bitem.text()) - self.history_required = False - self.EditButton.setEnabled(True) + self.item_id = (bitem.data(QtCore.Qt.UserRole)).toInt()[0] + self.SaveButton.setEnabled(False) self.DeleteButton.setEnabled(True) def triggerAlert(self, text): if text: + text = text.replace(u'<>', unicode(self.ParameterEdit.text())) self.parent.alertsmanager.displayAlert(text) - if self.parent.alertsTab.save_history and self.history_required: - alert = AlertItem() - alert.text = unicode(self.AlertTextEdit.text()) - self.manager.save_alert(alert) return True return False diff --git a/openlp/plugins/alerts/forms/alertstab.py b/openlp/plugins/alerts/forms/alertstab.py index d15865a6d..6882d63df 100644 --- a/openlp/plugins/alerts/forms/alertstab.py +++ b/openlp/plugins/alerts/forms/alertstab.py @@ -35,7 +35,6 @@ class AlertsTab(SettingsTab): def __init__(self, parent, section=None): self.parent = parent self.manager = parent.manager - self.alertsmanager = parent.alertsmanager SettingsTab.__init__(self, parent.name, section) def setupUi(self): @@ -136,22 +135,6 @@ class AlertsTab(SettingsTab): QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) self.LocationLayout.addItem(self.LocationSpacer) self.FontLayout.addWidget(self.LocationWidget) - self.HistoryWidget = QtGui.QWidget(self.FontGroupBox) - self.HistoryWidget.setObjectName(u'HistoryWidget') - self.HistoryLayout = QtGui.QHBoxLayout(self.HistoryWidget) - self.HistoryLayout.setSpacing(8) - self.HistoryLayout.setMargin(0) - self.HistoryLayout.setObjectName(u'HistoryLayout') - self.HistoryLabel = QtGui.QLabel(self.HistoryWidget) - self.HistoryLabel.setObjectName(u'HistoryLabel') - self.HistoryLayout.addWidget(self.HistoryLabel) - self.HistoryCheckBox = QtGui.QCheckBox(self.HistoryWidget) - self.HistoryCheckBox.setObjectName(u'HistoryCheckBox') - self.HistoryLayout.addWidget(self.HistoryCheckBox) - self.HistorySpacer = QtGui.QSpacerItem(147, 20, - QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum) - self.HistoryLayout.addItem(self.HistorySpacer) - self.FontLayout.addWidget(self.HistoryWidget) self.SlideLeftLayout.addWidget(self.FontGroupBox) self.SlideLeftSpacer = QtGui.QSpacerItem(20, 94, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding) @@ -190,9 +173,6 @@ class AlertsTab(SettingsTab): self.SlideRightLayout.addItem(self.SlideRightSpacer) self.AlertsLayout.addWidget(self.AlertRightColumn) # Signals and slots - QtCore.QObject.connect(self.HistoryCheckBox, - QtCore.SIGNAL(u'stateChanged(int)'), - self.onHistoryCheckBoxChanged) QtCore.QObject.connect(self.BackgroundColorButton, QtCore.SIGNAL(u'pressed()'), self.onBackgroundColorButtonClicked) QtCore.QObject.connect(self.FontColorButton, @@ -216,7 +196,6 @@ class AlertsTab(SettingsTab): self.TimeoutLabel.setText(self.trUtf8('Alert timeout:')) self.TimeoutSpinBox.setSuffix(self.trUtf8('s')) self.LocationLabel.setText(self.trUtf8('Location:')) - self.HistoryLabel.setText(self.trUtf8('Keep History:')) self.PreviewGroupBox.setTitle(self.trUtf8('Preview')) self.FontPreview.setText(self.trUtf8('openlp.org')) self.LocationComboBox.setItemText(0, self.trUtf8('Top')) @@ -235,12 +214,6 @@ class AlertsTab(SettingsTab): def onLocationComboBoxClicked(self, location): self.location = location - def onHistoryCheckBoxChanged(self, check_state): - self.save_history = False - # we have a set value convert to True/False - if check_state == QtCore.Qt.Checked: - self.save_history = True - def onFontColorButtonClicked(self): self.font_color = QtGui.QColorDialog.getColor( QtGui.QColor(self.font_color), self).name() @@ -265,8 +238,6 @@ class AlertsTab(SettingsTab): self.font_face = unicode( self.config.get_config(u'font face', QtGui.QFont().family())) self.location = int(self.config.get_config(u'location', 0)) - self.save_history = str_to_bool( - self.config.get_config(u'save history', u'False')) self.FontSizeSpinBox.setValue(self.font_size) self.TimeoutSpinBox.setValue(self.timeout) self.FontColorButton.setStyleSheet( @@ -274,7 +245,6 @@ class AlertsTab(SettingsTab): self.BackgroundColorButton.setStyleSheet( u'background-color: %s' % self.bg_color) self.LocationComboBox.setCurrentIndex(self.location) - self.HistoryCheckBox.setChecked(self.save_history) font = QtGui.QFont() font.setFamily(self.font_face) self.FontComboBox.setCurrentFont(font) @@ -293,7 +263,6 @@ class AlertsTab(SettingsTab): self.config.set_config(u'timeout', unicode(self.timeout)) self.config.set_config(u'location', unicode(self.LocationComboBox.currentIndex())) - self.config.set_config(u'save history', unicode(self.save_history)) def updateDisplay(self): font = QtGui.QFont() diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index c58345eda..3aea3f1ec 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -134,8 +134,10 @@ class PresentationMediaItem(MediaManagerItem): else: icon = None for controller in self.controllers: - thumb = os.path.join(self.parent.config.get_data_path(), controller, filename, u'slide1.png') - preview = os.path.join(self.parent.config.get_data_path(), controller, u'thumbnails', filename, u'slide1.png') + thumb = os.path.join(self.parent.config.get_data_path(), \ + controller, filename, u'slide1.png') + preview = os.path.join(self.parent.config.get_data_path(), \ + controller, u'thumbnails', filename, u'slide1.png') if os.path.exists(preview): if os.path.exists(thumb): if self.validate(preview, thumb): diff --git a/resources/forms/alertdialog.ui b/resources/forms/alertdialog.ui index fd4cee5fc..725fb7c4e 100644 --- a/resources/forms/alertdialog.ui +++ b/resources/forms/alertdialog.ui @@ -98,7 +98,7 @@ &New - + :/general/general_new.png:/general/general_new.png @@ -112,29 +112,18 @@ &Save - + :/general/general_save.png:/general/general_save.png - - - - &Edit - - - - :/general/general_edit.png:/general/general_edit.png - - - &Delete - + :/general/general_delete.png:/general/general_delete.png @@ -180,7 +169,7 @@ Displ&ay - + :/general/general_live.png:/general/general_live.png @@ -191,7 +180,7 @@ Display && Cl&ose - + :/general/general_live.png:/general/general_live.png @@ -202,7 +191,7 @@ &Close - + :/system/system_close.png:/system/system_close.png @@ -217,15 +206,12 @@ AlertListWidget NewButton SaveButton - EditButton DeleteButton DisplayButton DisplayCloseButton CloseButton - - - + CloseButton From e6d6541ca29d97528c42d52b78f9240b3d91e6a9 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 21 Apr 2010 18:36:29 +0100 Subject: [PATCH 5/7] Presentation Thumbnails --- openlp/plugins/presentations/lib/mediaitem.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 3aea3f1ec..701efc086 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -104,7 +104,7 @@ class PresentationMediaItem(MediaManagerItem): def initialise(self): self.servicePath = os.path.join( - self.parent.config.get_data_path(), u'.thumbnails') + self.parent.config.get_data_path(), u'thumbnails') if not os.path.exists(self.servicePath): os.mkdir(self.servicePath) list = self.parent.config.load_list(u'presentations') @@ -134,8 +134,9 @@ class PresentationMediaItem(MediaManagerItem): else: icon = None for controller in self.controllers: - thumb = os.path.join(self.parent.config.get_data_path(), \ - controller, filename, u'slide1.png') + thumbPath = os.path.join(self.parent.config.get_data_path(), \ + u'thumbnails', controller, filename) + thumb = os.path.join(thumbPath, u'slide1.png') preview = os.path.join(self.parent.config.get_data_path(), \ controller, u'thumbnails', filename, u'slide1.png') if os.path.exists(preview): @@ -145,6 +146,7 @@ class PresentationMediaItem(MediaManagerItem): else: icon = build_icon(u':/general/general_delete.png') else: + os.makedirs(thumbPath) icon = self.IconFromFile(preview, thumb) if not icon: icon = build_icon(u':/general/general_delete.png') From 877af7ea2c59056e40522da645f386a21c9d7d1c Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Wed, 21 Apr 2010 22:56:48 +0100 Subject: [PATCH 6/7] More fixes --- openlp/core/ui/maindisplay.py | 22 +++++++++--------- openlp/core/ui/mainwindow.py | 2 +- openlp/core/ui/servicemanager.py | 3 +-- openlp/core/ui/slidecontroller.py | 26 +++++++++++----------- openlp/plugins/alerts/alertsplugin.py | 1 - openlp/plugins/alerts/lib/alertsmanager.py | 4 ++-- openlp/plugins/remotes/remoteplugin.py | 2 +- 7 files changed, 29 insertions(+), 31 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 556872b35..7c0b7357e 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -68,25 +68,25 @@ class DisplayWidget(QtGui.QWidget): self.parent = parent self.hotkey_map = { QtCore.Qt.Key_Return: 'servicemanager_next_item', - QtCore.Qt.Key_Space: 'slidecontroller_live_go_next_noloop', - QtCore.Qt.Key_Enter: 'slidecontroller_live_go_next_noloop', + QtCore.Qt.Key_Space: 'slidecontroller_live_next_noloop', + QtCore.Qt.Key_Enter: 'slidecontroller_live_next_noloop', QtCore.Qt.Key_0: 'servicemanager_next_item', - QtCore.Qt.Key_Backspace: 'slidecontroller_live_go_previous_noloop'} + QtCore.Qt.Key_Backspace: 'slidecontroller_live_previous_noloop'} def keyPressEvent(self, event): if type(event) == QtGui.QKeyEvent: #here accept the event and do something if event.key() == QtCore.Qt.Key_Up: - Receiver.send_message(u'slidecontroller_go_live_previous') + Receiver.send_message(u'slidecontroller_live_previous') event.accept() elif event.key() == QtCore.Qt.Key_Down: - Receiver.send_message(u'slidecontroller_go_live_next') + Receiver.send_message(u'slidecontroller_live_next') event.accept() elif event.key() == QtCore.Qt.Key_PageUp: - Receiver.send_message(u'slidecontroller_go_live_first') + Receiver.send_message(u'slidecontroller_live_first') event.accept() elif event.key() == QtCore.Qt.Key_PageDown: - Receiver.send_message(u'slidecontroller_go_live_last') + Receiver.send_message(u'slidecontroller_live_last') event.accept() elif event.key() in self.hotkey_map: Receiver.send_message(self.hotkey_map[event.key()]) @@ -325,13 +325,13 @@ class VideoDisplay(Phonon.VideoWidget): Phonon.createPath(self.mediaObject, self) Phonon.createPath(self.mediaObject, self.audioObject) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_media_start'), self.onMediaQueue) + QtCore.SIGNAL(u'mediacontroller_start'), self.onMediaQueue) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_media_play'), self.onMediaPlay) + QtCore.SIGNAL(u'mediacontroller_play'), self.onMediaPlay) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_media_pause'), self.onMediaPause) + QtCore.SIGNAL(u'mediacontroller_pause'), self.onMediaPause) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_media_stop'), self.onMediaStop) + QtCore.SIGNAL(u'mediacontroller_stop'), self.onMediaStop) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.setup) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index 91fa21810..5dbcbf758 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -498,7 +498,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_screen_changed'), self.screenChanged) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'status_message'), self.showStatusMessage) + QtCore.SIGNAL(u'maindisplay_status_text'), self.showStatusMessage) QtCore.QObject.connect(self.FileNewItem, QtCore.SIGNAL(u'triggered()'), self.ServiceManagerContents.onNewService) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 9f0370e95..02c4e3442 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -714,9 +714,8 @@ class ServiceManager(QtGui.QWidget): item, count = self.findServiceItem() if self.serviceItems[item][u'service_item']\ .is_capable(ItemCapabilities.AllowsEdit): - self.remoteEditTriggered = True Receiver.send_message(u'%s_edit' % - self.serviceItems[item][u'service_item'].name, u'L:%s' % + self.serviceItems[item][u'service_item'].name.lower(), u'L:%s' % self.serviceItems[item][u'service_item'].editId ) def findServiceItem(self): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8d2e41c72..46c9f8e71 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -315,23 +315,23 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_stop_loop'), self.onStopLoop) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_first' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_first' % self.type_prefix), self.onSlideSelectedFirst) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_next' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_next' % self.type_prefix), self.onSlideSelectedNext) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_previous' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_previous' % self.type_prefix), self.onSlideSelectedPrevious) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_next_noloop' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_next_noloop' % self.type_prefix), self.onSlideSelectedNextNoloop) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_previous_noloop' % + QtCore.SIGNAL(u'slidecontroller_%s_previous_noloop' % self.type_prefix), self.onSlideSelectedPreviousNoloop) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_%s_go_last' % self.type_prefix), + QtCore.SIGNAL(u'slidecontroller_%s_last' % self.type_prefix), self.onSlideSelectedLast) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_%s_change' % self.type_prefix), @@ -608,10 +608,10 @@ class SlideController(QtGui.QWidget): """ if self.serviceItem is not None: if blanked: - Receiver.send_message(u'slidecontroller_blank' % + Receiver.send_message(u'slidecontroller_blank', [self.serviceItem, self.isLive]) else: - Receiver.send_message(u'slidecontroller_unblank' % + Receiver.send_message(u'slidecontroller_unblank', [self.serviceItem, self.isLive]) self.parent.mainDisplay.blankDisplay(blankType, blanked) else: @@ -756,7 +756,7 @@ class SlideController(QtGui.QWidget): def onEditSong(self): self.songEdit = True Receiver.send_message(u'%s_edit' % - self.serviceItem.name.lower(), u'L:%s' % + self.serviceItem.name.lower(), u'P:%s' % self.serviceItem.editId) def onGoLive(self): @@ -773,7 +773,7 @@ class SlideController(QtGui.QWidget): blanked = self.blankButton.isChecked() else: blanked = False - Receiver.send_message(u'slidecontroller_media_start', + Receiver.send_message(u'mediacontroller_start', [item, self.isLive, blanked]) if not self.isLive: self.mediaObject.stop() @@ -785,13 +785,13 @@ class SlideController(QtGui.QWidget): self.onMediaPlay() def onMediaPause(self): - Receiver.send_message(u'slidecontroller_media_pause', + Receiver.send_message(u'mediacontroller_pause', [item, self.isLive]) if not self.isLive: self.mediaObject.pause() def onMediaPlay(self): - Receiver.send_message(u'slidecontroller_media_play', + Receiver.send_message(u'mediacontroller_play', [item, self.isLive]) if not self.isLive: self.SlidePreview.hide() @@ -799,7 +799,7 @@ class SlideController(QtGui.QWidget): self.mediaObject.play() def onMediaStop(self): - Receiver.send_message(u'slidecontroller_media_stop', + Receiver.send_message(u'mediacontroller_stop', [item, self.isLive]) if not self.isLive: self.mediaObject.stop() diff --git a/openlp/plugins/alerts/alertsplugin.py b/openlp/plugins/alerts/alertsplugin.py index aeba0ab41..975192da3 100644 --- a/openlp/plugins/alerts/alertsplugin.py +++ b/openlp/plugins/alerts/alertsplugin.py @@ -88,7 +88,6 @@ class alertsPlugin(Plugin): def onAlertsTrigger(self): self.alertForm.loadList() self.alertForm.exec_() - Receiver.send_message(u'text_onTop') def about(self): about_text = self.trUtf8('Alerts Plugin
This plugin ' diff --git a/openlp/plugins/alerts/lib/alertsmanager.py b/openlp/plugins/alerts/lib/alertsmanager.py index 2f30ca84a..a933d49fd 100644 --- a/openlp/plugins/alerts/lib/alertsmanager.py +++ b/openlp/plugins/alerts/lib/alertsmanager.py @@ -82,10 +82,10 @@ class AlertsManager(QtCore.QObject): self.screenChanged() self.alertList.append(text) if self.timer_id != 0: - Receiver.send_message(u'status_message', + Receiver.send_message(u'maindisplay_status_text', self.trUtf8(u'Alert message created and delayed')) return - Receiver.send_message(u'status_message', u'') + Receiver.send_message(u'maindisplay_status_text', u'') self.generateAlert() def generateAlert(self): diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index ede72c954..eff9496ba 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -75,7 +75,7 @@ class RemotesPlugin(Plugin): if event == u'alert': Receiver.send_message(u'alerts_text', unicode(datagram[pos + 1:])) elif event == u'next_slide': - Receiver.send_message(u'slidecontroller_live_go_next') + Receiver.send_message(u'slidecontroller_live_next') else: Receiver.send_message(event, unicode(datagram[pos + 1:])) From fa54f94905f5574aebed488651e45f536ed424cc Mon Sep 17 00:00:00 2001 From: Jonathan Corwin Date: Thu, 22 Apr 2010 22:22:09 +0100 Subject: [PATCH 7/7] Finish signal refactor --- openlp/core/lib/eventreceiver.py | 146 ++++++++++++------ openlp/core/lib/mediamanageritem.py | 5 +- openlp/core/ui/maindisplay.py | 23 +-- openlp/core/ui/servicemanager.py | 2 - openlp/core/ui/slidecontroller.py | 54 +++---- .../presentations/lib/messagelistener.py | 56 +++---- openlp/plugins/songusage/songusageplugin.py | 5 +- 7 files changed, 159 insertions(+), 132 deletions(-) diff --git a/openlp/core/lib/eventreceiver.py b/openlp/core/lib/eventreceiver.py index ee69c2db0..6443a4795 100644 --- a/openlp/core/lib/eventreceiver.py +++ b/openlp/core/lib/eventreceiver.py @@ -35,17 +35,80 @@ class EventReceiver(QtCore.QObject): system. This is a private class and should not be used directly but rather via the Receiver class. - ``stop_import`` - Stops the Bible Import - - ``pre_load_bibles`` - Triggers the plugin to relaod the bible lists - - ``process_events`` + ``openlp_process_events`` Requests the Application to flush the events queue - ``{plugin}_add_service_item`` - ask the plugin to push the selected items to the service item + ``openlp_version_check`` + Version has changed so pop up window. + + ``config_updated`` + Informs components the config has changed + + ``config_screen_changed`` + The display monitor has been changed + + ``slidecontroller_{live|preview}_first`` + Moves to the first slide + + ``slidecontroller_{live|preview}_next`` + Moves to the next slide + + ``slidecontroller_{live|preview}_next_noloop`` + Moves to the next slide without auto advance + + ``slidecontroller_{live|preview}_previous`` + Moves to the previous slide + + ``slidecontroller_{live|preview}_previous_noloop`` + Moves to the previous slide, without auto advance + + ``slidecontroller_{live|preview}_last`` + Moves to the last slide + + ``slidecontroller_{live|preview}_started`` + Broadcasts that an item has been made live/previewed + + ``slidecontroller_{live|preview}_change`` + Informs the slidecontroller that a slide change has occurred + + ``slidecontroller_live_spin_delay`` + Pushes out the loop delay + + ``slidecontroller_live_stop_loop`` + Stop the loop on the main display + + ``servicecontroller_next_item`` + Display the next item in the service + + ``maindisplay_blank`` + Blank the maindisplay window + + ``maindisplay_hide`` + Hide the maindisplay window + + ``maindisplay_show`` + Return the maindisplay window + + ``maindisplay_active`` + The maindisplay has been made active + + ``maindisplay_status_text`` + Changes the bottom status bar text on the maindisplay window + + ``maindisplay_blank_check`` + Check to see if the blank display message is required + + ``videodisplay_start`` + Open a media item and prepare for playing + + ``videodisplay_play`` + Start playing a media item + + ``videodisplay_pause`` + Pause a media item + + ``videodisplay_stop`` + Stop playing a media item ``theme_update_list`` send out message with new themes @@ -53,18 +116,6 @@ class EventReceiver(QtCore.QObject): ``theme_update_global`` Tell the components we have a new global theme - ``load_song_list`` - Tells the the song plugin to reload the song list - - ``load_custom_list`` - Tells the the custom plugin to reload the custom list - - ``update_spin_delay`` - Pushes out the Image loop delay - - ``request_spin_delay`` - Requests a spin delay - ``{plugin}_start`` Requests a plugin to start a external program Path and file provided in message @@ -81,42 +132,47 @@ class EventReceiver(QtCore.QObject): ``{plugin}_last`` Requests a plugin to handle a last event + ``{plugin}_slide`` + Requests a plugin to handle a go to specific slide event + ``{plugin}_stop`` Requests a plugin to handle a stop event + ``{plugin}_blank`` + Requests a plugin to handle a blank screen event + + ``{plugin}_unblank`` + Requests a plugin to handle an unblank screen event + ``{plugin}_edit`` Requests a plugin edit a database item with the key as the payload - ``songusage_live`` - Sends live song audit requests to the audit component + ``{plugin}_edit_clear`` + Editing has been completed - ``audit_changed`` - Audit information may have changed + ``{plugin}_load_list`` + Tells the the plugin to reload the media manager list - ``config_updated`` - Informs components the config has changed + ``{plugin}_preview`` + Tells the plugin it's item can be previewed - ``preview_song`` - Tells the song plugin the edit has finished and the song can be previewed - Only available if the edit was triggered by the Preview button. + ``{plugin}_add_service_item`` + Ask the plugin to push the selected items to the service item - ``slidecontroller_change`` - Informs the slidecontroller that a slide change has occurred + ``alerts_text`` + Displays an alert message + + ``bibles_nobook`` + Attempt to find book resulted in no match - ``remote_edit_clear`` - Informs all components that remote edit has been aborted. + ``bibles_showprogress`` + Show progress of bible verse import - ``presentation types`` - Informs all components of the presentation types supported. + ``bibles_hideprogress`` + Hide progress of bible verse import - ``blank_check`` - Check to see if th eblank display message is required - - ``version_check`` - Version has changed so pop up window. - - ``mainDisplay_active`` - Version has changed so pop up window. + ``bibles_stop_import`` + Stops the Bible Import """ def __init__(self): @@ -172,4 +228,4 @@ class Receiver(): """ Get the global ``eventreceiver`` instance. """ - return Receiver.eventreceiver \ No newline at end of file + return Receiver.eventreceiver diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index c37336057..28ee257d3 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -422,12 +422,13 @@ class MediaManagerItem(QtGui.QWidget): else: #Is it posssible to process multiple list items to generate multiple #service items? - if self.singleServiceItem: + if self.singleServiceItem or self.remoteTriggered: log.debug(self.PluginNameShort + u' Add requested') service_item = self.buildServiceItem() if service_item: service_item.from_plugin = False - self.parent.service_manager.addServiceItem(service_item) + self.parent.service_manager.addServiceItem(service_item, + replace=self.remoteTriggered) else: items = self.ListView.selectedIndexes() for item in items: diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 7c0b7357e..5e7071449 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -138,7 +138,7 @@ class MainDisplay(DisplayWidget): QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_live_mediastart'), self.hideDisplay) + QtCore.SIGNAL(u'videodisplay_start'), self.hideDisplay) def setup(self): """ @@ -195,7 +195,7 @@ class MainDisplay(DisplayWidget): def resetDisplay(self): log.debug(u'resetDisplay') - Receiver.send_message(u'maindisplay_stop_loop') + Receiver.send_message(u'slidecontroller_live_stop_loop') if self.primary: self.setVisible(False) else: @@ -325,13 +325,13 @@ class VideoDisplay(Phonon.VideoWidget): Phonon.createPath(self.mediaObject, self) Phonon.createPath(self.mediaObject, self.audioObject) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'mediacontroller_start'), self.onMediaQueue) + QtCore.SIGNAL(u'videodisplay_start'), self.onMediaQueue) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'mediacontroller_play'), self.onMediaPlay) + QtCore.SIGNAL(u'videodisplay_play'), self.onMediaPlay) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'mediacontroller_pause'), self.onMediaPause) + QtCore.SIGNAL(u'videodisplay_pause'), self.onMediaPause) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'mediacontroller_stop'), self.onMediaStop) + QtCore.SIGNAL(u'videodisplay_stop'), self.onMediaStop) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'config_updated'), self.setup) @@ -364,40 +364,29 @@ class VideoDisplay(Phonon.VideoWidget): self.primary = True def onMediaQueue(self, message): - if not message[1]: - return log.debug(u'VideoDisplay Queue new media message %s' % message) file = os.path.join(message[0].get_frame_path(), message[0].get_frame_title()) - #file = os.path.join(message[1], message[2]) source = self.mediaObject.setCurrentSource(Phonon.MediaSource(file)) self.onMediaPlay() def onMediaPlay(self): - if not message[1]: - return log.debug(u'VideoDisplay Play the new media, Live ') self.mediaObject.play() self.setVisible(True) self.showFullScreen() def onMediaPause(self): - if not message[1]: - return log.debug(u'VideoDisplay Media paused by user') self.mediaObject.pause() self.show() def onMediaStop(self): - if not message[1]: - return log.debug(u'VideoDisplay Media stopped by user') self.mediaObject.stop() self.onMediaFinish() def onMediaFinish(self): - if not message[1]: - return log.debug(u'VideoDisplay Reached end of media playlist') self.mediaObject.clearQueue() self.setVisible(False) diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 02c4e3442..97430bd87 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -103,8 +103,6 @@ class ServiceManager(QtGui.QWidget): self.droppos = 0 #is a new service and has not been saved self.isNew = True - #Indicates if remoteTriggering is active. If it is the next addServiceItem call - #will replace the currently selected one. self.serviceNoteForm = ServiceNoteForm() self.serviceItemEditForm = ServiceItemEditForm() #start with the layout diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 46c9f8e71..2b34a7c0d 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -313,7 +313,8 @@ class SlideController(QtGui.QWidget): self.Toolbar.makeWidgetsInvisible(self.song_edit_list) self.Mediabar.setVisible(False) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'maindisplay_stop_loop'), self.onStopLoop) + QtCore.SIGNAL(u'slidecontroller_%s_stop_loop' % self.type_prefix), + self.onStopLoop) QtCore.QObject.connect(Receiver.get_receiver(), QtCore.SIGNAL(u'slidecontroller_%s_first' % self.type_prefix), self.onSlideSelectedFirst) @@ -480,7 +481,7 @@ class SlideController(QtGui.QWidget): blanked = self.blankButton.isChecked() else: blanked = False - Receiver.send_message(u'slidecontroller_start', + Receiver.send_message(u'%s_start' % serviceItem.name.lower(), [serviceItem, self.isLive, blanked, slideno]) self.slideList = {} width = self.parent.ControlSplitter.sizes()[self.split] @@ -553,6 +554,10 @@ class SlideController(QtGui.QWidget): self.enableToolBar(serviceItem) self.onSlideSelected() self.PreviewListWidget.setFocus() + Receiver.send_message(u'%s_%s_started' % + (self.serviceItem.name.lower(), + 'live' if self.isLive else 'preview'), + [serviceItem]) log.log(15, u'Display Rendering took %4s' % (time.time() - before)) #Screen event methods @@ -562,7 +567,7 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return - Receiver.send_message(u'slidecontroller_first', + Receiver.send_message(u'%s_first' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): self.updatePreview() @@ -608,10 +613,11 @@ class SlideController(QtGui.QWidget): """ if self.serviceItem is not None: if blanked: - Receiver.send_message(u'slidecontroller_blank', + Receiver.send_message(u'%s_blank' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) else: - Receiver.send_message(u'slidecontroller_unblank', + Receiver.send_message(u'%s_unblank' + % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) self.parent.mainDisplay.blankDisplay(blankType, blanked) else: @@ -625,7 +631,7 @@ class SlideController(QtGui.QWidget): row = self.PreviewListWidget.currentRow() self.selectedRow = 0 if row > -1 and row < self.PreviewListWidget.rowCount(): - Receiver.send_message(u'slidecontroller_slide', + Receiver.send_message(u'%s_slide' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive, row]) if self.serviceItem.is_command() and self.isLive: self.updatePreview() @@ -679,7 +685,7 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return - Receiver.send_message(u'slidecontroller_next', + Receiver.send_message(u'%s_next' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): self.updatePreview() @@ -703,7 +709,7 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return - Receiver.send_message(u'slidecontroller_previous', + Receiver.send_message(u'%s_previous' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): self.updatePreview() @@ -723,7 +729,7 @@ class SlideController(QtGui.QWidget): """ if not self.serviceItem: return - Receiver.send_message(u'slidecontroller_last', + Receiver.send_message(u'%s_last' % self.serviceItem.name.lower(), [self.serviceItem, self.isLive]) if self.serviceItem.is_command(): self.updatePreview() @@ -755,9 +761,8 @@ class SlideController(QtGui.QWidget): def onEditSong(self): self.songEdit = True - Receiver.send_message(u'%s_edit' % - self.serviceItem.name.lower(), u'P:%s' % - self.serviceItem.editId) + Receiver.send_message(u'%s_edit' % self.serviceItem.name.lower(), + u'P:%s' % self.serviceItem.editId) def onGoLive(self): """ @@ -770,12 +775,9 @@ class SlideController(QtGui.QWidget): def onMediaStart(self, item): if self.isLive: - blanked = self.blankButton.isChecked() + Receiver.send_message(u'videodisplay_start', + [item, self.blankButton.isChecked()]) else: - blanked = False - Receiver.send_message(u'mediacontroller_start', - [item, self.isLive, blanked]) - if not self.isLive: self.mediaObject.stop() self.mediaObject.clearQueue() file = os.path.join(item.get_frame_path(), item.get_frame_title()) @@ -785,23 +787,23 @@ class SlideController(QtGui.QWidget): self.onMediaPlay() def onMediaPause(self): - Receiver.send_message(u'mediacontroller_pause', - [item, self.isLive]) - if not self.isLive: + if self.isLive: + Receiver.send_message(u'videodisplay_pause') + else: self.mediaObject.pause() def onMediaPlay(self): - Receiver.send_message(u'mediacontroller_play', - [item, self.isLive]) - if not self.isLive: + if self.isLive: + Receiver.send_message(u'videodisplay_play') + else: self.SlidePreview.hide() self.video.show() self.mediaObject.play() def onMediaStop(self): - Receiver.send_message(u'mediacontroller_stop', - [item, self.isLive]) - if not self.isLive: + if self.isLive: + Receiver.send_message(u'videodisplay_stop') + else: self.mediaObject.stop() self.video.hide() self.SlidePreview.clear() diff --git a/openlp/plugins/presentations/lib/messagelistener.py b/openlp/plugins/presentations/lib/messagelistener.py index 37bfa564d..3a97cedaf 100644 --- a/openlp/plugins/presentations/lib/messagelistener.py +++ b/openlp/plugins/presentations/lib/messagelistener.py @@ -186,23 +186,23 @@ class MessageListener(object): self.liveHandler = Controller(True) # messages are sent from core.ui.slidecontroller QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_start'), self.startup) + QtCore.SIGNAL(u'presentation_start'), self.startup) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_stop'), self.shutdown) + QtCore.SIGNAL(u'presentation_stop'), self.shutdown) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_first'), self.first) + QtCore.SIGNAL(u'presentation_first'), self.first) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_previous'), self.previous) + QtCore.SIGNAL(u'presentation_previous'), self.previous) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_next'), self.next) + QtCore.SIGNAL(u'presentation_next'), self.next) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_last'), self.last) + QtCore.SIGNAL(u'presentation_last'), self.last) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_slide'), self.slide) + QtCore.SIGNAL(u'presentation_slide'), self.slide) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_blank'), self.blank) + QtCore.SIGNAL(u'presentation_blank'), self.blank) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_unblank'), self.unblank) + QtCore.SIGNAL(u'presentation_unblank'), self.unblank) self.timer = QtCore.QTimer() self.timer.setInterval(500) QtCore.QObject.connect(self.timer, QtCore.SIGNAL("timeout()"), self.timeout) @@ -212,9 +212,7 @@ class MessageListener(object): Start of new presentation Save the handler as any new presentations start here """ - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) log.debug(u'Startup called with message %s' % message) isBlank = message[2] file = os.path.join(item.get_frame_path(), @@ -231,57 +229,45 @@ class MessageListener(object): controller.addHandler(self.controllers[self.handler], file, isBlank) def decode_message(self, message): - return message[0].name.lower(), message[1], message[0] + return message[1], message[0] def slide(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.slide(slide, live) else: self.previewHandler.slide(slide, live) def first(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.first() else: self.previewHandler.first() def last(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.last() else: self.previewHandler.last() def next(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.next() else: self.previewHandler.next() def previous(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.previous() else: self.previewHandler.previous() def shutdown(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: Receiver.send_message(u'maindisplay_show') self.liveHandler.shutdown() @@ -289,16 +275,12 @@ class MessageListener(object): self.previewHandler.shutdown() def blank(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.blank() def unblank(self, message): - name, isLive, item = self.decode_message(message) - if name != u'presentation': - return + isLive, item = self.decode_message(message) if isLive: self.liveHandler.unblank() diff --git a/openlp/plugins/songusage/songusageplugin.py b/openlp/plugins/songusage/songusageplugin.py index c4a255d06..3d7f9ad45 100644 --- a/openlp/plugins/songusage/songusageplugin.py +++ b/openlp/plugins/songusage/songusageplugin.py @@ -107,7 +107,7 @@ class SongUsagePlugin(Plugin): log.info(u'SongUsage Initialising') Plugin.initialise(self) QtCore.QObject.connect(Receiver.get_receiver(), - QtCore.SIGNAL(u'slidecontroller_start'), self.onReceiveSongUsage) + QtCore.SIGNAL(u'slidecontroller_live_started'), self.onReceiveSongUsage) self.SongUsageActive = str_to_bool( self.config.get_config(u'active', False)) self.SongUsageStatus.setChecked(self.SongUsageActive) @@ -132,8 +132,7 @@ class SongUsagePlugin(Plugin): SongUsage a live song from SlideController """ audit = items[0].audit - live = items[1] - if self.SongUsageActive and audit and live: + if self.SongUsageActive and audit: song_usage_item = SongUsageItem() song_usage_item.usagedate = datetime.today() song_usage_item.usagetime = datetime.now().time()