forked from openlp/openlp
sof wizard
This commit is contained in:
parent
530530d791
commit
8b79abdfe6
@ -28,6 +28,7 @@ import os
|
|||||||
|
|
||||||
from PyQt4 import QtCore
|
from PyQt4 import QtCore
|
||||||
|
|
||||||
|
from openlp.core.lib import Receiver
|
||||||
from songimport import SongImport
|
from songimport import SongImport
|
||||||
|
|
||||||
if os.name == u'nt':
|
if os.name == u'nt':
|
||||||
@ -43,23 +44,30 @@ else:
|
|||||||
except ImportError:
|
except ImportError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class OooImport(object):
|
class OooImport(SongImport):
|
||||||
"""
|
"""
|
||||||
Import songs from Impress/Powerpoint docs using Impress
|
Import songs from Impress/Powerpoint docs using Impress
|
||||||
"""
|
"""
|
||||||
def __init__(self, songmanager):
|
def __init__(self, master_manager, **kwargs):
|
||||||
"""
|
"""
|
||||||
Initialise the class. Requires a songmanager class which is passed
|
Initialise the class. Requires a songmanager class which is passed
|
||||||
to SongImport for writing song to disk
|
to SongImport for writing song to disk
|
||||||
"""
|
"""
|
||||||
self.song = None
|
self.song = None
|
||||||
self.manager = songmanager
|
self.master_manager = master_manager
|
||||||
self.document = None
|
self.document = None
|
||||||
self.process_started = False
|
self.process_started = False
|
||||||
|
self.filenames = kwargs[u'filenames']
|
||||||
|
QtCore.QObject.connect(Receiver.get_receiver(),
|
||||||
|
QtCore.SIGNAL(u'openlp_stop_song_import'), self.stop_import)
|
||||||
|
|
||||||
def import_docs(self, filenames):
|
def do_import(self):
|
||||||
|
self.abort = False
|
||||||
self.start_ooo()
|
self.start_ooo()
|
||||||
for filename in filenames:
|
for filename in self.filenames:
|
||||||
|
if self.abort:
|
||||||
|
self.wizard.incrementProgressBar(u'Import cancelled')
|
||||||
|
return
|
||||||
filename = unicode(filename)
|
filename = unicode(filename)
|
||||||
if os.path.isfile(filename):
|
if os.path.isfile(filename):
|
||||||
self.open_ooo_file(filename)
|
self.open_ooo_file(filename)
|
||||||
@ -73,6 +81,9 @@ class OooImport(object):
|
|||||||
self.close_ooo_file()
|
self.close_ooo_file()
|
||||||
self.close_ooo()
|
self.close_ooo()
|
||||||
|
|
||||||
|
def stop_import(self):
|
||||||
|
self.abort = True
|
||||||
|
|
||||||
def start_ooo(self):
|
def start_ooo(self):
|
||||||
"""
|
"""
|
||||||
Start OpenOffice.org process
|
Start OpenOffice.org process
|
||||||
@ -135,6 +146,8 @@ class OooImport(object):
|
|||||||
"com.sun.star.presentation.PresentationDocument") and not \
|
"com.sun.star.presentation.PresentationDocument") and not \
|
||||||
self.document.supportsService("com.sun.star.text.TextDocument"):
|
self.document.supportsService("com.sun.star.text.TextDocument"):
|
||||||
self.close_ooo_file()
|
self.close_ooo_file()
|
||||||
|
else:
|
||||||
|
self.wizard.incrementProgressBar(u'Processing file ' + filepath)
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
return
|
return
|
||||||
@ -161,6 +174,9 @@ class OooImport(object):
|
|||||||
slides = doc.getDrawPages()
|
slides = doc.getDrawPages()
|
||||||
text = u''
|
text = u''
|
||||||
for slide_no in range(slides.getCount()):
|
for slide_no in range(slides.getCount()):
|
||||||
|
if self.abort:
|
||||||
|
self.wizard.incrementProgressBar(u'Import cancelled')
|
||||||
|
return
|
||||||
slide = slides.getByIndex(slide_no)
|
slide = slides.getByIndex(slide_no)
|
||||||
slidetext = u''
|
slidetext = u''
|
||||||
for idx in range(slide.getCount()):
|
for idx in range(slide.getCount()):
|
||||||
|
@ -68,18 +68,26 @@ class SofImport(OooImport):
|
|||||||
It attempts to detect italiced verses, and treats these as choruses in
|
It attempts to detect italiced verses, and treats these as choruses in
|
||||||
the verse ordering. Again not perfect, but a start.
|
the verse ordering. Again not perfect, but a start.
|
||||||
"""
|
"""
|
||||||
def __init__(self, songmanager):
|
def __init__(self, master_manager, **kwargs):
|
||||||
"""
|
"""
|
||||||
Initialise the class. Requires a songmanager class which is passed
|
Initialise the class. Requires a songmanager class which is passed
|
||||||
to SongImport for writing song to disk
|
to SongImport for writing song to disk
|
||||||
"""
|
"""
|
||||||
OooImport.__init__(self, songmanager)
|
OooImport.__init__(self,master_manager, **kwargs)
|
||||||
|
|
||||||
def import_sof(self, filename):
|
def do_import(self):
|
||||||
|
self.abort = False
|
||||||
self.start_ooo()
|
self.start_ooo()
|
||||||
self.open_ooo_file(filename)
|
for filename in self.filenames:
|
||||||
self.process_sof_file()
|
if self.abort:
|
||||||
self.close_ooo_file()
|
self.wizard.incrementProgressBar(u'Import cancelled')
|
||||||
|
return
|
||||||
|
filename = unicode(filename)
|
||||||
|
if os.path.isfile(filename):
|
||||||
|
self.open_ooo_file(filename)
|
||||||
|
if self.document:
|
||||||
|
self.process_sof_file()
|
||||||
|
self.close_ooo_file()
|
||||||
self.close_ooo()
|
self.close_ooo()
|
||||||
|
|
||||||
def process_sof_file(self):
|
def process_sof_file(self):
|
||||||
@ -90,6 +98,9 @@ class SofImport(OooImport):
|
|||||||
self.new_song()
|
self.new_song()
|
||||||
paragraphs = self.document.getText().createEnumeration()
|
paragraphs = self.document.getText().createEnumeration()
|
||||||
while paragraphs.hasMoreElements():
|
while paragraphs.hasMoreElements():
|
||||||
|
if self.abort:
|
||||||
|
self.wizard.incrementProgressBar(u'Import cancelled')
|
||||||
|
return
|
||||||
paragraph = paragraphs.nextElement()
|
paragraph = paragraphs.nextElement()
|
||||||
if paragraph.supportsService("com.sun.star.text.Paragraph"):
|
if paragraph.supportsService("com.sun.star.text.Paragraph"):
|
||||||
self.process_paragraph(paragraph)
|
self.process_paragraph(paragraph)
|
||||||
@ -244,6 +255,7 @@ class SofImport(OooImport):
|
|||||||
if title.endswith(u','):
|
if title.endswith(u','):
|
||||||
title = title[:-1]
|
title = title[:-1]
|
||||||
self.song.title = title
|
self.song.title = title
|
||||||
|
self.wizard.incrementProgressBar(u'Processing song ' + title)
|
||||||
|
|
||||||
def add_author(self, text):
|
def add_author(self, text):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user