diff --git a/src/__init__.py b/src/__init__.py index af8ed11..9d1839e 100644 --- a/src/__init__.py +++ b/src/__init__.py @@ -8,8 +8,9 @@ from aqt.webview import AnkiWebView config = mw.addonManager.getConfig(__name__) + class EditorPreview(object): - js=[ + js = [ "js/mathjax.js", "js/vendor/mathjax/tex-chtml.js", "js/reviewer.js", @@ -18,7 +19,7 @@ class EditorPreview(object): def __init__(self): gui_hooks.editor_did_init.append(self.editor_init_hook) gui_hooks.editor_did_init_buttons.append(self.editor_init_button_hook) - if int(buildinfo.version.split(".")[2]) < 45: # < 2.1.45 + if int(buildinfo.version.split(".")[2]) < 45: # < 2.1.45 self.js = [ "js/vendor/jquery.min.js", "js/vendor/css_browser_selector.min.js", @@ -27,7 +28,6 @@ class EditorPreview(object): "js/reviewer.js", ] - def editor_init_hook(self, ed: editor.Editor): ed.editor_preview = AnkiWebView(title="editor_preview") # This is taken out of clayout.py @@ -38,34 +38,36 @@ class EditorPreview(object): context=ed, ) - if not config['showPreviewAutomatically']: + if not config["showPreviewAutomatically"]: ed.editor_preview.hide() self._inject_splitter(ed) gui_hooks.editor_did_fire_typing_timer.append(lambda o: self.onedit_hook(ed, o)) - gui_hooks.editor_did_load_note.append(lambda o: None if o != ed else self.editor_note_hook(o)) + gui_hooks.editor_did_load_note.append( + lambda o: None if o != ed else self.editor_note_hook(o) + ) def _get_splitter(self, editor): layout = editor.outerLayout - mainR, editorR = [int(r) for r in config['splitRatio'].split(":")] - location = config['location'] + mainR, editorR = [int(r) for r in config["splitRatio"].split(":")] + location = config["location"] split = QSplitter() - if location == 'above': + if location == "above": split.setOrientation(Qt.Vertical) split.addWidget(editor.editor_preview) split.addWidget(editor.web) sizes = [editorR, mainR] - elif location == 'below': + elif location == "below": split.setOrientation(Qt.Vertical) split.addWidget(editor.web) split.addWidget(editor.editor_preview) sizes = [mainR, editorR] - elif location == 'left': + elif location == "left": split.setOrientation(Qt.Horizontal) split.addWidget(editor.editor_preview) split.addWidget(editor.web) sizes = [editorR, mainR] - elif location == 'right': + elif location == "right": split.setOrientation(Qt.Horizontal) split.addWidget(editor.web) split.addWidget(editor.editor_preview) @@ -76,7 +78,6 @@ class EditorPreview(object): split.setSizes(sizes) return split - def _inject_splitter(self, editor: editor.Editor): layout = editor.outerLayout web_index = layout.indexOf(editor.web) @@ -85,16 +86,19 @@ class EditorPreview(object): split = self._get_splitter(editor) layout.insertWidget(web_index, split) - def editor_note_hook(self, editor): self.onedit_hook(editor, editor.note) def editor_init_button_hook(self, buttons, editor): addon_path = os.path.dirname(__file__) - icons_dir = os.path.join(addon_path, 'icons') - b = editor.addButton(icon=os.path.join(icons_dir, 'file.svg'), cmd="_editor_toggle_preview", tip='Toggle Live Preview', - func=lambda o=editor: self.onEditorPreviewButton(o), disables=False - ) + icons_dir = os.path.join(addon_path, "icons") + b = editor.addButton( + icon=os.path.join(icons_dir, "file.svg"), + cmd="_editor_toggle_preview", + tip="Toggle Live Preview", + func=lambda o=editor: self.onEditorPreviewButton(o), + disables=False, + ) buttons.append(b) def onEditorPreviewButton(self, origin: editor.Editor): @@ -103,13 +107,14 @@ class EditorPreview(object): else: origin.editor_preview.hide() - def _obtainCardText(self, note): c = note.ephemeral_card() a = mw.prepare_card_text_for_display(c.answer()) a = gui_hooks.card_will_show(a, c, "clayoutAnswer") if theme_manager.night_mode: - bodyclass = theme_manager.body_classes_for_card_ord(c.ord, mw.pm.night_mode()) + bodyclass = theme_manager.body_classes_for_card_ord( + c.ord, mw.pm.night_mode() + ) else: bodyclass = theme_manager.body_classes_for_card_ord(c.ord) bodyclass += " editor-preview" @@ -120,4 +125,5 @@ class EditorPreview(object): if editor.note == origin: editor.editor_preview.eval(self._obtainCardText(editor.note)) + eprev = EditorPreview()