From 67a168edae5d711258c363057b88b74e4cab8274 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 21 Nov 2014 14:19:43 +0530 Subject: [PATCH] ... --- src/calibre/gui2/tweak_book/editor/text.py | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/calibre/gui2/tweak_book/editor/text.py b/src/calibre/gui2/tweak_book/editor/text.py index c7d2a2c52c..13cd92be1b 100644 --- a/src/calibre/gui2/tweak_book/editor/text.py +++ b/src/calibre/gui2/tweak_book/editor/text.py @@ -31,13 +31,19 @@ from calibre.utils.titlecase import titlecase PARAGRAPH_SEPARATOR = '\u2029' def get_highlighter(syntax): - # Load these highlighters only on demand try: ans = importlib.import_module('calibre.gui2.tweak_book.editor.syntax.' + syntax).Highlighter except (ImportError, AttributeError): ans = SyntaxHighlighter return ans +def get_smarts(syntax): + smartsname = {'xml':'html'}.get(syntax, syntax) + try: + return importlib.import_module('calibre.gui2.tweak_book.editor.smart.' + smartsname).Smarts + except (ImportError, AttributeError): + pass + _dff = None def default_font_family(): global _dff @@ -210,12 +216,8 @@ class TextEdit(PlainTextEdit): self.highlighter = get_highlighter(syntax)() self.highlighter.apply_theme(self.theme) self.highlighter.set_document(self.document(), doc_name=doc_name) - smartsname = {'xml':'html'}.get(syntax, syntax) - try: - sclass = importlib.import_module('calibre.gui2.tweak_book.editor.smart.' + smartsname).Smarts - except (ImportError, AttributeError): - pass - else: + sclass = get_smarts(syntax) + if sclass is not None: self.smarts = sclass(self) self.setPlainText(unicodedata.normalize('NFC', unicode(text))) if process_template and QPlainTextEdit.find(self, '%CURSOR%'):