Saving OOS changes and other cleanups

This commit is contained in:
Tim Bentley 2009-08-31 19:27:36 +01:00
parent 4c2b9fe426
commit 94a3513bb1
4 changed files with 58 additions and 51 deletions

View File

@ -96,7 +96,6 @@ class ServiceItem(object):
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 == ServiceType.Command: elif self.service_item_type == ServiceType.Command:
self.frames = self.service_frames self.frames = self.service_frames
self.service_frames = []
elif self.service_item_type == ServiceType.Image: elif self.service_item_type == ServiceType.Image:
for slide in self.service_frames: for slide in self.service_frames:
slide[u'image'] = self.RenderManager.resize_image(slide[u'image']) slide[u'image'] = self.RenderManager.resize_image(slide[u'image'])
@ -135,7 +134,7 @@ class ServiceItem(object):
frame_title = frame_title.split(u'\n')[0] frame_title = frame_title.split(u'\n')[0]
self.service_frames.append({u'title': frame_title, u'raw_slide': raw_slide}) self.service_frames.append({u'title': frame_title, u'raw_slide': raw_slide})
def add_from_command(self, path , frame_title, command): def add_from_command(self, path , frame_title):
""" """
Add a slide from a command. Add a slide from a command.
@ -147,7 +146,7 @@ class ServiceItem(object):
""" """
self.service_item_type = ServiceType.Command self.service_item_type = ServiceType.Command
self.service_item_path = path self.service_item_path = path
self.service_frames.append({u'title': frame_title, u'command': command}) self.service_frames.append({u'title': frame_title, u'command': None})
def get_oos_repr(self): def get_oos_repr(self):
""" """
@ -169,6 +168,9 @@ class ServiceItem(object):
elif self.service_item_type == ServiceType.Image: elif self.service_item_type == ServiceType.Image:
for slide in self.service_frames: for slide in self.service_frames:
oos_data.append(slide[u'title']) oos_data.append(slide[u'title'])
elif self.service_item_type == ServiceType.Command:
for slide in self.service_frames:
oos_data.append(slide[u'title'])
return {u'header': oos_header, u'data': oos_data} return {u'header': oos_header, u'data': oos_data}
def set_from_oos(self, serviceitem, path=None): def set_from_oos(self, serviceitem, path=None):
@ -197,3 +199,7 @@ class ServiceItem(object):
filename = os.path.join(path, text_image) filename = os.path.join(path, text_image)
real_image = QtGui.QImage(unicode(filename)) real_image = QtGui.QImage(unicode(filename))
self.add_from_image(path, text_image, real_image) self.add_from_image(path, text_image, real_image)
elif self.service_item_type == ServiceType.Command:
for text_image in serviceitem[u'serviceitem'][u'data']:
filename = os.path.join(path, text_image)
self.add_from_command(path, text_image)

View File

@ -25,7 +25,7 @@ import shutil
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, \ from openlp.core.lib import PluginConfig, OpenLPToolbar, ServiceItem, \
RenderManager, translate, buildIcon, \ RenderManager, translate, buildIcon, ServiceType, \
contextMenuAction, contextMenuSeparator, Receiver contextMenuAction, contextMenuSeparator, Receiver
from openlp.core.utils import ConfigHelper from openlp.core.utils import ConfigHelper
@ -341,7 +341,8 @@ class ServiceManager(QtGui.QWidget):
zip = zipfile.ZipFile(unicode(filename) + u'.oos', 'w') zip = zipfile.ZipFile(unicode(filename) + u'.oos', 'w')
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()})
if item[u'data'].service_item_type == u'image': if item[u'data'].service_item_type == ServiceType.Image or \
item[u'data'].service_item_type == ServiceType.Command:
for frame in item[u'data'].frames: for frame in item[u'data'].frames:
path_from = unicode(item[u'data'].service_item_path + u'/' + frame[u'title']) path_from = unicode(item[u'data'].service_item_path + u'/' + frame[u'title'])
zip.write(path_from) zip.write(path_from)
@ -354,7 +355,7 @@ class ServiceManager(QtGui.QWidget):
os.remove(servicefile) os.remove(servicefile)
except: except:
pass #if not present do not worry pass #if not present do not worry
self.parent.OosChanged(True, self.serviceName) self.parent.OosChanged(True, filename + u'.oos')
def onLoadService(self): def onLoadService(self):
""" """
@ -368,31 +369,34 @@ class ServiceManager(QtGui.QWidget):
name = filename.split(os.path.sep) name = filename.split(os.path.sep)
if filename != u'': if filename != u'':
self.config.set_last_dir(filename) self.config.set_last_dir(filename)
zip = zipfile.ZipFile(unicode(filename))
filexml = None
themename = None
for file in zip.namelist():
names = file.split(os.path.sep)
file_to = os.path.join(self.servicePath, names[len(names) - 1])
file_data = zip.read(file)
f = open(file_to, u'w')
f.write(file_data)
f.close()
if file_to.endswith(u'ood'):
p_file = file_to
f = open(p_file, u'r')
items = cPickle.load(f)
f.close()
self.onNewService()
for item in items:
serviceitem = ServiceItem()
serviceitem.RenderManager = self.parent.RenderManager
serviceitem.set_from_oos(item, self.servicePath )
self.addServiceItem(serviceitem)
try: try:
os.remove(p_file) zip = zipfile.ZipFile(unicode(filename))
filexml = None
themename = None
for file in zip.namelist():
names = file.split(os.path.sep)
file_to = os.path.join(self.servicePath, names[len(names) - 1])
file_data = zip.read(file)
f = open(file_to, u'w')
f.write(file_data)
f.close()
if file_to.endswith(u'ood'):
p_file = file_to
f = open(p_file, u'r')
items = cPickle.load(f)
f.close()
self.onNewService()
for item in items:
serviceitem = ServiceItem()
serviceitem.RenderManager = self.parent.RenderManager
serviceitem.set_from_oos(item, self.servicePath )
self.addServiceItem(serviceitem)
try:
os.remove(p_file)
except:
#if not present do not worry
pass
except: except:
#if not present do not worry
pass pass
self.serviceName = name[len(name) - 1] self.serviceName = name[len(name) - 1]
self.parent.OosChanged(True, self.serviceName) self.parent.OosChanged(True, self.serviceName)

View File

@ -341,8 +341,10 @@ class BibleMediaItem(MediaManagerItem):
def generateSlideData(self, service_item): def generateSlideData(self, service_item):
log.debug(u'generating slide data') log.debug(u'generating slide data')
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
if len(items) > 1:
return
old_chapter = u'' old_chapter = u''
raw_slides=[] raw_slides = []
raw_footer = [] raw_footer = []
bible_text = u'' bible_text = u''
for item in items: for item in items:
@ -445,17 +447,17 @@ class BibleMediaItem(MediaManagerItem):
def searchByReference(self, bible, search): def searchByReference(self, bible, search):
log.debug(u'searchByReference %s ,%s', bible, search) log.debug(u'searchByReference %s ,%s', bible, search)
book = '' book = u''
start_chapter = '' start_chapter = u''
end_chapter = '' end_chapter = u''
start_verse = '' start_verse = u''
end_verse = '' end_verse = u''
search = search.replace(u' ', u' ').strip() search = search.replace(u' ', u' ').strip()
original = search original = search
message = None message = None
# Remove book beware 0 index arrays # Remove book beware 0 index arrays
for i in range (len(search)-1, 0, - 1): for i in range (len(search)-1, 0, - 1):
if search[i] == ' ': if search[i] == u' ':
book = search[:i] book = search[:i]
# remove book from string # remove book from string
search = search[i:] search = search[i:]
@ -469,7 +471,7 @@ class BibleMediaItem(MediaManagerItem):
# number : found # number : found
i = search.rfind(u' ') i = search.rfind(u' ')
if i == -1: if i == -1:
chapter = '' chapter = u''
else: else:
chapter = search[i:len(search)] chapter = search[i:len(search)]
hyphen = chapter.find(u'-') hyphen = chapter.find(u'-')
@ -496,29 +498,25 @@ class BibleMediaItem(MediaManagerItem):
end_verse = start_verse end_verse = start_verse
else: else:
sp1 = sp[1].split(u':') sp1 = sp[1].split(u':')
#print "2nd details", sp1, len(sp1)
if len(sp1) == 1: if len(sp1) == 1:
end_chapter = start_chapter end_chapter = start_chapter
end_verse = sp1[0] end_verse = sp1[0]
else: else:
end_chapter = sp1[0] end_chapter = sp1[0]
end_verse = sp1[1] end_verse = sp1[1]
#print 'search = ' + unicode(original) if end_chapter == u'':
#print 'results = ' + unicode(book) + ' @ '+ unicode(start_chapter)+' @ '+ unicode(end_chapter)+' @ '+ unicode(start_verse)+ ' @ '+ unicode(end_verse)
if end_chapter == '':
end_chapter = start_chapter.rstrip() end_chapter = start_chapter.rstrip()
if start_verse == '': if start_verse == u'':
if end_verse == '': if end_verse == u'':
start_verse = 1 start_verse = 1
else: else:
start_verse = end_verse start_verse = end_verse
if end_verse == '': if end_verse == u'':
end_verse = 99 end_verse = 99
if start_chapter == '': if start_chapter == u'':
message = u'No chapter found for search criteria' message = u'No chapter found for search criteria'
#print 'message = ' + unicode(message) log.debug(u'results = %s @ %s : %s @ %s : %s'% \
#print 'search = ' + unicode(original) (unicode(book), unicode(start_chapter), unicode(end_chapter), unicode(start_verse), unicode(end_verse)))
#print 'results = ' + unicode(book) + ' @ '+ unicode(start_chapter)+' @ '+ unicode(end_chapter)+' @ '+ unicode(start_verse)+ ' @ '+ unicode(end_verse)
if message == None: if message == None:
self.search_results = None self.search_results = None
self.search_results = self.parent.biblemanager.get_verse_text(bible, book, self.search_results = self.parent.biblemanager.get_verse_text(bible, book,

View File

@ -99,11 +99,10 @@ class PresentationMediaItem(MediaManagerItem):
def generateSlideData(self, service_item): def generateSlideData(self, service_item):
items = self.ListView.selectedIndexes() items = self.ListView.selectedIndexes()
service_item.title = self.DisplayTypeComboBox.currentText() service_item.title = unicode(self.DisplayTypeComboBox.currentText())
service_item.shortname = unicode(self.DisplayTypeComboBox.currentText()) service_item.shortname = unicode(self.DisplayTypeComboBox.currentText())
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())
frame = QtGui.QImage(unicode(filename))
(path, name) = os.path.split(filename) (path, name) = os.path.split(filename)
service_item.add_from_command(path, name, frame) service_item.add_from_command(path, name)