forked from openlp/openlp
Fix up Order of Service code for Text events
This commit is contained in:
parent
f9f67c59ea
commit
ade5671319
@ -32,11 +32,13 @@ class ServiceItem():
|
|||||||
log=logging.getLogger(u'ServiceItem')
|
log=logging.getLogger(u'ServiceItem')
|
||||||
log.info(u'Service Item created')
|
log.info(u'Service Item created')
|
||||||
|
|
||||||
def __init__(self, hostplugin):
|
def __init__(self, hostplugin=None):
|
||||||
"""
|
"""
|
||||||
Init Method
|
Init Method
|
||||||
"""
|
"""
|
||||||
self.plugin = hostplugin
|
self.plugin = hostplugin
|
||||||
|
if hostplugin is not None:
|
||||||
|
self.RenderManager = self.plugin.render_manager
|
||||||
self.shortname = hostplugin.name
|
self.shortname = hostplugin.name
|
||||||
self.title = u''
|
self.title = u''
|
||||||
self.items = []
|
self.items = []
|
||||||
@ -47,7 +49,7 @@ class ServiceItem():
|
|||||||
self.frames = []
|
self.frames = []
|
||||||
self.raw_footer = None
|
self.raw_footer = None
|
||||||
self.theme = None
|
self.theme = None
|
||||||
log.debug(u'Service item created for %s ', self.shortname)
|
#log.debug(u'Service item created for %s ', self.shortname)
|
||||||
self.service_frames = []
|
self.service_frames = []
|
||||||
|
|
||||||
def addIcon(self, icon):
|
def addIcon(self, icon):
|
||||||
@ -60,15 +62,15 @@ class ServiceItem():
|
|||||||
"""
|
"""
|
||||||
log.debug(u'Render called')
|
log.debug(u'Render called')
|
||||||
if self.theme == None:
|
if self.theme == None:
|
||||||
self.plugin.render_manager.set_override_theme(None)
|
self.RenderManager.set_override_theme(None)
|
||||||
else:
|
else:
|
||||||
self.plugin.render_manager.set_override_theme(self.theme)
|
self.RenderManager.set_override_theme(self.theme)
|
||||||
log.debug(u'Formatting slides')
|
log.debug(u'Formatting slides')
|
||||||
if self.service_item_type == u'text':
|
if self.service_item_type == u'text':
|
||||||
for slide in self.service_frames:
|
for slide in self.service_frames:
|
||||||
formated = self.plugin.render_manager.format_slide(slide[u'raw_slide'])
|
formated = self.RenderManager.format_slide(slide[u'raw_slide'])
|
||||||
for format in formated:
|
for format in formated:
|
||||||
frame = self.plugin.render_manager.generate_slide(format, self.raw_footer)
|
frame = self.RenderManager.generate_slide(format, self.raw_footer)
|
||||||
self.frames.append({u'title': slide[u'title'], u'image': frame})
|
self.frames.append({u'title': slide[u'title'], u'image': frame})
|
||||||
elif self.service_item_type == u'command':
|
elif self.service_item_type == u'command':
|
||||||
self.frames = self.service_frames
|
self.frames = self.service_frames
|
||||||
@ -77,7 +79,7 @@ class ServiceItem():
|
|||||||
self.frames = self.service_frames
|
self.frames = self.service_frames
|
||||||
self.service_frames = []
|
self.service_frames = []
|
||||||
else:
|
else:
|
||||||
log.error(u'Invalid value rendere :%s' % self.service_item_type)
|
log.error(u'Invalid value renderer :%s' % self.service_item_type)
|
||||||
|
|
||||||
def add_from_image(self, frame_title, image):
|
def add_from_image(self, frame_title, image):
|
||||||
self.service_item_type = u'image'
|
self.service_item_type = u'image'
|
||||||
@ -97,17 +99,24 @@ class ServiceItem():
|
|||||||
This method returns some text which can be saved into the OOS
|
This method returns some text which can be saved into the OOS
|
||||||
file to represent this item
|
file to represent this item
|
||||||
"""
|
"""
|
||||||
oos_header = {u'type': self.shortname,u'theme':self.theme, u'title':self.title,
|
oos_header = {u'plugin': self.shortname,u'theme':self.theme, u'title':self.title,
|
||||||
u'icon':self.icon, u'footer':self.raw_footer}
|
u'icon':self.icon, u'footer':self.raw_footer, u'type':self.service_item_type}
|
||||||
oos_data = []
|
oos_data = []
|
||||||
if self.service_item_type == u'text':
|
if self.service_item_type == u'text':
|
||||||
for slide in self.service_frames:
|
for slide in self.service_frames:
|
||||||
oos_data.append(slide[u'raw_slide'])
|
oos_data.append(slide[u'raw_slide'])
|
||||||
return {u'header': oos_header, u'data': oos_data}
|
return {u'header': oos_header, u'data': self.service_frames}
|
||||||
|
|
||||||
def set_from_oos(self, oostext):
|
def set_from_oos(self, serviceitem):
|
||||||
"""
|
"""
|
||||||
This method takes some oostext (passed from the ServiceManager)
|
This method takes some oostext (passed from the ServiceManager)
|
||||||
and parses it into the data actually required
|
and parses it into the data actually required
|
||||||
"""
|
"""
|
||||||
pass
|
header = serviceitem[u'serviceitem'][u'header']
|
||||||
|
self.title = header[u'title']
|
||||||
|
self.service_item_type = header[u'type']
|
||||||
|
self.shortname = header[u'plugin']
|
||||||
|
self.theme = header[u'theme']
|
||||||
|
self.addIcon(header[u'icon'])
|
||||||
|
self.raw_footer = header[u'footer']
|
||||||
|
self.service_frames = serviceitem[u'serviceitem'][u'data']
|
||||||
|
@ -19,6 +19,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import logging
|
import logging
|
||||||
|
import cPickle
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, Event, \
|
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, Event, \
|
||||||
@ -134,7 +135,8 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
Clear the list to create a new service
|
Clear the list to create a new service
|
||||||
"""
|
"""
|
||||||
self.service_data.clearItems()
|
self.ServiceManagerList.clear()
|
||||||
|
self.serviceItems = []
|
||||||
|
|
||||||
def onDeleteFromService(self):
|
def onDeleteFromService(self):
|
||||||
"""
|
"""
|
||||||
@ -146,16 +148,34 @@ class ServiceManager(QtGui.QWidget):
|
|||||||
"""
|
"""
|
||||||
Save the current service
|
Save the current service
|
||||||
"""
|
"""
|
||||||
|
filename = QtGui.QFileDialog.getSaveFileName(self, u'Save Order of Service',self.config.get_last_dir() )
|
||||||
|
if filename != u'':
|
||||||
|
self.config.set_last_dir(filename)
|
||||||
|
print filename
|
||||||
service = []
|
service = []
|
||||||
for item in self.serviceItems:
|
for item in self.serviceItems:
|
||||||
service.append({u'serviceitem':item[u'data'].get_oos_repr()})
|
service.append({u'serviceitem':item[u'data'].get_oos_repr()})
|
||||||
print service
|
file = open(filename+u'.oos', u'wb')
|
||||||
|
cPickle.dump(service, file)
|
||||||
|
file.close()
|
||||||
|
|
||||||
def onLoadService(self):
|
def onLoadService(self):
|
||||||
"""
|
"""
|
||||||
Load an existing service from disk
|
Load an existing service from disk
|
||||||
"""
|
"""
|
||||||
pass
|
filename = QtGui.QFileDialog.getOpenFileName(self, u'Open Order of Service',self.config.get_last_dir(),
|
||||||
|
u'Services (*.oos)')
|
||||||
|
if filename != u'':
|
||||||
|
self.config.set_last_dir(filename)
|
||||||
|
file = open(filename, u'r')
|
||||||
|
items = cPickle.load(file)
|
||||||
|
file.close()
|
||||||
|
self.onNewService()
|
||||||
|
for item in items:
|
||||||
|
serviceitem = ServiceItem()
|
||||||
|
serviceitem.RenderManager = self.parent.RenderManager
|
||||||
|
serviceitem.set_from_oos(item)
|
||||||
|
self.addServiceItem(serviceitem)
|
||||||
|
|
||||||
def onThemeComboBoxSelected(self, currentIndex):
|
def onThemeComboBoxSelected(self, currentIndex):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user