bzr-revno: 1031
This commit is contained in:
Jon Tibble 2010-09-14 16:32:39 +01:00
commit 28f8dbcfe3
10 changed files with 76 additions and 87 deletions

View File

@ -38,63 +38,48 @@ log = logging.getLogger(__name__)
# TODO make external and configurable in alpha 4 via a settings dialog # TODO make external and configurable in alpha 4 via a settings dialog
html_expands = [] html_expands = []
html_expands.append({u'desc':u'Red', u'start tag':u'{r}', \ html_expands.append({u'desc':u'Red', u'start tag':u'{r}',
u'start html':u'<span style="-webkit-text-fill-color:red">', \ u'start html':u'<span style="-webkit-text-fill-color:red">',
u'end tag':u'{/r}', u'end html':u'</span>', \ u'end tag':u'{/r}', u'end html':u'</span>', u'protected':False})
u'protected':False}) html_expands.append({u'desc':u'Black', u'start tag':u'{b}',
html_expands.append({u'desc':u'Black', u'start tag':u'{b}', \ u'start html':u'<span style="-webkit-text-fill-color:black">',
u'start html':u'<span style="-webkit-text-fill-color:black">', \ u'end tag':u'{/b}', u'end html':u'</span>', u'protected':False})
u'end tag':u'{/b}', u'end html':u'</span>', \ html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}',
u'protected':False}) u'start html':u'<span style="-webkit-text-fill-color:blue">',
html_expands.append({u'desc':u'Blue', u'start tag':u'{bl}', \ u'end tag':u'{/bl}', u'end html':u'</span>', u'protected':False})
u'start html':u'<span style="-webkit-text-fill-color:blue">', \ html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}',
u'end tag':u'{/bl}', u'end html':u'</span>', \ u'start html':u'<span style="-webkit-text-fill-color:yellow">',
u'protected':False}) u'end tag':u'{/y}', u'end html':u'</span>', u'protected':False})
html_expands.append({u'desc':u'Yellow', u'start tag':u'{y}', \ html_expands.append({u'desc':u'Green', u'start tag':u'{g}',
u'start html':u'<span style="-webkit-text-fill-color:yellow">', \ u'start html':u'<span style="-webkit-text-fill-color:green">',
u'end tag':u'{/y}', u'end html':u'</span>', \ u'end tag':u'{/g}', u'end html':u'</span>', u'protected':False})
u'protected':False}) html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}',
html_expands.append({u'desc':u'Green', u'start tag':u'{g}', \ u'start html':u'<span style="-webkit-text-fill-color:#CC33CC">',
u'start html':u'<span style="-webkit-text-fill-color:green">', \ u'end tag':u'{/pk}', u'end html':u'</span>', u'protected':False})
u'end tag':u'{/g}', u'end html':u'</span>', \ html_expands.append({u'desc':u'Orange', u'start tag':u'{o}',
u'protected':False}) u'start html':u'<span style="-webkit-text-fill-color:#CC0033">',
html_expands.append({u'desc':u'Pink', u'start tag':u'{pk}', \ u'end tag':u'{/o}', u'end html':u'</span>', u'protected':False})
u'start html':u'<span style="-webkit-text-fill-color:#CC33CC">', \ html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}',
u'end tag':u'{/pk}', u'end html':u'</span>', \ u'start html':u'<span style="-webkit-text-fill-color:#9900FF">',
u'protected':False}) u'end tag':u'{/pp}', u'end html':u'</span>', u'protected':False})
html_expands.append({u'desc':u'Orange', u'start tag':u'{o}', \ html_expands.append({u'desc':u'White', u'start tag':u'{w}',
u'start html':u'<span style="-webkit-text-fill-color:#CC0033">', \ u'start html':u'<span style="-webkit-text-fill-color:white">',
u'end tag':u'{/o}', u'end html':u'</span>', \ u'end tag':u'{/w}', u'end html':u'</span>', u'protected':False})
u'protected':False}) html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}',
html_expands.append({u'desc':u'Purple', u'start tag':u'{pp}', \ u'start html':u'<sup>', u'end tag':u'{/su}', u'end html':u'</sup>',
u'start html':u'<span style="-webkit-text-fill-color:#9900FF">', \ u'protected':True})
u'end tag':u'{/pp}', u'end html':u'</span>', \ html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}',
u'protected':False}) u'start html':u'<sub>', u'end tag':u'{/sb}', u'end html':u'</sub>',
html_expands.append({u'desc':u'White', u'start tag':u'{w}', \ u'protected':True})
u'start html':u'<span style="-webkit-text-fill-color:white">', \ html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}',
u'end tag':u'{/w}', u'end html':u'</span>', \ u'start html':u'<p>', u'end tag':u'{/p}', u'end html':u'</p>',
u'protected':False}) u'protected':True})
html_expands.append({u'desc':u'Superscript', u'start tag':u'{su}', \ html_expands.append({u'desc':u'Bold', u'start tag':u'{st}',
u'start html':u'<sup>', \ u'start html':u'<strong>', u'end tag':u'{/st}', u'end html':u'</strong>',
u'end tag':u'{/su}', u'end html':u'</sup>', \ u'protected':True})
u'protected':True}) html_expands.append({u'desc':u'Italics', u'start tag':u'{it}',
html_expands.append({u'desc':u'Subscript', u'start tag':u'{sb}', \ u'start html':u'<em>', u'end tag':u'{/it}', u'end html':u'</em>',
u'start html':u'<sub>', \ u'protected':True})
u'end tag':u'{/sb}', u'end html':u'</sub>', \
u'protected':True})
html_expands.append({u'desc':u'Paragraph', u'start tag':u'{p}', \
u'start html':u'<p>', \
u'end tag':u'{/p}', u'end html':u'</p>', \
u'protected':True})
html_expands.append({u'desc':u'Bold', u'start tag':u'{st}', \
u'start html':u'<strong>', \
u'end tag':u'{/st}', \
u'end html':u'</strong>', \
u'protected':True})
html_expands.append({u'desc':u'Italics', u'start tag':u'{it}', \
u'start html':u'<em>', \
u'end tag':u'{/it}', u'end html':u'</em>', \
u'protected':True})
def translate(context, text, comment=None): def translate(context, text, comment=None):
""" """

View File

@ -432,7 +432,7 @@ class MediaManagerItem(QtGui.QWidget):
raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to ' raise NotImplementedError(u'MediaManagerItem.onDeleteClick needs to '
u'be defined by the plugin') u'be defined by the plugin')
def generateSlideData(self, service_item, item): def generateSlideData(self, service_item, item=None):
raise NotImplementedError(u'MediaManagerItem.generateSlideData needs ' raise NotImplementedError(u'MediaManagerItem.generateSlideData needs '
u'to be defined by the plugin') u'to be defined by the plugin')

View File

@ -120,7 +120,7 @@ class MainDisplay(DisplayWidget):
self.setScene(self.scene) self.setScene(self.scene)
self.webView = QtWebKit.QGraphicsWebView() self.webView = QtWebKit.QGraphicsWebView()
self.scene.addItem(self.webView) self.scene.addItem(self.webView)
self.webView.resize(self.screen[u'size'].width(), \ self.webView.resize(self.screen[u'size'].width(),
self.screen[u'size'].height()) self.screen[u'size'].height())
self.page = self.webView.page() self.page = self.webView.page()
self.frame = self.page.mainFrame() self.frame = self.page.mainFrame()
@ -336,7 +336,7 @@ class MainDisplay(DisplayWidget):
self.loaded = False self.loaded = False
self.initialFrame = False self.initialFrame = False
self.serviceItem = serviceItem self.serviceItem = serviceItem
html = build_html(self.serviceItem, self.screen, self.parent.alertTab,\ html = build_html(self.serviceItem, self.screen, self.parent.alertTab,
self.isLive) self.isLive)
self.webView.setHtml(html) self.webView.setHtml(html)
if serviceItem.foot_text and serviceItem.foot_text: if serviceItem.foot_text and serviceItem.foot_text:

View File

@ -113,7 +113,7 @@ class AppLocation(object):
""" """
if dir_type == AppLocation.AppDir: if dir_type == AppLocation.AppDir:
if hasattr(sys, u'frozen') and sys.frozen == 1: if hasattr(sys, u'frozen') and sys.frozen == 1:
app_path = os.path.abspath(os.path.split(sys.argv[0])[0]) app_path = os.path.abspath(os.path.split(sys.argv[0])[0])
else: else:
app_path = os.path.split(openlp.__file__)[0] app_path = os.path.split(openlp.__file__)[0]
return app_path return app_path

View File

@ -678,7 +678,8 @@ class BibleMediaItem(MediaManagerItem):
self.dual_search_results[count].text) self.dual_search_results[count].text)
} }
bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name, bible_text = u' %s %d:%d (%s, %s)' % (verse.book.name,
verse.chapter, verse.verse, version.value, dual_version.value) verse.chapter, verse.verse, version.value,
dual_version.value)
else: else:
vdict = { vdict = {
'book': QtCore.QVariant(verse.book.name), 'book': QtCore.QVariant(verse.book.name),

View File

@ -89,7 +89,7 @@ class OpenSongBible(BibleDB):
Receiver.send_message(u'openlp_process_events') Receiver.send_message(u'openlp_process_events')
self.wizard.incrementProgressBar( self.wizard.incrementProgressBar(
QtCore.QString('%s %s %s' % ( QtCore.QString('%s %s %s' % (
translate('BiblesPlugin.Opensong', 'Importing'), \ translate('BiblesPlugin.Opensong', 'Importing'),
db_book.name, chapter.attrib[u'n']))) db_book.name, chapter.attrib[u'n'])))
self.session.commit() self.session.commit()
except IOError: except IOError:

View File

@ -57,7 +57,7 @@ class CCLIFileImport(SongImport):
self.filenames = kwargs[u'filenames'] self.filenames = kwargs[u'filenames']
log.debug(self.filenames) log.debug(self.filenames)
else: else:
raise KeyError(u'Keyword argument "filenames" not supplied.') raise KeyError(u'Keyword argument "filenames" not supplied.')
def do_import(self): def do_import(self):
""" """
@ -66,10 +66,10 @@ class CCLIFileImport(SongImport):
log.debug(u'Starting CCLI File Import') log.debug(u'Starting CCLI File Import')
song_total = len(self.filenames) song_total = len(self.filenames)
self.import_wizard.importProgressBar.setMaximum(song_total) self.import_wizard.importProgressBar.setMaximum(song_total)
song_count = 1 song_count = 1
for filename in self.filenames: for filename in self.filenames:
self.import_wizard.incrementProgressBar( self.import_wizard.incrementProgressBar(
u'Importing song %s of %s' % (song_count, song_total)) u'Importing song %s of %s' % (song_count, song_total))
filename = unicode(filename) filename = unicode(filename)
log.debug(u'Importing CCLI File: %s', filename) log.debug(u'Importing CCLI File: %s', filename)
lines = [] lines = []
@ -81,14 +81,15 @@ class CCLIFileImport(SongImport):
lines = infile.readlines() lines = infile.readlines()
ext = os.path.splitext(filename)[1] ext = os.path.splitext(filename)[1]
if ext.lower() == ".usr": if ext.lower() == ".usr":
log.info(u'SongSelect .usr format file found %s: ' , filename) log.info(u'SongSelect .usr format file found %s: ',
filename)
self.do_import_usr_file(lines) self.do_import_usr_file(lines)
elif ext.lower() == ".txt": elif ext.lower() == ".txt":
log.info(u'SongSelect .txt format file found %s: ', filename) log.info(u'SongSelect .txt format file found %s: ',
filename)
self.do_import_txt_file(lines) self.do_import_txt_file(lines)
else: else:
log.info(u'Extension %s is not valid', filename) log.info(u'Extension %s is not valid', filename)
pass
song_count += 1 song_count += 1
if self.stop_import_flag: if self.stop_import_flag:
return False return False
@ -175,7 +176,7 @@ class CCLIFileImport(SongImport):
verse_text = unicode(words_list[counter]) verse_text = unicode(words_list[counter])
verse_text = verse_text.replace("/n", "\n") verse_text = verse_text.replace("/n", "\n")
if len(verse_text) > 0: if len(verse_text) > 0:
self.add_verse(verse_text, verse_type); self.add_verse(verse_text, verse_type)
#Handle multiple authors #Handle multiple authors
author_list = song_author.split(u'/') author_list = song_author.split(u'/')
if len(author_list) < 2: if len(author_list) < 2:
@ -238,25 +239,25 @@ class CCLIFileImport(SongImport):
line_number = 0 line_number = 0
verse_text = u'' verse_text = u''
song_comments = u'' song_comments = u''
song_copyright = u''; song_copyright = u''
verse_start = False verse_start = False
for line in textList: for line in textList:
clean_line = line.strip() clean_line = line.strip()
if not clean_line: if not clean_line:
if line_number==0: if line_number == 0:
continue continue
elif verse_start: elif verse_start:
if verse_text: if verse_text:
self.add_verse(verse_text, verse_type) self.add_verse(verse_text, verse_type)
verse_text = '' verse_text = ''
verse_start = False verse_start = False
else: else:
#line_number=0, song title #line_number=0, song title
if line_number==0: if line_number == 0:
song_name = clean_line song_name = clean_line
line_number += 1 line_number += 1
#line_number=1, verses #line_number=1, verses
elif line_number==1: elif line_number == 1:
#line_number=1, ccli number, first line after verses #line_number=1, ccli number, first line after verses
if clean_line.startswith(u'CCLI'): if clean_line.startswith(u'CCLI'):
line_number += 1 line_number += 1
@ -285,15 +286,16 @@ class CCLIFileImport(SongImport):
verse_text = verse_text + line verse_text = verse_text + line
else: else:
#line_number=2, copyright #line_number=2, copyright
if line_number==2: if line_number == 2:
line_number += 1 line_number += 1
song_copyright = clean_line song_copyright = clean_line
#n=3, authors #n=3, authors
elif line_number==3: elif line_number == 3:
line_number += 1 line_number += 1
song_author = clean_line song_author = clean_line
#line_number=4, comments lines before last line #line_number=4, comments lines before last line
elif (line_number==4) and (not clean_line.startswith(u'CCL')): elif (line_number == 4) and \
(not clean_line.startswith(u'CCL')):
song_comments = song_comments + clean_line song_comments = song_comments + clean_line
# split on known separators # split on known separators
author_list = song_author.split(u'/') author_list = song_author.split(u'/')
@ -307,4 +309,3 @@ class CCLIFileImport(SongImport):
self.ccli_number = song_ccli self.ccli_number = song_ccli
self.comments = song_comments self.comments = song_comments
self.finish() self.finish()

View File

@ -31,7 +31,7 @@ import logging
import chardet import chardet
try: try:
import sqlite import sqlite
except: except ImportError:
pass pass
from openlp.core.lib import translate from openlp.core.lib import translate
@ -93,9 +93,9 @@ class OpenLP1SongImport(SongImport):
cursor.execute(u'SELECT authorid, authorname FROM authors') cursor.execute(u'SELECT authorid, authorname FROM authors')
authors = cursor.fetchall() authors = cursor.fetchall()
if new_db: if new_db:
# "cache" our list of tracks # "cache" our list of tracks
cursor.execute(u'SELECT trackid, fulltrackname FROM tracks') cursor.execute(u'SELECT trackid, fulltrackname FROM tracks')
tracks = cursor.fetchall() tracks = cursor.fetchall()
# Import the songs # Import the songs
cursor.execute(u'SELECT songid, songtitle, lyrics || \'\' AS lyrics, ' cursor.execute(u'SELECT songid, songtitle, lyrics || \'\' AS lyrics, '
u'copyrightinfo FROM songs') u'copyrightinfo FROM songs')

View File

@ -30,6 +30,7 @@ from zipfile import ZipFile
from lxml import objectify from lxml import objectify
from lxml.etree import Error, LxmlError from lxml.etree import Error, LxmlError
from openlp.core.lib import translate
from openlp.plugins.songs.lib.songimport import SongImport from openlp.plugins.songs.lib.songimport import SongImport
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -170,7 +171,7 @@ class OpenSongImport(SongImport):
self.authors = [] self.authors = []
try: try:
tree = objectify.parse(file) tree = objectify.parse(file)
except Error, LxmlError: except (Error, LxmlError):
log.exception(u'Error parsing XML') log.exception(u'Error parsing XML')
return return
root = tree.getroot() root = tree.getroot()
@ -276,7 +277,8 @@ class OpenSongImport(SongImport):
if len(our_verse_order) > 0: if len(our_verse_order) > 0:
order = our_verse_order order = our_verse_order
else: else:
log.warn(u'No verse order available for %s, skipping.', self.title) log.warn(u'No verse order available for %s, skipping.',
self.title)
for tag in order: for tag in order:
if len(tag) == 1: if len(tag) == 1:
tag = tag + u'1' # Assume it's no.1 if it's not there tag = tag + u'1' # Assume it's no.1 if it's not there

View File

@ -119,7 +119,7 @@ class WowImport(SongImport):
# TODO: check that it is a valid words of worship file (could # TODO: check that it is a valid words of worship file (could
# check header for WoW File Song Word) # check header for WoW File Song Word)
self.author = u'' self.author = u''
self.copyright= u'' self.copyright = u''
# Get the song title # Get the song title
self.file_name = os.path.split(file)[1] self.file_name = os.path.split(file)[1]
self.import_wizard.incrementProgressBar( self.import_wizard.incrementProgressBar(