From 8c7c71e0c0910f9c803ba334a5b1ace5fd205686 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 13 May 2009 17:41:05 +0100 Subject: [PATCH] Add Preview , Live and Service to ServiceManager Remove unwanted Drag and drop stuff Clean up remanants --- openlp/core/ui/mainwindow.py | 2 - openlp/core/ui/servicemanager.py | 54 ++++++----- openlp/core/ui/slidecontroller.py | 127 ++++++++++++------------- openlp/plugins/images/lib/mediaitem.py | 31 ++++-- 4 files changed, 109 insertions(+), 105 deletions(-) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index ae7ab6143..d13184ba0 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -100,8 +100,6 @@ class MainWindow(object): self.ServiceManagerContents.liveController = self.LiveController self.ThemeManagerContents.serviceManager = self.ServiceManagerContents self.ThemeManagerContents.loadThemes() - self.PreviewController.postInit() - self.LiveController.postInit() # Initialise SlideControllers log.info(u'Set Up SlideControllers') diff --git a/openlp/core/ui/servicemanager.py b/openlp/core/ui/servicemanager.py index 765816341..c4bca2b42 100644 --- a/openlp/core/ui/servicemanager.py +++ b/openlp/core/ui/servicemanager.py @@ -78,11 +78,13 @@ class ServiceManager(QtGui.QWidget): self.ServiceManagerList.setDragDropMode(QtGui.QAbstractItemView.DragDrop) self.ServiceManagerList.setAlternatingRowColors(True) self.ServiceManagerList.setObjectName("ServiceManagerList") + #endable drop self.ServiceManagerList .__class__.dragEnterEvent=self.dragEnterEvent self.ServiceManagerList .__class__.dragMoveEvent=self.dragEnterEvent self.ServiceManagerList .__class__.dropEvent =self.dropEvent - self.ServiceManagerList.setDragEnabled(True) - self.ServiceManagerList .__class__.mouseMoveEvent =self.onMouseMoveEvent + #endable drag + #self.ServiceManagerList.setDragEnabled(True) + #self.ServiceManagerList .__class__.mouseMoveEvent =self.onMouseMoveEvent self.Layout.addWidget(self.ServiceManagerList) @@ -179,30 +181,30 @@ class ServiceManager(QtGui.QWidget): print plugin self.eventManager.post_event(Event(EventType.LoadServiceItem, plugin)) - def onMouseMoveEvent(self, event): - """ - Drag and drop eventDo not care what data is selected - as the recepient will use events to request the data move - just tell it what plugin to call - """ - print "ServiceManager" - if event.buttons() != QtCore.Qt.LeftButton: - return - - items = self.ServiceManagerList.selectedIndexes() - if items == []: - return - - drag = QtGui.QDrag(self) - mimeData = QtCore.QMimeData() - drag.setMimeData(mimeData) - for item in items: - mimeData.setText(u'ServiceManager') - - dropAction = drag.start(QtCore.Qt.CopyAction) - - if dropAction == QtCore.Qt.CopyAction: - self.close() +# def onMouseMoveEvent(self, event): +# """ +# Drag and drop eventDo not care what data is selected +# as the recepient will use events to request the data move +# just tell it what plugin to call +# """ +# print "ServiceManager" +# if event.buttons() != QtCore.Qt.LeftButton: +# return +# +# items = self.ServiceManagerList.selectedIndexes() +# if items == []: +# return +# +# drag = QtGui.QDrag(self) +# mimeData = QtCore.QMimeData() +# drag.setMimeData(mimeData) +# for item in items: +# mimeData.setText(u'ServiceManager') +# +# dropAction = drag.start(QtCore.Qt.CopyAction) +# +# if dropAction == QtCore.Qt.CopyAction: +# self.close() def oos_as_text(self): diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 1705883c6..fcf97301d 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -26,62 +26,64 @@ from openlp.core.lib import OpenLPToolbar from openlp.core import translate from openlp.core.lib import Event, EventType, EventManager -class PreviewList(QtGui.QListView): - - def __init__(self,parent=None): - QtGui.QListView.__init__(self,parent) - self.setAcceptDrops(True) - - def dragEnterEvent(self, event): - """ - Accept Drag events - """ - event.accept() - self.dropEvent(event) - - def dropEvent(self, event): - """ - Handle the release of the event and trigger the plugin - to add the data - """ - print "preview drop event" - link=event.mimeData() - if link.hasText(): - plugin = event.mimeData().text() - if plugin == u'ServiceManager': - #Service Manager to Preview is not a sane - self.serviceManager.makeLive() - else: - print "preview fired ", plugin - self.eventManager.post_event(Event(EventType.PreviewShow, plugin)) - -class LiveList(QtGui.QListView): - def __init__(self,parent=None): - QtGui.QListView.__init__(self,parent) - self.setAcceptDrops(True) - - def dragEnterEvent(self, event): - """ - Accept Drag events - """ - event.accept() - self.dropEvent(event) - - def dropEvent(self, event): - """ - Handle the release of the event and trigger the plugin - to add the data - """ - print "Live drop event" - link=event.mimeData() - if link.hasText(): - plugin = event.mimeData().text() - if plugin == u'ServiceManager': - #Service Manager to Preview is not a sane - self.serviceManager.makeLive() - else: - print "live fired plugin ", plugin - self.eventManager.post_event(Event(EventType.LiveShow, plugin)) +#class PreviewList(QtGui.QListView): +# +# def __init__(self,parent=None): +# QtGui.QListView.__init__(self,parent) +# self.setAcceptDrops(True) +# self.setDropIndicatorShown(True) +# self.setDragEnabled(False) +# self.setDragDropMode(QtGui.QAbstractItemView.DropOnly) +# +# def dragEnterEvent(self, event): +# """ +# Accept Drag events +# """ +# event.accept() +# +# def dropEvent(self, event): +# """ +# Handle the release of the event and trigger the plugin +# to add the data +# """ +# print "preview drop event" +# link=event.mimeData() +# if link.hasText(): +# plugin = event.mimeData().text() +# if plugin == u'ServiceManager': +# #Service Manager to Preview is not a sane +# self.serviceManager.makeLive() +# else: +# print "preview fired ", plugin +# self.eventManager.post_event(Event(EventType.PreviewShow, plugin)) +# +#class LiveList(QtGui.QListView): +# def __init__(self,parent=None): +# QtGui.QListView.__init__(self,parent) +# self.setAcceptDrops(True) +# self.setDropIndicatorShown(True) +# self.setDragEnabled(False) +# self.setDragDropMode(QtGui.QAbstractItemView.DropOnly) +# +# def dragEnterEvent(self, event): +# """ +# Accept Drag events +# """ +# event.accept() +# +# def dropEvent(self, event): +# """ +# Handle the release of the event and trigger the plugin +# to add the data +# """ +# print "Live drop event" +# link=event.mimeData() +# if link.hasText(): +# plugin = event.mimeData().text() +# if plugin == u'ServiceManager': +# self.serviceManager.makeLive() +# else: +# self.eventManager.post_event(Event(EventType.LiveShow, plugin)) class SlideData(QtCore.QAbstractListModel): @@ -184,14 +186,8 @@ class SlideController(QtGui.QWidget): self.gridLayout.setObjectName("gridLayout") #load the correct class for drag and drop - if self.isLive: - self.PreviewListView = LiveList(self.scrollAreaWidgetContents) - else: - self.PreviewListView = PreviewList(self.scrollAreaWidgetContents) - - self.PreviewListView.setDragEnabled(False) - self.PreviewListView.setDragDropMode(QtGui.QAbstractItemView.DropOnly) + self.PreviewListView = QtGui.QListView(self.scrollAreaWidgetContents) self.PreviewListData = SlideData() self.PreviewListView.isLive = self.isLive self.PreviewListView.setModel(self.PreviewListData) @@ -251,11 +247,6 @@ class SlideController(QtGui.QWidget): QtCore.QObject.connect(self.PreviewListView, QtCore.SIGNAL(u'clicked(QModelIndex)'), self.onSlideSelected) - def postInit(self): - self.PreviewListView.eventManager = self.eventManager - self.PreviewListView.serviceManager = self.serviceManager - - def onSlideSelectedFirst(self): row = self.PreviewListData.createIndex(0, 0) if row.isValid(): diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index adbdcaf9c..3e7851878 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -24,7 +24,7 @@ from PyQt4 import QtCore, QtGui from openlp.core import translate from openlp.core.lib import MediaManagerItem -from openlp.core.resources import * +from openlp.core.lib import ServiceItem from openlp.plugins.images.lib import ListWithPreviews @@ -150,20 +150,33 @@ class ImageMediaItem(MediaManagerItem): self.ImageListData.removeRow(current_row) self.parent.config.set_list(u'images', self.ImageListData.getFileList()) - def onImageClick(self, where): + def generateSlideData(self, service_item): indexes = self.ImageListView.selectedIndexes() for index in indexes: filename = self.ImageListData.getFilename(index) - log.info(u"Click %s:%s"%(str(where), filename)) - where.add(filename) - where.render() + frame = QtGui.QPixmap(str(filename)) + service_item.frames.append({u'formatted': u'Image', u'image': frame}) def onImagePreviewClick(self): - self.onImageClick(self.parent.preview_service_item) + log.debug(u'Image Preview Requested') + service_item = ServiceItem(self.parent) + service_item.addIcon( ":/media/media_image.png") + service_item.render_manager = self.parent.render_manager + self.generateSlideData(service_item) + self.parent.preview_controller.addServiceItem(service_item) def onImageLiveClick(self): - self.onImageClick(self.parent.live_service_item) + log.debug(u'Image Live Requested') + service_item = ServiceItem(self.parent) + service_item.addIcon( ":/media/media_image.png") + service_item.render_manager = self.parent.render_manager + self.generateSlideData(service_item) + self.parent.live_controller.addServiceItem(service_item) def onImageAddClick(self): - """Add this item to the OOS""" - pass + log.debug(u'Image Live Requested') + service_item = ServiceItem(self.parent) + service_item.addIcon( ":/media/media_image.png") + service_item.render_manager = self.parent.render_manager + self.generateSlideData(service_item) + self.parent.service_manager.addServiceItem(service_item)