Fix up plugins for multiple service item generation

This commit is contained in:
Tim Bentley 2010-04-05 07:45:01 +01:00
parent b17b83bb27
commit 5a3150a063
7 changed files with 23 additions and 28 deletions

View File

@ -368,7 +368,7 @@ class MediaManagerItem(QtGui.QWidget):
raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to '
u'be defined by the plugin') u'be defined by the plugin')
def generateSlideData(self, item): def generateSlideData(self, item, item1):
raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' raise NotImplementedError(u'MediaManagerItem.generateSlideData needs '
u'to be defined by the plugin') u'to be defined by the plugin')
@ -402,6 +402,8 @@ class MediaManagerItem(QtGui.QWidget):
self.trUtf8('No Items Selected'), self.trUtf8('No Items Selected'),
self.trUtf8('You must select one or more items.')) self.trUtf8('You must select one or more items.'))
else: else:
#Is it posssible to process multiple list items to generate multiple
#service items?
if self.single_service_item: if self.single_service_item:
log.debug(self.PluginNameShort + u' Add requested') log.debug(self.PluginNameShort + u' Add requested')
service_item = self.buildServiceItem() service_item = self.buildServiceItem()
@ -438,7 +440,7 @@ class MediaManagerItem(QtGui.QWidget):
self.trUtf8('Invalid Service Item'), self.trUtf8('Invalid Service Item'),
self.trUtf8(unicode('You must select a %s service item.' % self.title))) self.trUtf8(unicode('You must select a %s service item.' % self.title)))
def buildServiceItem(self, item=0): def buildServiceItem(self, item=None):
""" """
Common method for generating a service item Common method for generating a service item
""" """

View File

@ -57,7 +57,6 @@ class BibleMediaItem(MediaManagerItem):
self.ConfigSection = title self.ConfigSection = title
self.IconPath = u'songs/song' self.IconPath = u'songs/song'
self.ListViewWithDnD_class = BibleListView self.ListViewWithDnD_class = BibleListView
self.servicePath = None
self.lastReference = [] self.lastReference = []
self.addToServiceItem = True self.addToServiceItem = True
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
@ -440,7 +439,7 @@ class BibleMediaItem(MediaManagerItem):
if self.search_results: if self.search_results:
self.displayResults(bible) self.displayResults(bible)
def generateSlideData(self, service_item, item_id=0): def generateSlideData(self, service_item, item=None):
log.debug(u'generating slide data') log.debug(u'generating slide data')
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
if len(items) == 0: if len(items) == 0:

View File

@ -50,8 +50,8 @@ class CustomMediaItem(MediaManagerItem):
# this next is a class, not an instance of a class - it will # this next is a class, not an instance of a class - it will
# be instanced by the base MediaManagerItem # be instanced by the base MediaManagerItem
self.ListViewWithDnD_class = CustomListView self.ListViewWithDnD_class = CustomListView
self.servicePath = None
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.single_service_item = False
# Holds information about whether the edit is remotly triggered and # Holds information about whether the edit is remotly triggered and
# which Custom is required. # which Custom is required.
self.remoteCustom = -1 self.remoteCustom = -1
@ -132,18 +132,21 @@ class CustomMediaItem(MediaManagerItem):
row = self.ListView.row(item) row = self.ListView.row(item)
self.ListView.takeItem(row) self.ListView.takeItem(row)
def generateSlideData(self, service_item): def generateSlideData(self, service_item, item=None):
raw_slides =[] raw_slides =[]
raw_footer = [] raw_footer = []
slide = None slide = None
theme = None theme = None
if self.remoteTriggered is None: if item is None:
item = self.ListView.currentItem() if self.remoteTriggered is None:
if item is None: item = self.ListView.currentItem()
return False if item is None:
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0] return False
item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
else:
item_id = self.remoteCustom
else: else:
item_id = self.remoteCustom item_id = (item.data(QtCore.Qt.UserRole)).toInt()[0]
service_item.add_capability(ItemCapabilities.AllowsEdit) service_item.add_capability(ItemCapabilities.AllowsEdit)
service_item.add_capability(ItemCapabilities.AllowsPreview) service_item.add_capability(ItemCapabilities.AllowsPreview)
customSlide = self.parent.custommanager.get_custom(item_id) customSlide = self.parent.custommanager.get_custom(item_id)

View File

@ -52,7 +52,6 @@ class ImageMediaItem(MediaManagerItem):
# this next is a class, not an instance of a class - it will # this next is a class, not an instance of a class - it will
# be instanced by the base MediaManagerItem # be instanced by the base MediaManagerItem
self.ListViewWithDnD_class = ImageListView self.ListViewWithDnD_class = ImageListView
self.servicePath = None
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
def initPluginNameVisible(self): def initPluginNameVisible(self):
@ -136,7 +135,7 @@ class ImageMediaItem(MediaManagerItem):
item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file))
self.ListView.addItem(item_name) self.ListView.addItem(item_name)
def generateSlideData(self, service_item): def generateSlideData(self, service_item, item=None):
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
if items: if items:
service_item.title = self.trUtf8('Image(s)') service_item.title = self.trUtf8('Image(s)')

View File

@ -52,7 +52,7 @@ class MediaMediaItem(MediaManagerItem):
# this next is a class, not an instance of a class - it will # this next is a class, not an instance of a class - it will
# be instanced by the base MediaManagerItem # be instanced by the base MediaManagerItem
self.ListViewWithDnD_class = MediaListView self.ListViewWithDnD_class = MediaListView
self.PreviewFunction = self.video_get_preview self.PreviewFunction = QtGui.QPixmap(u':/media/media_video.png').toImage()
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.ServiceItemIconName = u':/media/media_video.png' self.ServiceItemIconName = u':/media/media_video.png'
self.MainDisplay = self.parent.maindisplay self.MainDisplay = self.parent.maindisplay
@ -72,13 +72,7 @@ class MediaMediaItem(MediaManagerItem):
self.hasNewIcon = False self.hasNewIcon = False
self.hasEditIcon = False self.hasEditIcon = False
def video_get_preview(self): def generateSlideData(self, service_item, item=None):
# For now cross platform is an icon. Phonon does not support
# individual frame access (yet?) and GStreamer is not available
# on Windows
return QtGui.QPixmap(u':/media/media_video.png').toImage()
def generateSlideData(self, service_item):
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
if len(items) > 1: if len(items) > 1:
return False return False
@ -110,7 +104,7 @@ class MediaMediaItem(MediaManagerItem):
for file in list: for file in list:
(path, filename) = os.path.split(unicode(file)) (path, filename) = os.path.split(unicode(file))
item_name = QtGui.QListWidgetItem(filename) item_name = QtGui.QListWidgetItem(filename)
img = self.video_get_preview() img = QtGui.QPixmap(u':/media/media_video.png').toImage()
item_name.setIcon(build_icon(img)) item_name.setIcon(build_icon(img))
item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file)) item_name.setData(QtCore.Qt.UserRole, QtCore.QVariant(file))
self.ListView.addItem(item_name) self.ListView.addItem(item_name)

View File

@ -145,7 +145,7 @@ class PresentationMediaItem(MediaManagerItem):
doc.presentation_deleted() doc.presentation_deleted()
doc.close_presentation() doc.close_presentation()
def generateSlideData(self, service_item): def generateSlideData(self, service_item, item=None):
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
if len(items) > 1: if len(items) > 1:
return False return False

View File

@ -49,7 +49,6 @@ class SongMediaItem(MediaManagerItem):
self.ConfigSection = title self.ConfigSection = title
self.IconPath = u'songs/song' self.IconPath = u'songs/song'
self.ListViewWithDnD_class = SongListView self.ListViewWithDnD_class = SongListView
#self.servicePath = None
MediaManagerItem.__init__(self, parent, icon, title) MediaManagerItem.__init__(self, parent, icon, title)
self.single_service_item = False self.single_service_item = False
self.edit_song_form = EditSongForm(self.parent.songmanager, self) self.edit_song_form = EditSongForm(self.parent.songmanager, self)
@ -290,13 +289,12 @@ class SongMediaItem(MediaManagerItem):
self.parent.songmanager.delete_song(item_id) self.parent.songmanager.delete_song(item_id)
self.onSearchTextButtonClick() self.onSearchTextButtonClick()
def generateSlideData(self, service_item, item=0): def generateSlideData(self, service_item, item=None):
raw_footer = [] raw_footer = []
author_list = u'' author_list = u''
author_audit = [] author_audit = []
ccli = u'' ccli = u''
#Part of a loop so do not work out if item is None:
if item == 0:
if self.remoteTriggered is None: if self.remoteTriggered is None:
item = self.ListView.currentItem() item = self.ListView.currentItem()
if item is None: if item is None: