diff --git a/openlp/core/ui/thememanager.py b/openlp/core/ui/thememanager.py index 6b43f2496..7c9fc073d 100644 --- a/openlp/core/ui/thememanager.py +++ b/openlp/core/ui/thememanager.py @@ -44,7 +44,7 @@ from openlp.core.lib.ui import UiStrings, critical_error_message_box, \ from openlp.core.theme import Theme from openlp.core.ui import FileRenameForm, ThemeForm from openlp.core.utils import AppLocation, delete_file, file_is_unicode, \ - file_is_mbcs, get_filesystem_encoding + get_filesystem_encoding log = logging.getLogger(__name__) @@ -526,15 +526,11 @@ class ThemeManager(QtGui.QWidget): zip = zipfile.ZipFile(filename) themename = None for file in zip.namelist(): + # Handle UTF-8 files ucsfile = file_is_unicode(file) if not ucsfile: - ucsfile = file_is_mbcs(file) - if not ucsfile: - critical_error_message_box( - message=translate('OpenLP.ThemeManager', - 'File is not a valid theme.\n' - 'The content encoding is not UTF-8.')) - continue + # Handle native Unicode files from Windows + ucsfile = file osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile)) theme_dir = None if osfile.endswith(os.path.sep): diff --git a/openlp/core/utils/__init__.py b/openlp/core/utils/__init__.py index 9aa1acde6..fbf185474 100644 --- a/openlp/core/utils/__init__.py +++ b/openlp/core/utils/__init__.py @@ -475,26 +475,6 @@ def file_is_unicode(filename): return None return ucsfile -def file_is_mbcs(filename): - """ - Checks if a file is valid Windows file system encoded unicode and returns - the unicode decoded file or None. - - ``filename`` - File to check is valid Windows file system encoded. - """ - if not filename: - return None - ucsfile = None - try: - ucsfile = filename.decode(u'mbcs') - except UnicodeDecodeError: - log.exception(u'Filename "%s" is not valid Windows encoded file' % - filename.decode(u'mbcs', u'replace')) - if not ucsfile: - return None - return ucsfile - def get_uno_command(): """ Returns the UNO command to launch an openoffice.org instance.