forked from openlp/openlp
convert verse order
This commit is contained in:
parent
58e0599fdf
commit
a43bd19bd9
@ -183,8 +183,9 @@ class ServiceItem(object):
|
||||
else:
|
||||
log.error(u'Invalid value renderer :%s' % self.service_item_type)
|
||||
self.title = clean_tags(self.title)
|
||||
# The footer should never be None, but to be compatible with older
|
||||
# release of OpenLP, we have to correct this to avoid tracebacks.
|
||||
# The footer should never be None, but to be compatible with a few
|
||||
# nightly between 1.9.4 and 1.9.5, we have to correct this to avoid
|
||||
# tracebacks.
|
||||
if self.raw_footer is None:
|
||||
self.raw_footer = []
|
||||
self.foot_text = \
|
||||
@ -447,4 +448,5 @@ class ServiceItem(object):
|
||||
elif not start and end:
|
||||
return end
|
||||
else:
|
||||
return u'%s : %s' % (start, end)
|
||||
return u'%s : %s' % (start, end)
|
||||
|
||||
|
@ -275,14 +275,33 @@ def clean_song(manager, song):
|
||||
sxml = SongXML()
|
||||
# Rebuild the song's verses, to remove any wrong verse names (for example
|
||||
# translated ones), which might have been added prior to 1.9.5.
|
||||
# List for later comparison.
|
||||
compare_order = []
|
||||
for verse in verses:
|
||||
type = VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])]
|
||||
sxml.add_verse_to_lyrics(
|
||||
VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])],
|
||||
type,
|
||||
verse[0][u'label'],
|
||||
verse[1],
|
||||
verse[0][u'lang'] if verse[0].has_key(u'lang') else None
|
||||
)
|
||||
compare_order.append((u'%s%s' % (type, verse[0][u'label'])).upper())
|
||||
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
|
||||
# Rebuild the verse order, to convert translated verse tags, which might
|
||||
# have been added prior to 1.9.5.
|
||||
order = song.verse_order.strip().split()
|
||||
new_order = []
|
||||
for verse_def in order:
|
||||
new_order.append((u'%s%s' % (
|
||||
VerseType.Tags[VerseType.from_loose_input(verse_def[0])],
|
||||
verse_def[1:])).upper()
|
||||
)
|
||||
song.verse_order = u' '.join(new_order)
|
||||
# Check if the verse order contains tags for verses which do not exist.
|
||||
for order in new_order:
|
||||
if order not in compare_order:
|
||||
song.verse_order = u''
|
||||
break
|
||||
# The song does not have any author, add one.
|
||||
if not song.authors:
|
||||
name = SongStrings.AuthorUnknown
|
||||
|
@ -461,5 +461,5 @@ class SongMediaItem(MediaManagerItem):
|
||||
"""
|
||||
Locale aware collation of song titles
|
||||
"""
|
||||
return locale.strcoll(unicode(song_1.title.lower()),
|
||||
return locale.strcoll(unicode(song_1.title.lower()),
|
||||
unicode(song_2.title.lower()))
|
||||
|
@ -309,7 +309,7 @@ class SofImport(OooImport):
|
||||
self.add_verse(lyrics, tag)
|
||||
if not self.is_chorus and u'C1' in self.verse_order_list_generated:
|
||||
self.verse_order_list_generated.append(u'C1')
|
||||
self.verse_order_list_generated_useful = True
|
||||
self.verse_order_list_generated_useful = True
|
||||
|
||||
def uncap_text(self, text):
|
||||
"""
|
||||
|
@ -225,7 +225,7 @@ class SongImport(QtCore.QObject):
|
||||
self.verse_counts[verse_def[0]] = int(verse_def[1:])
|
||||
self.verses.append([verse_def, verse_text.rstrip(), lang])
|
||||
self.verse_order_list_generated.append(verse_def)
|
||||
|
||||
|
||||
def repeat_verse(self):
|
||||
"""
|
||||
Repeat the previous verse in the verse order
|
||||
|
@ -131,7 +131,7 @@ class SongShowPlusImport(SongImport):
|
||||
lengthDescriptor, = struct.unpack("B", songData.read(1))
|
||||
data = songData.read(lengthDescriptor)
|
||||
if blockKey == TITLE:
|
||||
self.title = unicode(data, u'cp1252')
|
||||
self.title = unicode(data, u'cp1252')
|
||||
elif blockKey == AUTHOR:
|
||||
authors = data.split(" / ")
|
||||
for author in authors:
|
||||
|
Loading…
Reference in New Issue
Block a user