forked from openlp/openlp
Fix v1 theme importing
This commit is contained in:
parent
c975a4b309
commit
26df14e43c
@ -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, \
|
||||
get_filesystem_encoding
|
||||
file_is_mbcs, get_filesystem_encoding
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
@ -528,11 +528,13 @@ class ThemeManager(QtGui.QWidget):
|
||||
for file in zip.namelist():
|
||||
ucsfile = file_is_unicode(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
|
||||
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
|
||||
osfile = unicode(QtCore.QDir.toNativeSeparators(ucsfile))
|
||||
theme_dir = None
|
||||
if osfile.endswith(os.path.sep):
|
||||
|
@ -475,6 +475,26 @@ 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.
|
||||
|
Loading…
Reference in New Issue
Block a user