forked from openlp/openlp
Head
This commit is contained in:
commit
d4f0953429
@ -41,7 +41,7 @@ class ImagePlugin(Plugin):
|
|||||||
self.icon = build_icon(self.icon_path)
|
self.icon = build_icon(self.icon_path)
|
||||||
|
|
||||||
def getMediaManagerItem(self):
|
def getMediaManagerItem(self):
|
||||||
# Create the MediaManagerItem object
|
# Create the MediaManagerItem object.
|
||||||
return ImageMediaItem(self, self, self.icon)
|
return ImageMediaItem(self, self, self.icon)
|
||||||
|
|
||||||
def about(self):
|
def about(self):
|
||||||
|
@ -31,7 +31,7 @@ from PyQt4 import QtCore, QtGui
|
|||||||
|
|
||||||
from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \
|
from openlp.core.lib import MediaManagerItem, BaseListWithDnD, build_icon, \
|
||||||
context_menu_action, ItemCapabilities, SettingsManager, translate, \
|
context_menu_action, ItemCapabilities, SettingsManager, translate, \
|
||||||
check_item_selected, Receiver
|
check_item_selected
|
||||||
from openlp.core.utils import AppLocation, get_images_filter
|
from openlp.core.utils import AppLocation, get_images_filter
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
@ -43,6 +43,7 @@ class ImageListView(BaseListWithDnD):
|
|||||||
self.PluginName = u'Images'
|
self.PluginName = u'Images'
|
||||||
BaseListWithDnD.__init__(self, parent)
|
BaseListWithDnD.__init__(self, parent)
|
||||||
|
|
||||||
|
|
||||||
class ImageMediaItem(MediaManagerItem):
|
class ImageMediaItem(MediaManagerItem):
|
||||||
"""
|
"""
|
||||||
This is the custom media manager item for images.
|
This is the custom media manager item for images.
|
||||||
@ -51,8 +52,8 @@ class ImageMediaItem(MediaManagerItem):
|
|||||||
|
|
||||||
def __init__(self, parent, plugin, icon):
|
def __init__(self, parent, plugin, icon):
|
||||||
self.IconPath = u'images/image'
|
self.IconPath = u'images/image'
|
||||||
# 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
|
||||||
MediaManagerItem.__init__(self, parent, self, icon)
|
MediaManagerItem.__init__(self, parent, self, icon)
|
||||||
|
|
||||||
@ -113,7 +114,7 @@ class ImageMediaItem(MediaManagerItem):
|
|||||||
u':/system/system_close.png',
|
u':/system/system_close.png',
|
||||||
translate('ImagePlugin.MediaItem', 'Reset Live Background'),
|
translate('ImagePlugin.MediaItem', 'Reset Live Background'),
|
||||||
self.onResetClick, False)
|
self.onResetClick, False)
|
||||||
# Add the song widget to the page layout
|
# Add the song widget to the page layout.
|
||||||
self.pageLayout.addWidget(self.ImageWidget)
|
self.pageLayout.addWidget(self.ImageWidget)
|
||||||
self.resetButton.setVisible(False)
|
self.resetButton.setVisible(False)
|
||||||
|
|
||||||
@ -165,21 +166,40 @@ class ImageMediaItem(MediaManagerItem):
|
|||||||
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
service_item.add_capability(ItemCapabilities.AllowsAdditions)
|
||||||
# force a nonexistent theme
|
# force a nonexistent theme
|
||||||
service_item.theme = -1
|
service_item.theme = -1
|
||||||
|
missing_items = []
|
||||||
|
missing_items_filenames = []
|
||||||
for item in items:
|
for item in items:
|
||||||
bitem = self.listView.item(item.row())
|
bitem = self.listView.item(item.row())
|
||||||
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
|
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
|
||||||
if os.path.exists(filename):
|
if not os.path.exists(filename):
|
||||||
(path, name) = os.path.split(filename)
|
missing_items.append(item)
|
||||||
service_item.add_from_image(filename, name)
|
missing_items_filenames.append(filename)
|
||||||
return True
|
for item in missing_items:
|
||||||
else:
|
items.remove(item)
|
||||||
# File is no longer present
|
# We cannot continue, as all images do not exist.
|
||||||
QtGui.QMessageBox.critical(
|
if not items:
|
||||||
self, translate('ImagePlugin.MediaItem',
|
QtGui.QMessageBox.critical(self,
|
||||||
'Missing Image'),
|
translate('ImagePlugin.MediaItem', 'Missing Image(s)'),
|
||||||
unicode(translate('ImagePlugin.MediaItem',
|
unicode(translate('ImagePlugin.MediaItem',
|
||||||
'The Image %s no longer exists.')) % filename)
|
'The following image(s) no longer exist: %s')) %
|
||||||
return False
|
u'\n'.join(missing_items_filenames))
|
||||||
|
return False
|
||||||
|
# We have missing as well as existing images. We ask what to do.
|
||||||
|
elif missing_items and QtGui.QMessageBox.question(self,
|
||||||
|
translate('ImagePlugin.MediaItem', 'Missing Image(s)'),
|
||||||
|
unicode(translate('ImagePlugin.MediaItem', 'The following '
|
||||||
|
'image(s) no longer exist: %s\nDo 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:
|
||||||
|
return False
|
||||||
|
# Continue with the existing images.
|
||||||
|
for item in items:
|
||||||
|
bitem = self.listView.item(item.row())
|
||||||
|
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
|
||||||
|
(path, name) = os.path.split(filename)
|
||||||
|
service_item.add_from_image(filename, name)
|
||||||
|
return True
|
||||||
else:
|
else:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@ -191,12 +211,18 @@ class ImageMediaItem(MediaManagerItem):
|
|||||||
if check_item_selected(self.listView,
|
if check_item_selected(self.listView,
|
||||||
translate('ImagePlugin.MediaItem',
|
translate('ImagePlugin.MediaItem',
|
||||||
'You must select an image to replace the background with.')):
|
'You must select an image to replace the background with.')):
|
||||||
items = self.listView.selectedIndexes()
|
item = self.listView.selectedIndexes()[0]
|
||||||
for item in items:
|
bitem = self.listView.item(item.row())
|
||||||
bitem = self.listView.item(item.row())
|
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
|
||||||
filename = unicode(bitem.data(QtCore.Qt.UserRole).toString())
|
if os.path.exists(filename):
|
||||||
(path, name) = os.path.split(filename)
|
(path, name) = os.path.split(filename)
|
||||||
self.parent.liveController.display.directImage(name, filename)
|
self.parent.liveController.display.directImage(name, filename)
|
||||||
|
else:
|
||||||
|
QtGui.QMessageBox.critical(self,
|
||||||
|
translate('ImagePlugin.MediaItem', 'Live Background Could '
|
||||||
|
'Not Be Replaced'),
|
||||||
|
unicode(translate('ImagePlugin.MediaItem',
|
||||||
|
'The image %s no longer exists.')) % filename)
|
||||||
self.resetButton.setVisible(True)
|
self.resetButton.setVisible(True)
|
||||||
|
|
||||||
def onPreviewClick(self):
|
def onPreviewClick(self):
|
||||||
|
Loading…
Reference in New Issue
Block a user