From ca0893cabaafedf3fc716ac71655e7ccc32e4aab Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Sat, 2 May 2009 12:12:32 +0100 Subject: [PATCH] Undo changes so diffs can be applied. --- openlp/core/lib/rendermanager.py | 9 +- openlp/core/lib/serviceitem.py | 40 ++------- openlp/core/ui/slidecontroller.py | 111 ++----------------------- openlp/plugins/custom/lib/mediaitem.py | 40 +++------ 4 files changed, 33 insertions(+), 167 deletions(-) diff --git a/openlp/core/lib/rendermanager.py b/openlp/core/lib/rendermanager.py index 53d56c325..bded79ca7 100644 --- a/openlp/core/lib/rendermanager.py +++ b/openlp/core/lib/rendermanager.py @@ -55,6 +55,7 @@ class RenderManager: self.build_text_rectangle(self.themedata) def build_text_rectangle(self, theme): + main_rect = None footer_rect = None @@ -75,6 +76,7 @@ class RenderManager: def generate_preview(self, themedata): self.calculate_default(QtCore.QSize(800,600)) self.renderer.set_theme(themedata) + self.build_text_rectangle(themedata) frame = QtGui.QPixmap(self.width, self.height) @@ -94,19 +96,14 @@ class RenderManager: def format_slide(self, words, footer): self.calculate_default(QtCore.QSize(800,600)) - frame = QtGui.QPixmap(self.width, self.height) - self.renderer.set_paint_dest(frame) return self.renderer.format_slide(words, footer) def generate_slide(self,main_text, footer_text, preview=True): if preview == True: self.calculate_default(QtCore.QSize(800,600)) - frame = QtGui.QPixmap(self.width, self.height) - self.renderer.set_paint_dest(frame) - answer=self.renderer.render_lines(main_text, footer_text) - return frame + return self.frame def calculate_default(self, screen): self.width = screen.width() diff --git a/openlp/core/lib/serviceitem.py b/openlp/core/lib/serviceitem.py index 1f3db7813..7d2224169 100644 --- a/openlp/core/lib/serviceitem.py +++ b/openlp/core/lib/serviceitem.py @@ -3,7 +3,7 @@ """ OpenLP - Open Source Lyrics Projection Copyright (c) 2008 Raoul Snyman -Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley +Portions copyright (c) 2008 Martin Thompson, Tim Bentley This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software @@ -17,53 +17,31 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -import logging - from PyQt4.QtCore import * from PyQt4.QtGui import * -#was Qabstratctitemodel -class ServiceItem(): +class ServiceItem(QAbstractItemModel): """ The service item is a base class for the plugins to use to interact with the service manager, the slide controller, and the projection screen compositor. """ - global log - log=logging.getLogger(u'ServiceItem') - log.info(u'Service Item created') def __init__(self, hostplugin): """ Init Method """ - - self.plugin = hostplugin - self.shortname = hostplugin.name - self.items = [] - self.iconic_representation = None - self.raw_slides = None - self.format_slides = [] - self.frames = [] - self.raw_footer = None - self.theme = None - log.debug(u'Service item created for %s', self.shortname) - + self.plugin=hostplugin + self.shortname=hostplugin.name + self.items=[] + self.iconic_representation=None + def render(self): """ The render method is what the plugin uses to render it's meda to the screen. """ - log.debug(u'Render called') - if self.theme == None: - self.render_manager.set_override_theme(None) - else: - self.render_manager.set_override_theme(self.theme) - - for slide in self.raw_slides: - self.format_slides.append(self.render_manager.format_slide(slide, False)) - for slide in self.format_slides: - self.frames.append(self.render_manager.generate_slide(slide, self.raw_footer, False)) + pass def get_parent_node(self): """ @@ -86,7 +64,7 @@ class ServiceItem(): """ pass - def set_from_plugin(self): + def set_from_plugin(self, data): """ Takes data from the plugin media chooser """ diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 51ffcc1e1..597c0a3b1 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -17,88 +17,11 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -import logging import os - +from time import sleep from PyQt4 import QtCore, QtGui -from PyQt4.QtCore import * -from PyQt4.QtGui import * - -class SlideData(QAbstractListModel): - """ - Tree of items for an order of Theme. - Includes methods for reading and writing the contents to an OOS file - Root contains a list of ThemeItems - """ - global log - log=logging.getLogger(u'SlideData') - - def __init__(self): - QAbstractListModel.__init__(self) - self.items=[] - self.rowheight=50 - self.maximagewidth=self.rowheight*16/9.0; - log.info(u'Starting') - - def clearItems(self): - self.items=[] - - def rowCount(self, parent): - return len(self.items) - - def insertRow(self, row, frame, text): - self.beginInsertRows(QModelIndex(),row,row) - log.info(u'insert row %d' % row) - # create a preview image - self.items.insert(row,(frame, text)) - log.info(u'Items: %s' % self.items) - self.endInsertRows() - - def removeRow(self, row): - self.beginRemoveRows(QModelIndex(), row,row) - self.items.pop(row) - self.endRemoveRows() - - def addRow(self, frame, text): - self.insertRow(len(self.items), frame, text) - - def data(self, index, role): - row=index.row() - if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row! - return QVariant() - if role==Qt.DisplayRole: - retval= self.items[row][1] - elif role == Qt.DecorationRole: - retval= self.items[row][0] - else: - retval= QVariant() -# log.info("Returning"+ str(retval)) - if type(retval) is not type(QVariant): - return QVariant(retval) - else: - return retval - - def __iter__(self): - for i in self.items: - yield i - - def getValue(self, index): - row = index.row() - return self.items[row] - - def getItem(self, row): - log.info(u'Get Item:%d -> %s' %(row, str(self.items))) - return self.items[row] - - def getList(self): - filelist = [item[3] for item in self.items]; - return filelist - class SlideController(QtGui.QWidget): - global log - log=logging.getLogger(u'SlideController') - def __init__(self, control_splitter): QtGui.QWidget.__init__(self) self.Pane = QtGui.QWidget(control_splitter) @@ -117,18 +40,11 @@ class SlideController(QtGui.QWidget): self.Controller = QtGui.QScrollArea(self.Splitter) self.Controller.setWidgetResizable(True) - #self.ControllerContents = QtGui.QWidget(self.Controller) - #self.ControllerContents.setGeometry(QtCore.QRect(0, 0, 228, 536)) - - self.CustomListView = QtGui.QListView(self.Splitter) - self.CustomListView.setAlternatingRowColors(True) - self.CustomListData = SlideData() - self.CustomListView.setModel(self.CustomListData) + self.ControllerContents = QtGui.QWidget(self.Controller) + self.ControllerContents.setGeometry(QtCore.QRect(0, 0, 228, 536)) self.Controller.setGeometry(QtCore.QRect(0, 0, 828, 536)) - #self.Controller.setWidget(self.ControllerContents) - - self.Controller.setWidget(self.CustomListView) + self.Controller.setWidget(self.ControllerContents) self.SlidePreview = QtGui.QLabel(self.Splitter) sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) @@ -144,19 +60,8 @@ class SlideController(QtGui.QWidget): self.SlidePreview.setObjectName("SlidePreview") def previewFrame(self, frame): - #self.SlidePreview.setPixmap(frame) + self.SlidePreview.setPixmap(frame) - # imageLabel = QtGui.QLabel() - #imageLabel.setPixmap(frame) - # self.Controller.setWidget(imageLabel) - pass - - def addServiceItem(self, serviceitem): - self.serviceitem = serviceitem - self.serviceitem.render() - print self.serviceitem.frames - for frame in self.serviceitem.frames: - self.CustomListData.addRow(frame, u'some text') - - def render(self): - pass + imageLabel = QtGui.QLabel() + imageLabel.setPixmap(frame) + self.Controller.setWidget(imageLabel) diff --git a/openlp/plugins/custom/lib/mediaitem.py b/openlp/plugins/custom/lib/mediaitem.py index 2e035cb63..dbfe43578 100644 --- a/openlp/plugins/custom/lib/mediaitem.py +++ b/openlp/plugins/custom/lib/mediaitem.py @@ -24,7 +24,6 @@ from PyQt4 import QtCore, QtGui from openlp.core import translate from openlp.core.lib import MediaManagerItem from openlp.core.lib import SongXMLParser -from openlp.core.lib import ServiceItem from openlp.plugins.custom.lib import TextListData @@ -38,7 +37,6 @@ class CustomMediaItem(MediaManagerItem): def __init__(self, parent, icon, title): MediaManagerItem.__init__(self, parent, icon, title) - self.parent = parent def setupUi(self): # Add a toolbar @@ -187,26 +185,9 @@ class CustomMediaItem(MediaManagerItem): self.CustomListData.deleteRow(index) def onCustomPreviewClick(self): - service_item = ServiceItem(self.parent) - service_item.render_manager = self.parent.render_manager - self.generateSlideData(service_item) - self.parent.preview_controller.addServiceItem(service_item) - - def onCustomLiveClick(self): - service_item = ServiceItem(self.parent) - service_item.render_manager = self.parent.render_manager - self.generateSlideData(service_item) - self.parent.live_controller.addServiceItem(service_item) - - def onCustomAddClick(self): - service_item = ServiceItem(self.parent) - service_item.render_manager = self.parent.render_manager - self.generateSlideData(service_item) - - def generateSlideData(self, service_item): indexes = self.CustomListView.selectedIndexes() - raw_slides =[] - raw_footer = [] + main_lines=[] + footer_lines = [] slide = None theme = None for index in indexes: @@ -219,16 +200,21 @@ class CustomMediaItem(MediaManagerItem): self.parent.render_manager.set_override_theme(None) else: self.parent.render_manager.set_override_theme(theme) - service_item.theme = theme + songXML=SongXMLParser(customSlide.text) verseList = songXML.get_verses() for verse in verseList: slide = self.parent.render_manager.format_slide(verse[1], False) - raw_slides.append(verse[1]) + print verse + print slide - raw_footer.append(title + u' '+ credit) + footer_lines.append(title + u' '+ credit) if slide is not None: - frame=self.parent.render_manager.generate_slide(slide, raw_footer, False) + frame=self.parent.render_manager.generate_slide(slide, footer_lines, False) self.parent.preview_controller.previewFrame(frame) - service_item.raw_slides = raw_slides - service_item.raw_footer = raw_footer + + def onCustomLiveClick(self): + pass + + def onCustomAddClick(self): + pass