Format
Signed-off-by: Tobias Manske <tobias.manske@mailbox.org>
This commit is contained in:
parent
8e2815bc87
commit
4c966c1f5f
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user