From 286ec88fc49b3bc6646fa50adba1aa1f78e2081d Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 24 Nov 2011 23:34:27 +0100 Subject: [PATCH] make VerseType.Other default for VerseType encodings --- openlp/plugins/songs/forms/editsongform.py | 11 ++-- openlp/plugins/songs/forms/editverseform.py | 6 +- openlp/plugins/songs/lib/__init__.py | 61 +++++++++++---------- openlp/plugins/songs/lib/mediaitem.py | 4 +- 4 files changed, 40 insertions(+), 42 deletions(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 5ca90bfbb..f34beb850 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -278,13 +278,11 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if len(verse_tag) > 1: index = VerseType.from_translated_string(verse_tag) if index is None: - index = VerseType.from_string(verse_tag, True) + index = VerseType.from_string(verse_tag, None) else: verse_tags_translated = True if index is None: index = VerseType.from_tag(verse_tag) - if index is None: - index = VerseType.Other verse[0][u'type'] = VerseType.Tags[index] if verse[0][u'label'] == u'': verse[0][u'label'] = u'1' @@ -308,7 +306,8 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): for verse_def in self.song.verse_order.split(): verse_index = None if verse_tags_translated: - verse_index = VerseType.from_translated_tag(verse_def[0]) + verse_index = VerseType.from_translated_tag(verse_def[0], + None) if verse_index is None: verse_index = VerseType.from_tag(verse_def[0]) verse_tag = VerseType.TranslatedTags[verse_index].upper() @@ -606,14 +605,14 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): order_names = unicode(self.verseOrderEdit.text()).split() for item in order_names: if len(item) == 1: - verse_index = VerseType.from_translated_tag(item) + verse_index = VerseType.from_translated_tag(item, None) if verse_index is not None: order.append(VerseType.Tags[verse_index] + u'1') else: # it matches no verses anyway order.append(u'') else: - verse_index = VerseType.from_translated_tag(item[0]) + verse_index = VerseType.from_translated_tag(item[0], None) if verse_index is None: # it matches no verses anyway order.append(u'') diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 1d37dd433..0a9505a44 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -113,7 +113,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): verse_num = int(match.group(2)) except ValueError: verse_num = 1 - verse_type_index = VerseType.from_loose_input(verse_tag, True) + verse_type_index = VerseType.from_loose_input(verse_tag, None) if verse_type_index is not None: self.verseNumberBox.setValue(verse_num) @@ -140,7 +140,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): match = VERSE_REGEX.match(text) if match: verse_type = match.group(1) - verse_type_index = VerseType.from_loose_input(verse_type, True) + verse_type_index = VerseType.from_loose_input(verse_type, None) try: verse_number = int(match.group(2)) except ValueError: @@ -153,7 +153,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): tag=u'%s1' % VerseType.Tags[VerseType.Verse]): self.hasSingleVerse = single if single: - verse_type_index = VerseType.from_tag(tag[0]) + verse_type_index = VerseType.from_tag(tag[0], None) verse_number = tag[1:] if verse_type_index is not None: self.verseTypeComboBox.setCurrentIndex(verse_type_index) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 05086ec86..9003669d0 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -69,7 +69,7 @@ class VerseType(object): TranslatedTags = [name[0].lower() for name in TranslatedNames] @staticmethod - def translated_tag(verse_tag, strict=False): + def translated_tag(verse_tag, default=Other): """ Return the translated UPPERCASE tag for a given tag, used to show translated verse tags in UI @@ -77,82 +77,84 @@ class VerseType(object): ``verse_tag`` The string to return a VerseType for - ``strict`` - Determines if the default Other or None should be returned + ``default`` + Default return value if no matching tag is found """ verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return VerseType.TranslatedTags[num].upper() - if not strict: - return VerseType.TranslatedTags[VerseType.Other].upper() + if default in VerseType.TranslatedTags: + return VerseType.TranslatedTags[default].upper() @staticmethod - def translated_name(verse_tag, strict=False): + def translated_name(verse_tag, default=Other): """ Return the translated name for a given tag ``verse_tag`` The string to return a VerseType for - ``strict`` - Determines if the default Other or None should be returned + ``default`` + Default return value if no matching tag is found """ verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return VerseType.TranslatedNames[num] - if not strict: - return VerseType.TranslatedNames[VerseType.Other] + if default in VerseType.TranslatedNames: + return VerseType.TranslatedNames[default] @staticmethod - def from_tag(verse_tag, strict=False): + def from_tag(verse_tag, default=Other): """ Return the VerseType for a given tag ``verse_tag`` The string to return a VerseType for - ``strict`` - Determines if the default Other or None should be returned + ``default`` + Default return value if no matching tag is found """ verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return num - if not strict: - return VerseType.Other + return default @staticmethod - def from_translated_tag(verse_tag): + def from_translated_tag(verse_tag, default=Other): """ Return the VerseType for a given tag ``verse_tag`` The string to return a VerseType for + + ``default`` + Default return value if no matching tag is found """ verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.TranslatedTags): if verse_tag == tag: return num + return default @staticmethod - def from_string(verse_name, strict=False): + def from_string(verse_name, default=Other): """ Return the VerseType for a given string ``verse_name`` The string to return a VerseType for - ``strict`` - Determines if the default Other or None should be returned + ``default`` + Default return value if no matching tag is found """ verse_name = verse_name.lower() for num, name in enumerate(VerseType.Names): if verse_name == name.lower(): return num - if not strict: - return VerseType.Other + return default @staticmethod def from_translated_string(verse_name): @@ -168,27 +170,26 @@ class VerseType(object): return num @staticmethod - def from_loose_input(verse_name, strict=False): + def from_loose_input(verse_name, default=Other): """ Return the VerseType for a given string, Other if not found ``verse_name`` The string to return a VerseType for - ``strict`` - Determines if the default Other or None should be returned + ``default`` + Default return value if no matching tag is found """ - verse_index = None if len(verse_name) > 1: verse_index = VerseType.from_translated_string(verse_name) if verse_index is None: - verse_index = VerseType.from_string(verse_name, strict) + verse_index = VerseType.from_string(verse_name, default) elif len(verse_name) == 1: - verse_index = VerseType.from_translated_tag(verse_name) + verse_index = VerseType.from_translated_tag(verse_name, None) if verse_index is None: - verse_index = VerseType.from_tag(verse_name, strict) - elif not strict: - verse_index = VerseType.Other + verse_index = VerseType.from_tag(verse_name, default) + else: + return default return verse_index def retrieve_windows_encoding(recommendation=None): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 295b39cf5..dad95c61b 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -457,7 +457,7 @@ class SongMediaItem(MediaManagerItem): verse_index = \ VerseType.from_translated_string(verse_tag) if verse_index is None: - verse_index = VerseType.from_string(verse_tag, True) + verse_index = VerseType.from_string(verse_tag, None) if verse_index is None: verse_index = VerseType.from_tag(verse_tag) verse_tag = VerseType.TranslatedTags[verse_index].upper() @@ -479,8 +479,6 @@ class SongMediaItem(MediaManagerItem): else: verse_index = VerseType.from_tag( verse[0][u'type']) - if verse_index is None: - verse_index = VerseType.Other verse_tag = VerseType.TranslatedTags[verse_index] verse_def = u'%s%s' % (verse_tag, verse[0][u'label'])