Reverted 'adding multiple service items' functionality

This commit is contained in:
Arjan Schrijver 2013-05-14 15:58:07 +02:00
parent 9752716672
commit d323f9d746

View File

@ -32,7 +32,7 @@ import os
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import ItemCapabilities, MediaManagerItem, Registry, ServiceItem, ServiceItemContext, Settings, \ from openlp.core.lib import ItemCapabilities, MediaManagerItem, Registry, ServiceItemContext, Settings, \
StringContent, TreeWidgetWithDnD, UiStrings, build_icon, check_directory_exists, check_item_selected, \ StringContent, TreeWidgetWithDnD, UiStrings, build_icon, check_directory_exists, check_item_selected, \
create_thumb, translate, validate_thumb create_thumb, translate, validate_thumb
from openlp.core.lib.ui import create_widget_action, critical_error_message_box from openlp.core.lib.ui import create_widget_action, critical_error_message_box
@ -538,76 +538,63 @@ class ImageMediaItem(MediaManagerItem):
""" """
background = QtGui.QColor(Settings().value(self.settings_section + u'/background color')) background = QtGui.QColor(Settings().value(self.settings_section + u'/background color'))
if item: if item:
new_items = [item] items = [item]
else: else:
new_items = self.list_view.selectedItems() items = self.list_view.selectedItems()
if not new_items: if not items:
return False return False
for bitem in new_items: # Determine service item title
new_service_item = ServiceItem(self.plugin) if isinstance(items[0].data(0, QtCore.Qt.UserRole), ImageGroups):
new_service_item.add_icon(self.plugin.icon_path) service_item.title = items[0].text(0)
# Determine service item title else:
if isinstance(bitem.data(0, QtCore.Qt.UserRole), ImageGroups): service_item.title = unicode(self.plugin.name_strings[u'plural'])
new_service_item.title = bitem.text(0) service_item.add_capability(ItemCapabilities.CanMaintain)
else: service_item.add_capability(ItemCapabilities.CanPreview)
new_service_item.title = unicode(self.plugin.name_strings[u'plural']) service_item.add_capability(ItemCapabilities.CanLoop)
new_service_item.add_capability(ItemCapabilities.CanMaintain) service_item.add_capability(ItemCapabilities.CanAppend)
new_service_item.add_capability(ItemCapabilities.CanPreview) # force a nonexistent theme
new_service_item.add_capability(ItemCapabilities.CanLoop) service_item.theme = -1
new_service_item.add_capability(ItemCapabilities.CanAppend) missing_items = []
# force a nonexistent theme missing_items_filenames = []
new_service_item.theme = -1 # Expand groups to images
sub_images = [] for bitem in items:
missing_items = []
missing_items_filenames = []
# Expand groups to images
if isinstance(bitem.data(0, QtCore.Qt.UserRole), ImageGroups) or bitem.data(0, QtCore.Qt.UserRole) is None: if isinstance(bitem.data(0, QtCore.Qt.UserRole), ImageGroups) or bitem.data(0, QtCore.Qt.UserRole) is None:
for index in range(0, bitem.childCount()): for index in range(0, bitem.childCount()):
if isinstance(bitem.child(index).data(0, QtCore.Qt.UserRole), ImageFilenames): if isinstance(bitem.child(index).data(0, QtCore.Qt.UserRole), ImageFilenames):
sub_images.append(bitem.child(index)) items.append(bitem.child(index))
if isinstance(bitem.data(0, QtCore.Qt.UserRole), ImageFilenames): items.remove(bitem)
sub_images.append(bitem) # Don't try to display empty groups
# Don't try to display empty groups if not items:
if not sub_images: return False
return False # Find missing files
# Find missing files for bitem in items:
for bitem in sub_images: filename = bitem.data(0, QtCore.Qt.UserRole).filename
filename = bitem.data(0, QtCore.Qt.UserRole).filename if not os.path.exists(filename):
if not os.path.exists(filename): missing_items.append(bitem)
missing_items.append(bitem) missing_items_filenames.append(filename)
missing_items_filenames.append(filename) for item in missing_items:
for item in missing_items: items.remove(item)
sub_images.remove(item) # We cannot continue, as all images do not exist.
# We cannot continue, as all images do not exist. if not items:
if not sub_images: if not remote:
if not remote: critical_error_message_box(
critical_error_message_box( translate('ImagePlugin.MediaItem', 'Missing Image(s)'),
translate('ImagePlugin.MediaItem', 'Missing Image(s)'), translate('ImagePlugin.MediaItem', 'The following image(s) no longer exist: %s') %
translate('ImagePlugin.MediaItem', 'The following image(s) no longer exist: %s') % u'\n'.join(missing_items_filenames))
u'\n'.join(missing_items_filenames)) return False
return False # We have missing as well as existing images. We ask what to do.
# We have missing as well as existing images. We ask what to do. elif missing_items and QtGui.QMessageBox.question(self,
elif missing_items and QtGui.QMessageBox.question(self, translate('ImagePlugin.MediaItem', 'Missing Image(s)'),
translate('ImagePlugin.MediaItem', 'Missing Image(s)'), translate('ImagePlugin.MediaItem', 'The following image(s) no longer exist: %s\n'
translate('ImagePlugin.MediaItem', 'The following image(s) no longer exist: %s\n' 'Do you want to add the other images anyway?') % u'\n'.join(missing_items_filenames),
'Do you want to add the other images anyway?') % u'\n'.join(missing_items_filenames), QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == QtGui.QMessageBox.No:
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.No | QtGui.QMessageBox.Yes)) == \ return False
QtGui.QMessageBox.No: # Continue with the existing images.
return False for bitem in items:
# Continue with the existing images. filename = bitem.data(0, QtCore.Qt.UserRole).filename
for sub_image in sub_images: name = os.path.split(filename)[1]
filename = sub_image.data(0, QtCore.Qt.UserRole).filename service_item.add_from_image(filename, name, background)
name = os.path.split(filename)[1] return True
new_service_item.add_from_image(filename, name, background)
# Add the service item to the correct controller
if context == ServiceItemContext.Service:
self.service_manager.add_service_item(new_service_item)
elif context == ServiceItemContext.Preview:
self.preview_controller.add_service_item(new_service_item)
elif context == ServiceItemContext.Live:
self.live_controller.add_service_item(new_service_item)
# Return False because we added the service item ourselves
return False
def check_group_exists(self, new_group): def check_group_exists(self, new_group):
""" """