← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~meths/openlp/trivialfixes into lp:openlp

 

Jon Tibble has proposed merging lp:~meths/openlp/trivialfixes into lp:openlp.

Requested reviews:
  OpenLP Core (openlp-core)

For more details, see:
https://code.launchpad.net/~meths/openlp/trivialfixes/+merge/46567

Lots of small refactors and cleanups
-- 
https://code.launchpad.net/~meths/openlp/trivialfixes/+merge/46567
Your team OpenLP Core is requested to review the proposed merge of lp:~meths/openlp/trivialfixes into lp:openlp.
=== modified file 'openlp/core/lib/spelltextedit.py'
--- openlp/core/lib/spelltextedit.py	2011-01-09 08:17:17 +0000
+++ openlp/core/lib/spelltextedit.py	2011-01-18 04:58:54 +0000
@@ -28,9 +28,9 @@
 try:
     import enchant
     from enchant import DictNotFoundError
-    enchant_available = True
+    ENCHANT_AVAILABLE = True
 except ImportError:
-    enchant_available = False
+    ENCHANT_AVAILABLE = False
 
 # based on code from
 # http://john.nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check
@@ -45,7 +45,7 @@
     def __init__(self, *args):
         QtGui.QPlainTextEdit.__init__(self, *args)
         # Default dictionary based on the current locale.
-        if enchant_available:
+        if ENCHANT_AVAILABLE:
             try:
                 self.dict = enchant.Dict()
             except DictNotFoundError:
@@ -72,7 +72,7 @@
         self.setTextCursor(cursor)
         # Check if the selected word is misspelled and offer spelling
         # suggestions if it is.
-        if enchant_available and self.textCursor().hasSelection():
+        if ENCHANT_AVAILABLE and self.textCursor().hasSelection():
             text = unicode(self.textCursor().selectedText())
             if not self.dict.check(text):
                 spell_menu = QtGui.QMenu(translate('OpenLP.SpellTextEdit',

=== modified file 'openlp/core/ui/advancedtab.py'
--- openlp/core/ui/advancedtab.py	2011-01-17 16:38:39 +0000
+++ openlp/core/ui/advancedtab.py	2011-01-18 04:58:54 +0000
@@ -163,8 +163,7 @@
             settings.value(u'enable exit confirmation',
             QtCore.QVariant(True)).toBool())
         self.hideMouseCheckBox.setChecked(
-            settings.value(u'hide mouse',
-            QtCore.QVariant(False)).toBool())
+            settings.value(u'hide mouse', QtCore.QVariant(False)).toBool())
         settings.endGroup()
 
     def save(self):

=== modified file 'openlp/core/utils/__init__.py'
--- openlp/core/utils/__init__.py	2011-01-14 18:58:47 +0000
+++ openlp/core/utils/__init__.py	2011-01-18 04:58:54 +0000
@@ -26,7 +26,6 @@
 """
 The :mod:`utils` module provides the utility libraries for OpenLP
 """
-
 import logging
 import os
 import re
@@ -36,12 +35,18 @@
 from datetime import datetime
 
 from PyQt4 import QtGui, QtCore
+if sys.platform != u'win32' and sys.platform != u'darwin':
+    try:
+        from xdg import BaseDirectory
+        XDG_BASE_AVAILABLE = True
+    except ImportError:
+        XDG_BASE_AVAILABLE = False
 
 import openlp
 from openlp.core.lib import Receiver, translate
 
 log = logging.getLogger(__name__)
-images_filter = None
+IMAGES_FILTER = None
 
 class VersionThread(QtCore.QThread):
     """
@@ -113,77 +118,46 @@
             The directory type you want, for instance the data directory.
         """
         if dir_type == AppLocation.AppDir:
-            if hasattr(sys, u'frozen') and sys.frozen == 1:
-                app_path = os.path.abspath(os.path.split(sys.argv[0])[0])
-            else:
-                app_path = os.path.split(openlp.__file__)[0]
-            return app_path
+            return _get_frozen_path(
+                os.path.abspath(os.path.split(sys.argv[0])[0]),
+                os.path.split(openlp.__file__)[0])
         elif dir_type == AppLocation.ConfigDir:
-            if sys.platform == u'win32':
-                path = os.path.join(os.getenv(u'APPDATA'), u'openlp')
-            elif sys.platform == u'darwin':
-                path = os.path.join(os.getenv(u'HOME'), u'Library',
-                    u'Application Support', u'openlp')
-            else:
-                try:
-                    from xdg import BaseDirectory
-                    path = os.path.join(
-                        BaseDirectory.xdg_config_home, u'openlp')
-                except ImportError:
-                    path = os.path.join(os.getenv(u'HOME'), u'.openlp')
-            return path
+            return _get_os_dir_path(u'openlp',
+                os.path.join(os.getenv(u'HOME'), u'Library',
+                    u'Application Support', u'openlp'),
+                os.path.join(BaseDirectory.xdg_config_home, u'openlp'),
+                os.path.join(os.getenv(u'HOME'), u'.openlp'))
         elif dir_type == AppLocation.DataDir:
-            if sys.platform == u'win32':
-                path = os.path.join(os.getenv(u'APPDATA'), u'openlp', u'data')
-            elif sys.platform == u'darwin':
-                path = os.path.join(os.getenv(u'HOME'), u'Library',
-                    u'Application Support', u'openlp', u'Data')
-            else:
-                try:
-                    from xdg import BaseDirectory
-                    path = os.path.join(BaseDirectory.xdg_data_home, u'openlp')
-                except ImportError:
-                    path = os.path.join(os.getenv(u'HOME'), u'.openlp', u'data')
-            return path
+            return _get_os_dir_path(os.path.join(u'openlp', u'data'),
+                os.path.join(os.getenv(u'HOME'), u'Library',
+                    u'Application Support', u'openlp', u'Data'),
+                os.path.join(BaseDirectory.xdg_data_home, u'openlp'),
+                os.path.join(os.getenv(u'HOME'), u'.openlp', u'data'))
         elif dir_type == AppLocation.PluginsDir:
-            plugin_path = None
             app_path = os.path.abspath(os.path.split(sys.argv[0])[0])
-            if hasattr(sys, u'frozen') and sys.frozen == 1:
-                plugin_path = os.path.join(app_path, u'plugins')
-            else:
-                plugin_path = os.path.join(
-                    os.path.split(openlp.__file__)[0], u'plugins')
-            return plugin_path
+            return _get_frozen_path(os.path.join(app_path, u'plugins'),
+                os.path.join(os.path.split(openlp.__file__)[0], u'plugins'))
         elif dir_type == AppLocation.VersionDir:
-            if hasattr(sys, u'frozen') and sys.frozen == 1:
-                version_path = os.path.abspath(os.path.split(sys.argv[0])[0])
-            else:
-                version_path = os.path.split(openlp.__file__)[0]
-            return version_path
+            return _get_frozen_path(
+                os.path.abspath(os.path.split(sys.argv[0])[0]),
+                os.path.split(openlp.__file__)[0])
         elif dir_type == AppLocation.CacheDir:
-            if sys.platform == u'win32':
-                path = os.path.join(os.getenv(u'APPDATA'), u'openlp')
-            elif sys.platform == u'darwin':
-                path = os.path.join(os.getenv(u'HOME'), u'Library',
-                    u'Application Support', u'openlp')
-            else:
-                try:
-                    from xdg import BaseDirectory
-                    path = os.path.join(
-                        BaseDirectory.xdg_cache_home, u'openlp')
-                except ImportError:
-                    path = os.path.join(os.getenv(u'HOME'), u'.openlp')
-            return path
+            return _get_os_dir_path(u'openlp',
+                os.path.join(os.getenv(u'HOME'), u'Library',
+                    u'Application Support', u'openlp'),
+                os.path.join(BaseDirectory.xdg_cache_home, u'openlp'),
+                os.path.join(os.getenv(u'HOME'), u'.openlp'))
         if dir_type == AppLocation.LanguageDir:
-            if hasattr(sys, u'frozen') and sys.frozen == 1:
-                app_path = os.path.abspath(os.path.split(sys.argv[0])[0])
-            else:
-                app_path = os.path.split(openlp.__file__)[0]
+            app_path = _get_frozen_path(
+                os.path.abspath(os.path.split(sys.argv[0])[0]),
+                os.path.split(openlp.__file__)[0])
             return os.path.join(app_path, u'i18n')
 
-
     @staticmethod
     def get_data_path():
+        """
+        Return the path OpenLP stores all its data under.
+        """
         path = AppLocation.get_directory(AppLocation.DataDir)
         if not os.path.exists(path):
             os.makedirs(path)
@@ -191,12 +165,38 @@
 
     @staticmethod
     def get_section_data_path(section):
+        """
+        Return the path a particular module stores its data under.
+        """
         data_path = AppLocation.get_data_path()
         path = os.path.join(data_path, section)
         if not os.path.exists(path):
             os.makedirs(path)
         return path
 
+def _get_os_dir_path(win_option, darwin_option, base_dir_option,
+    non_base_dir_option):
+    """
+    Return a path based on which OS and environment we are running in.
+    """
+    if sys.platform == u'win32':
+        return os.path.join(os.getenv(u'APPDATA'), win_option)
+    elif sys.platform == u'darwin':
+        return darwin_option
+    else:
+        if XDG_BASE_AVAILABLE:
+            return base_dir_option
+        else:
+            return non_base_dir_option
+
+def _get_frozen_path(frozen_option, non_frozen_option):
+    """
+    Return a path based on the system status.
+    """
+    if hasattr(sys, u'frozen') and sys.frozen == 1:
+        return frozen_option
+    else:
+        return non_frozen_option
 
 def check_latest_version(current_version):
     """
@@ -225,9 +225,8 @@
         remote_version = None
         try:
             remote_version = unicode(urllib2.urlopen(req, None).read()).strip()
-        except IOError, e:
-            if hasattr(e, u'reason'):
-                log.exception(u'Reason for failure: %s', e.reason)
+        except IOError:
+            log.exception(u'Failed to download the latest OpenLP version file')
         if remote_version:
             version_string = remote_version
     return version_string
@@ -264,18 +263,21 @@
     Returns a filter string for a file dialog containing all the supported
     image formats.
     """
-    global images_filter
-    if not images_filter:
+    global IMAGES_FILTER
+    if not IMAGES_FILTER:
         log.debug(u'Generating images filter.')
         formats = [unicode(fmt)
             for fmt in QtGui.QImageReader.supportedImageFormats()]
         visible_formats = u'(*.%s)' % u'; *.'.join(formats)
         actual_formats = u'(*.%s)' % u' *.'.join(formats)
-        images_filter = u'%s %s %s' % (translate('OpenLP', 'Image Files'),
+        IMAGES_FILTER = u'%s %s %s' % (translate('OpenLP', 'Image Files'),
             visible_formats, actual_formats)
-    return images_filter
+    return IMAGES_FILTER
 
 def split_filename(path):
+    """
+    Return a list of the parts in a given path.
+    """
     path = os.path.abspath(path)
     if not os.path.isfile(path):
         return path, u''

=== modified file 'openlp/plugins/songs/lib/__init__.py'
--- openlp/plugins/songs/lib/__init__.py	2011-01-09 16:52:31 +0000
+++ openlp/plugins/songs/lib/__init__.py	2011-01-18 04:58:54 +0000
@@ -48,49 +48,27 @@
         ``verse_type``
             The type to return a string for
         """
-        if verse_type == VerseType.Verse:
-            return translate('SongsPlugin.VerseType', 'Verse')
-        elif verse_type == VerseType.Chorus:
-            return translate('SongsPlugin.VerseType', 'Chorus')
-        elif verse_type == VerseType.Bridge:
-            return translate('SongsPlugin.VerseType', 'Bridge')
-        elif verse_type == VerseType.PreChorus:
-            return translate('SongsPlugin.VerseType', 'Pre-Chorus')
-        elif verse_type == VerseType.Intro:
-            return translate('SongsPlugin.VerseType', 'Intro')
-        elif verse_type == VerseType.Ending:
-            return translate('SongsPlugin.VerseType', 'Ending')
-        elif verse_type == VerseType.Other:
-            return translate('SongsPlugin.VerseType', 'Other')
-
-    @staticmethod
-    def expand_string(verse_type):
-        """
-        Return the VerseType for a given string
-
-        ``verse_type``
-            The string to return a VerseType for
-        """
-        verse_type = verse_type.lower()
-        if verse_type == \
+        if not isinstance(verse_type, int):
+            verse_type = verse_type.lower()
+        if verse_type == VerseType.Verse or verse_type == \
             unicode(VerseType.to_string(VerseType.Verse)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Verse')
-        elif verse_type == \
+        elif verse_type == VerseType.Chorus or verse_type == \
             unicode(VerseType.to_string(VerseType.Chorus)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Chorus')
-        elif verse_type == \
+        elif verse_type == VerseType.Bridge or verse_type == \
             unicode(VerseType.to_string(VerseType.Bridge)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Bridge')
-        elif verse_type == \
+        elif verse_type == VerseType.PreChorus or verse_type == \
             unicode(VerseType.to_string(VerseType.PreChorus)).lower()[0]:
-            return translate('SongsPlugin.VerseType', 'PreChorus')
-        elif verse_type == \
+            return translate('SongsPlugin.VerseType', 'Pre-Chorus')
+        elif verse_type == VerseType.Intro or verse_type == \
             unicode(VerseType.to_string(VerseType.Intro)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Intro')
-        elif verse_type == \
+        elif verse_type == VerseType.Ending or verse_type == \
             unicode(VerseType.to_string(VerseType.Ending)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Ending')
-        elif verse_type == \
+        elif verse_type == VerseType.Other or verse_type == \
             unicode(VerseType.to_string(VerseType.Other)).lower()[0]:
             return translate('SongsPlugin.VerseType', 'Other')
 
@@ -163,7 +141,7 @@
             translate('SongsPlugin', 'Character Encoding'),
             translate('SongsPlugin', 'The codepage setting is responsible\n'
                 'for the correct character representation.\n'
-                'Usually you are fine with the preselected choise.'),
+                'Usually you are fine with the preselected choice.'),
             [pair[1] for pair in encodings], recommended_index, False)
     else:
         choice = QtGui.QInputDialog.getItem(None,

=== modified file 'openlp/plugins/songs/lib/importer.py'
--- openlp/plugins/songs/lib/importer.py	2011-01-02 16:42:09 +0000
+++ openlp/plugins/songs/lib/importer.py	2011-01-18 04:58:54 +0000
@@ -23,7 +23,9 @@
 # with this program; if not, write to the Free Software Foundation, Inc., 59  #
 # Temple Place, Suite 330, Boston, MA 02111-1307 USA                          #
 ###############################################################################
-
+"""
+The :mod:`importer` modules provides the general song import functionality.
+"""
 from opensongimport import OpenSongImport
 from olpimport import OpenLPSongImport
 from openlyricsimport import OpenLyricsImport
@@ -34,19 +36,19 @@
 # Imports that might fail
 try:
     from olp1import import OpenLP1SongImport
-    has_openlp1 = True
+    HAS_OPENLP1 = True
 except ImportError:
-    has_openlp1 = False
+    HAS_OPENLP1 = False
 try:
     from sofimport import SofImport
-    has_sof = True
+    HAS_SOF = True
 except ImportError:
-    has_sof = False
+    HAS_SOF = False
 try:
     from oooimport import OooImport
-    has_ooo = True
+    HAS_OOO = True
 except ImportError:
-    has_ooo = False
+    HAS_OOO = False
 
 class SongFormat(object):
     """
@@ -118,14 +120,20 @@
 
     @staticmethod
     def set_availability(format, available):
+        """
+        Set the availability for a given song format.
+        """
         SongFormat._format_availability[format] = available
 
     @staticmethod
     def get_availability(format):
+        """
+        Return the availability of a given song format.
+        """
         return SongFormat._format_availability.get(format, True)
 
-SongFormat.set_availability(SongFormat.OpenLP1, has_openlp1)
-SongFormat.set_availability(SongFormat.SongsOfFellowship, has_sof)
-SongFormat.set_availability(SongFormat.Generic, has_ooo)
+SongFormat.set_availability(SongFormat.OpenLP1, HAS_OPENLP1)
+SongFormat.set_availability(SongFormat.SongsOfFellowship, HAS_SOF)
+SongFormat.set_availability(SongFormat.Generic, HAS_OOO)
 
-__all__ = [u'SongFormat']
\ No newline at end of file
+__all__ = [u'SongFormat']

=== modified file 'openlp/plugins/songs/lib/mediaitem.py'
--- openlp/plugins/songs/lib/mediaitem.py	2011-01-12 16:45:32 +0000
+++ openlp/plugins/songs/lib/mediaitem.py	2011-01-18 04:58:54 +0000
@@ -194,8 +194,7 @@
         elif search_type == 5:
             log.debug(u'Theme Search')
             search_results = self.parent.manager.get_all_objects(Song,
-                Song.theme_name == search_keywords,
-                Song.search_lyrics.asc())
+                Song.theme_name == search_keywords, Song.search_lyrics.asc())
             self.displayResultsSong(search_results)
 
     def onSongListLoad(self):

=== modified file 'openlp/plugins/songs/lib/songbeamerimport.py'
--- openlp/plugins/songs/lib/songbeamerimport.py	2011-01-13 17:55:29 +0000
+++ openlp/plugins/songs/lib/songbeamerimport.py	2011-01-18 04:58:54 +0000
@@ -83,7 +83,7 @@
 
     def do_import(self):
         """
-        Recieve a single file, or a list of files to import.
+        Receive a single file or a list of files to import.
         """
         if isinstance(self.import_source, list):
             self.import_wizard.progressBar.setMaximum(
@@ -94,21 +94,21 @@
                 self.current_verse = u''
                 self.current_verse_type = u'V'
                 read_verses = False
-                self.file_name = os.path.split(file)[1]
+                file_name = os.path.split(file)[1]
                 self.import_wizard.incrementProgressBar(
-                    u'Importing %s' % (self.file_name), 0)
+                    u'Importing %s' % (file_name), 0)
                 if os.path.isfile(file):
                     detect_file = open(file, u'r')
                     details = chardet.detect(detect_file.read(2048))
                     detect_file.close()
                     infile = codecs.open(file, u'r', details['encoding'])
-                    self.songData = infile.readlines()
+                    songData = infile.readlines()
                     infile.close()
                 else:
                     return False
-                self.title = self.file_name.split('.sng')[0]
+                self.title = file_name.split('.sng')[0]
                 read_verses = False
-                for line in self.songData:
+                for line in songData:
                     # Just make sure that the line is of the type 'Unicode'.
                     line = unicode(line).strip()
                     if line.startswith(u'#') and not read_verses:
@@ -136,7 +136,7 @@
                     self.finish()
                 self.import_wizard.incrementProgressBar(unicode(translate(
                     'SongsPlugin.SongBeamerImport', 'Importing %s...')) %
-                    self.file_name)
+                    file_name)
             return True
 
     def replace_html_tags(self):

=== modified file 'openlp/plugins/songs/lib/songimport.py'
--- openlp/plugins/songs/lib/songimport.py	2011-01-13 17:55:29 +0000
+++ openlp/plugins/songs/lib/songimport.py	2011-01-18 04:58:54 +0000
@@ -62,7 +62,6 @@
         Create defaults for properties - call this before each song
         if importing many songs at once to ensure a clean beginning
         """
-        self.authors = []
         self.title = u''
         self.song_number = u''
         self.alternate_title = u''
@@ -251,17 +250,11 @@
 
     def finish(self):
         """
-        All fields have been set to this song. Write it away
+        All fields have been set to this song. Write the song to disk.
         """
         if not self.authors:
             self.authors.append(unicode(translate('SongsPlugin.SongImport',
                 'Author unknown')))
-        self.commit_song()
-
-    def commit_song(self):
-        """
-        Write the song and its fields to disk
-        """
         log.info(u'commiting song %s to database', self.title)
         song = Song()
         song.title = self.title

=== modified file 'openlp/plugins/songs/lib/wowimport.py'
--- openlp/plugins/songs/lib/wowimport.py	2011-01-13 17:55:29 +0000
+++ openlp/plugins/songs/lib/wowimport.py	2011-01-18 04:58:54 +0000
@@ -107,63 +107,60 @@
 
     def do_import(self):
         """
-        Recieve a single file, or a list of files to import.
+        Receive a single file or a list of files to import.
         """
-
         if isinstance(self.import_source, list):
             self.import_wizard.progressBar.setMaximum(len(self.import_source))
             for file in self.import_source:
-                self.author = u''
-                self.copyright = u''
-                self.file_name = os.path.split(file)[1]
+                author = u''
+                copyright = u''
+                file_name = os.path.split(file)[1]
                 self.import_wizard.incrementProgressBar(
-                    u'Importing %s' % (self.file_name), 0)
+                    u'Importing %s' % (file_name), 0)
                 # Get the song title
-                self.title = self.file_name.rpartition(u'.')[0]
-                self.songData = open(file, 'rb')
-                if self.songData.read(19) != u'WoW File\nSong Words':
+                self.title = file_name.rpartition(u'.')[0]
+                songData = open(file, 'rb')
+                if songData.read(19) != u'WoW File\nSong Words':
                     continue
                 # Seek to byte which stores number of blocks in the song
-                self.songData.seek(56)
-                self.no_of_blocks = ord(self.songData.read(1))
+                songData.seek(56)
+                no_of_blocks = ord(songData.read(1))
                 # Seek to the beging of the first block
-                self.songData.seek(82)
-                for block in range(self.no_of_blocks):
-                    self.lines_to_read = ord(self.songData.read(1))
+                songData.seek(82)
+                for block in range(no_of_blocks):
+                    self.lines_to_read = ord(songData.read(1))
                     # Skip 3 nulls to the beginnig of the 1st line
-                    self.songData.seek(3, os.SEEK_CUR)
-                    self.block_text = u''
+                    songData.seek(3, os.SEEK_CUR)
+                    block_text = u''
                     while self.lines_to_read:
-                        self.length_of_line = ord(self.songData.read(1))
                         self.line_text = unicode(
-                            self.songData.read(self.length_of_line), u'cp1252')
-                        self.songData.seek(1, os.SEEK_CUR)
-                        if self.block_text != u'':
-                            self.block_text += u'\n'
-                        self.block_text += self.line_text
+                            songData.read(ord(songData.read(1))), u'cp1252')
+                        songData.seek(1, os.SEEK_CUR)
+                        if block_text != u'':
+                            block_text += u'\n'
+                        block_text += self.line_text
                         self.lines_to_read -= 1
-                    self.block_type = BLOCK_TYPES[ord(self.songData.read(1))]
+                    block_type = BLOCK_TYPES[ord(songData.read(1))]
                     # Skip 3 nulls at the end of the block
-                    self.songData.seek(3, os.SEEK_CUR)
+                    songData.seek(3, os.SEEK_CUR)
                     # Blocks are seperated by 2 bytes, skip them, but not if
                     # this is the last block!
-                    if (block + 1) < self.no_of_blocks:
-                        self.songData.seek(2, os.SEEK_CUR)
-                    self.add_verse(self.block_text, self.block_type)
-                # Now to extact the author
-                self.author_length = ord(self.songData.read(1))
-                if self.author_length != 0:
-                    self.author = unicode(
-                        self.songData.read(self.author_length), u'cp1252')
+                    if (block + 1) < no_of_blocks:
+                        songData.seek(2, os.SEEK_CUR)
+                    self.add_verse(block_text, block_type)
+                # Now to extract the author
+                author_length = ord(songData.read(1))
+                if author_length != 0:
+                    author = unicode(songData.read(author_length), u'cp1252')
                 # Finally the copyright
-                self.copyright_length = ord(self.songData.read(1))
-                if self.copyright_length != 0:
-                    self.copyright = unicode(
-                        self.songData.read(self.copyright_length), u'cp1252')
-                self.parse_author(self.author)
-                self.add_copyright(self.copyright)
-                self.songData.close()
+                copyright_length = ord(songData.read(1))
+                if copyright_length != 0:
+                    copyright = unicode(
+                        songData.read(copyright_length), u'cp1252')
+                self.parse_author(author)
+                self.add_copyright(copyright)
+                songData.close()
                 self.finish()
                 self.import_wizard.incrementProgressBar(
-                    u'Importing %s' % (self.file_name))
+                    u'Importing %s' % (file_name))
             return True

=== modified file 'openlp/plugins/songs/lib/xml.py'
--- openlp/plugins/songs/lib/xml.py	2011-01-11 16:49:53 +0000
+++ openlp/plugins/songs/lib/xml.py	2011-01-18 04:58:54 +0000
@@ -435,7 +435,7 @@
                     text += u'\n'
                 text += u'\n'.join([unicode(line) for line in lines.line])
             verse_name = self._get(verse, u'name')
-            verse_type = unicode(VerseType.expand_string(verse_name[0]))[0]
+            verse_type = unicode(VerseType.to_string(verse_name[0]))[0]
             verse_number = re.compile(u'[a-zA-Z]*').sub(u'', verse_name)
             verse_part = re.compile(u'[0-9]*').sub(u'', verse_name[1:])
             # OpenLyrics allows e. g. "c", but we need "c1".


Follow ups