From 828695ea0eec91957f956774028521dc6970bbe7 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 3 Apr 2010 08:10:31 +0100 Subject: [PATCH] Fix review comments --- openlp/core/lib/__init__.py | 2 +- openlp/core/lib/rendermanager.py | 1 + openlp/core/lib/serviceitem.py | 35 ++++++++----------- openlp/core/ui/generaltab.py | 26 +++++++------- openlp/core/ui/maindisplay.py | 2 +- openlp/core/ui/servicemanager.py | 10 +++--- openlp/core/ui/slidecontroller.py | 9 ++--- openlp/plugins/bibles/lib/mediaitem.py | 4 +-- openlp/plugins/custom/lib/mediaitem.py | 6 ++-- openlp/plugins/images/lib/mediaitem.py | 6 ++-- openlp/plugins/media/lib/mediaitem.py | 5 +-- openlp/plugins/presentations/lib/mediaitem.py | 1 - openlp/plugins/songs/lib/mediaitem.py | 9 ++--- 13 files changed, 56 insertions(+), 60 deletions(-) diff --git a/openlp/core/lib/__init__.py b/openlp/core/lib/__init__.py index 84525352e..38bcd127c 100644 --- a/openlp/core/lib/__init__.py +++ b/openlp/core/lib/__init__.py @@ -172,7 +172,7 @@ from mediamanageritem import MediaManagerItem from xmlrootclass import XmlRootClass from serviceitem import ServiceItem from serviceitem import ServiceItemType -from serviceitem import ServiceItem +from serviceitem import ItemCapabilities from toolbar import OpenLPToolbar from dockwidget import OpenLPDockWidget from songxmlhandler import SongXMLBuilder, SongXMLParser diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 121b94391..e811529db 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -29,6 +29,7 @@ from PyQt4 import QtCore from renderer import Renderer from openlp.core.lib import ThemeLevel + log = logging.getLogger(__name__) class RenderManager(object): diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index fd568230b..7bb58af2b 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -42,12 +42,12 @@ class ServiceItemType(object): Image = 2 Command = 3 -capabilities = [ - u'allows_preview', - u'allows_edit', - u'allows_maintain', - u'requires_media' -] +class ItemCapabilities(object): + AllowsPreview = 1 + AllowsEdit = 2 + AllowsMaintain = 3 + RequiresMedia = 4 + class ServiceItem(object): """ @@ -79,17 +79,13 @@ class ServiceItem(object): self._uuid = unicode(uuid.uuid1()) self.notes = u'' self.from_plugin = False - self.capability_state = {} - for capability in capabilities: - self.updateCapability(capability) + self.capabilities = [] - def updateCapability(self, capability, State=False): - self.capability_state[capability] = State + def add_capability(self, capability): + self.capabilities.append(capability) - def getCapability(self, capability): - if capability in self.capability_state: - return self.capability_state[capability] - return False + def is_capable(self, capability): + return capability in self.capabilities def addIcon(self, icon): """ @@ -223,7 +219,7 @@ class ServiceItem(object): u'audit':self.audit, u'notes':self.notes, u'from_plugin':self.from_plugin, - u'capabilities':self.capability_state + u'capabilities':self.capabilities } service_data = [] if self.service_item_type == ServiceItemType.Text: @@ -259,7 +255,7 @@ class ServiceItem(object): self.audit = header[u'audit'] self.notes = header[u'notes'] self.from_plugin = header[u'from_plugin'] - self.capability_state = header[u'capabilities'] + self.capabilities = header[u'capabilities'] if self.service_item_type == ServiceItemType.Text: for slide in serviceitem[u'serviceitem'][u'data']: self._raw_frames.append(slide) @@ -295,11 +291,8 @@ class ServiceItem(object): """ return self._uuid != other._uuid - def is_song(self): - return self.name.lower() == u'songs' - def is_media(self): - return self.getCapability(u'requires_media') + return ItemCapabilities.RequiresMedia in self.capabilities def is_command(self): return self.service_item_type == ServiceItemType.Command diff --git a/openlp/core/ui/generaltab.py b/openlp/core/ui/generaltab.py index 858ddc69e..ec20650cf 100644 --- a/openlp/core/ui/generaltab.py +++ b/openlp/core/ui/generaltab.py @@ -45,8 +45,8 @@ class GeneralTab(SettingsTab): self.screens.monitor_number)) self.screens.set_current_display(self.MonitorNumber) self.screens.monitor_number = self.MonitorNumber - self.MonitorDisplay = str_to_bool(self.config.get_config(u'monitor display', u'True')) - self.screens.display = self.MonitorDisplay + self.DisplayOnMonitor = str_to_bool(self.config.get_config(u'display on monitor', u'True')) + self.screens.display = self.DisplayOnMonitor def setupUi(self): self.setObjectName(u'GeneralTab') @@ -74,9 +74,9 @@ class GeneralTab(SettingsTab): self.MonitorComboBox.setObjectName(u'MonitorComboBox') self.MonitorLayout.addWidget(self.MonitorComboBox) self.MonitorLayout.addWidget(self.MonitorComboBox) - self.MonitorDisplayCheck = QtGui.QCheckBox(self.MonitorGroupBox) - self.MonitorDisplayCheck.setObjectName(u'MonitorComboBox') - self.MonitorLayout.addWidget(self.MonitorDisplayCheck) + self.DisplayOnMonitorCheck = QtGui.QCheckBox(self.MonitorGroupBox) + self.DisplayOnMonitorCheck.setObjectName(u'MonitorComboBox') + self.MonitorLayout.addWidget(self.DisplayOnMonitorCheck) self.GeneralLeftLayout.addWidget(self.MonitorGroupBox) self.StartupGroupBox = QtGui.QGroupBox(self.GeneralLeftWidget) self.StartupGroupBox.setObjectName(u'StartupGroupBox') @@ -150,8 +150,8 @@ class GeneralTab(SettingsTab): self.GeneralLayout.addWidget(self.GeneralRightWidget) QtCore.QObject.connect(self.MonitorComboBox, QtCore.SIGNAL(u'activated(int)'), self.onMonitorComboBoxChanged) - QtCore.QObject.connect(self.MonitorDisplayCheck, - QtCore.SIGNAL(u'stateChanged(int)'), self.onMonitorDisplayCheckChanged) + QtCore.QObject.connect(self.DisplayOnMonitorCheck, + QtCore.SIGNAL(u'stateChanged(int)'), self.onDisplayOnMonitorCheckChanged) QtCore.QObject.connect(self.WarningCheckBox, QtCore.SIGNAL(u'stateChanged(int)'), self.onWarningCheckBoxChanged) QtCore.QObject.connect(self.AutoOpenCheckBox, @@ -172,7 +172,7 @@ class GeneralTab(SettingsTab): def retranslateUi(self): self.MonitorGroupBox.setTitle(self.trUtf8('Monitors')) self.MonitorLabel.setText(self.trUtf8('Select monitor for output display:')) - self.MonitorDisplayCheck.setText(self.trUtf8('Do not display if single screen')) + self.DisplayOnMonitorCheck.setText(self.trUtf8('Display if in single screen')) self.StartupGroupBox.setTitle(self.trUtf8('Application Startup')) self.WarningCheckBox.setText(self.trUtf8('Show blank screen warning')) self.AutoOpenCheckBox.setText(self.trUtf8('Automatically open the last service')) @@ -188,8 +188,8 @@ class GeneralTab(SettingsTab): def onMonitorComboBoxChanged(self): self.MonitorNumber = self.MonitorComboBox.currentIndex() - def onMonitorDisplayCheckChanged(self, value): - self.MonitorDisplay = (value == QtCore.Qt.Checked) + def onDisplayOnMonitorCheckChanged(self, value): + self.DisplayOnMonitor = (value == QtCore.Qt.Checked) def onAutoOpenCheckBoxChanged(self, value): self.AutoOpen = (value == QtCore.Qt.Checked) @@ -233,7 +233,7 @@ class GeneralTab(SettingsTab): self.SaveCheckServiceCheckBox.setChecked(self.PromptSaveService) # Set a few things up self.MonitorComboBox.setCurrentIndex(self.MonitorNumber) - self.MonitorDisplayCheck.setChecked(self.MonitorDisplay) + self.DisplayOnMonitorCheck.setChecked(self.DisplayOnMonitor) self.WarningCheckBox.setChecked(self.Warning) self.AutoOpenCheckBox.setChecked(self.AutoOpen) self.ShowSplashCheckBox.setChecked(self.ShowSplash) @@ -244,7 +244,7 @@ class GeneralTab(SettingsTab): def save(self): self.config.set_config(u'monitor', self.MonitorNumber) - self.config.set_config(u'monitor display', self.MonitorDisplay) + self.config.set_config(u'display on monitor', self.DisplayOnMonitor) self.config.set_config(u'blank warning', self.Warning) self.config.set_config(u'auto open', self.AutoOpen) self.config.set_config(u'show splash', self.ShowSplash) @@ -253,7 +253,7 @@ class GeneralTab(SettingsTab): self.config.set_config(u'ccli number', self.CCLINumber) self.config.set_config(u'songselect username', self.Username) self.config.set_config(u'songselect password', self.Password) - self.screens.display = self.MonitorDisplay + self.screens.display = self.DisplayOnMonitor #Monitor Number has changed. if self.screens.monitor_number != self.MonitorNumber: self.screens.monitor_number = self.MonitorNumber diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 483e1a029..5c2394ab2 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -248,7 +248,7 @@ class MainDisplay(DisplayWidget): else: self.display_text.setPixmap(QtGui.QPixmap.fromImage(frame)) self.display_frame = frame - if not self.isVisible() and not self.screens.display: + if not self.isVisible() and self.screens.display: self.setVisible(True) self.showFullScreen() else: diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index e68adb580..0c2cc0153 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -33,7 +33,7 @@ log = logging.getLogger(__name__) from PyQt4 import QtCore, QtGui from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, \ - contextMenuAction, Receiver, str_to_bool, build_icon + contextMenuAction, Receiver, str_to_bool, build_icon, ItemCapabilities from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm class ServiceManagerList(QtGui.QTreeWidget): @@ -233,9 +233,9 @@ class ServiceManager(QtGui.QWidget): self.editAction.setVisible(False) self.maintainAction.setVisible(False) self.notesAction.setVisible(False) - if serviceItem[u'service_item'].getCapability(u'allows_edit'): + if serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsEdit): self.editAction.setVisible(True) - if serviceItem[u'service_item'].getCapability(u'allows_maintain'): + if serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsMaintain): self.maintainAction.setVisible(True) if item.parent() is None: self.notesAction.setVisible(True) @@ -713,7 +713,7 @@ class ServiceManager(QtGui.QWidget): get_config(u'auto preview', u'False')): item += 1 if self.serviceItems and item < len(self.serviceItems) and \ - self.serviceItems[item][u'service_item'].getCapability(u'allows_preview'): + serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsPreview): self.parent.PreviewController.addServiceManagerItem( self.serviceItems[item][u'service_item'], 0) @@ -722,7 +722,7 @@ class ServiceManager(QtGui.QWidget): Posts a remote edit message to a plugin to allow item to be edited. """ item, count = self.findServiceItem() - if self.serviceItems[item][u'service_item'].getCapability(u'allows_edit'): + if serviceItem[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' % diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 85a5dd6bd..7dcca0c44 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -375,8 +375,7 @@ class SlideController(QtGui.QWidget): self.Toolbar.makeWidgetsInvisible(self.image_list) if item.is_text(): self.Toolbar.makeWidgetsInvisible(self.image_list) - if item.is_song() and \ - str_to_bool(self.songsconfig.get_config(u'show songbar', True)) \ + if str_to_bool(self.songsconfig.get_config(u'show songbar', True)) \ and len(self.slideList) > 0: self.Toolbar.makeWidgetsVisible([u'Song Menu']) elif item.is_image(): @@ -395,7 +394,8 @@ class SlideController(QtGui.QWidget): self.Toolbar.setVisible(True) self.Mediabar.setVisible(False) self.Toolbar.makeWidgetsInvisible(self.song_edit_list) - if item.getCapability(u'allows_edit') and item.from_plugin: + if serviceItem[u'service_item'].is_capable(ItemCapabilities.AllowsEdit)\ + and item.from_plugin: self.Toolbar.makeWidgetsVisible(self.song_edit_list) elif item.is_media(): self.Toolbar.setVisible(False) @@ -494,7 +494,8 @@ class SlideController(QtGui.QWidget): bits = frame[u'verseTag'].split(u':') tag = None #If verse handle verse number else tag only - if bits[0] == self.trUtf8('Verse'): + if bits[0] == self.trUtf8('Verse') or \ + bits[0] == self.trUtf8('Chorus'): tag = u'%s%s' % (bits[0][0], bits[1][0:] ) row = bits[1][0:] else: diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index b5ec922ad..1a70a764a 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -29,7 +29,7 @@ import time from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, Receiver, str_to_bool, \ - BaseListWithDnD + BaseListWithDnD, ItemCapabilities from openlp.plugins.bibles.forms import ImportWizardForm log = logging.getLogger(__name__) @@ -449,7 +449,7 @@ class BibleMediaItem(MediaManagerItem): raw_slides = [] raw_footer = [] bible_text = u'' - service_item.updateCapability(u'allows_preview', True) + service_item.add_capability(ItemCapabilities.AllowsPreview) #If we want to use a 2nd translation / version bible2 = u'' if self.SearchTabWidget.currentIndex() == 0: diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index c57a091f2..84d6cf289 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, SongXMLParser, BaseListWithDnD,\ -Receiver, str_to_bool +Receiver, str_to_bool, ItemCapabilities log = logging.getLogger(__name__) @@ -144,8 +144,8 @@ class CustomMediaItem(MediaManagerItem): item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] else: item_id = self.remoteCustom - service_item.updateCapability(u'allows_preview', True) - service_item.updateCapability(u'allows_edit', True) + service_item.add_capability(ItemCapabilities.AllowsEdit) + service_item.add_capability(ItemCapabilities.AllowsPreview) customSlide = self.parent.custommanager.get_custom(item_id) title = customSlide.title credit = customSlide.credits diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 78beff1be..a8b07cfb3 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -28,7 +28,7 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ - contextMenuAction + contextMenuAction, ItemCapabilities log = logging.getLogger(__name__) @@ -140,8 +140,8 @@ class ImageMediaItem(MediaManagerItem): items = self.ListView.selectedIndexes() if items: service_item.title = self.trUtf8('Image(s)') - service_item.updateCapability(u'allows_preview', True) - service_item.updateCapability(u'allows_maintain', True) + service_item.add_capability(ItemCapabilities.AllowsMaintain) + service_item.add_capability(ItemCapabilities.AllowsPreview) for item in items: bitem = self.ListView.item(item.row()) filename = unicode((bitem.data(QtCore.Qt.UserRole)).toString()) diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py index f26b02418..7821623c2 100644 --- a/openlp/plugins/media/lib/mediaitem.py +++ b/openlp/plugins/media/lib/mediaitem.py @@ -28,7 +28,8 @@ import os from PyQt4 import QtCore, QtGui -from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon +from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \ +ItemCapabilities log = logging.getLogger(__name__) @@ -82,7 +83,7 @@ class MediaMediaItem(MediaManagerItem): if len(items) > 1: return False service_item.title = unicode(self.trUtf8('Media')) - service_item.updateCapability(u'requires_media', True) + service_item.add_capability(ItemCapabilities.Requires_media) for item in items: bitem = self.ListView.item(item.row()) filename = unicode((bitem.data(QtCore.Qt.UserRole)).toString()) diff --git a/openlp/plugins/presentations/lib/mediaitem.py b/openlp/plugins/presentations/lib/mediaitem.py index 6e9bbfaed..1b4097b6c 100644 --- a/openlp/plugins/presentations/lib/mediaitem.py +++ b/openlp/plugins/presentations/lib/mediaitem.py @@ -152,7 +152,6 @@ class PresentationMediaItem(MediaManagerItem): service_item.title = unicode(self.DisplayTypeComboBox.currentText()) service_item.shortname = unicode(self.DisplayTypeComboBox.currentText()) shortname = service_item.shortname - for item in items: bitem = self.ListView.item(item.row()) filename = unicode((bitem.data(QtCore.Qt.UserRole)).toString()) diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index c71a2c120..c374b473b 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -28,7 +28,7 @@ import logging from PyQt4 import QtCore, QtGui from openlp.core.lib import MediaManagerItem, SongXMLParser, \ - BaseListWithDnD, Receiver, str_to_bool + BaseListWithDnD, Receiver, str_to_bool, ItemCapabilities from openlp.plugins.songs.forms import EditSongForm, SongMaintenanceForm log = logging.getLogger(__name__) @@ -290,8 +290,8 @@ class SongMediaItem(MediaManagerItem): item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] else: item_id = self.remoteSong - service_item.updateCapability(u'allows_preview', True) - service_item.updateCapability(u'allows_edit', True) + service_item.add_capability(ItemCapabilities.AllowsEdit) + service_item.add_capability(ItemCapabilities.AllowsPreview) song = self.parent.songmanager.get_song(item_id) service_item.theme = song.theme_name service_item.editId = item_id @@ -310,7 +310,8 @@ class SongMediaItem(MediaManagerItem): break for verse in verseList: if verse[1]: - if verse[0][u'type'] == "Verse": + if verse[0][u'type'] == "Verse" \ + or verse[0][u'type'] == "Chorus": if verse[0][u'label'] == order[1:]: verseTag = u'%s:%s' % \ (verse[0][u'type'], verse[0][u'label'])