Fix editing of .txt files broken

This commit is contained in:
Kovid Goyal 2013-12-02 21:00:39 +05:30
parent 5c6ec901da
commit e927c2310e

View File

@ -14,7 +14,7 @@ from PyQt4.Qt import (
QObject, QApplication, QDialog, QGridLayout, QLabel, QSize, Qt, QCursor, QObject, QApplication, QDialog, QGridLayout, QLabel, QSize, Qt, QCursor,
QDialogButtonBox, QIcon, QTimer, QPixmap, QTextBrowser, QVBoxLayout, QInputDialog) QDialogButtonBox, QIcon, QTimer, QPixmap, QTextBrowser, QVBoxLayout, QInputDialog)
from calibre import prints, prepare_string_for_xml from calibre import prints, prepare_string_for_xml, isbytestring
from calibre.ptempfile import PersistentTemporaryDirectory from calibre.ptempfile import PersistentTemporaryDirectory
from calibre.ebooks.oeb.base import urlnormalize from calibre.ebooks.oeb.base import urlnormalize
from calibre.ebooks.oeb.polish.main import SUPPORTED, tweak_polish from calibre.ebooks.oeb.polish.main import SUPPORTED, tweak_polish
@ -736,11 +736,17 @@ class Boss(QObject):
def edit_file(self, name, syntax, use_template=None): def edit_file(self, name, syntax, use_template=None):
editor = editors.get(name, None) editor = editors.get(name, None)
if editor is None: if editor is None:
editor = editors[name] = editor_from_syntax(syntax, self.gui.editor_tabs)
if use_template is None: if use_template is None:
data = current_container().raw_data(name) data = current_container().raw_data(name)
if isbytestring(data):
try:
data = data.decode('utf-8')
except UnicodeDecodeError:
return error_dialog(self.gui, _('Cannot decode'), _(
'Cannot edit %s as it appears to be in an unknown character encoding') % name, show=True)
else: else:
data = use_template data = use_template
editor = editors[name] = editor_from_syntax(syntax, self.gui.editor_tabs)
self.init_editor(name, editor, data, use_template=bool(use_template)) self.init_editor(name, editor, data, use_template=bool(use_template))
self.show_editor(name) self.show_editor(name)
return editor return editor