|
7 | 7 |
|
8 | 8 | from anki.utils import ids2str |
9 | 9 | from aqt import mw |
10 | | -from aqt.qt import QUrl |
11 | 10 | from aqt.browser import Browser |
12 | | -from aqt.editor import EditorWebView |
13 | 11 | from aqt.gui_hooks import ( |
14 | 12 | browser_will_show_context_menu, |
15 | 13 | card_layout_will_show, |
16 | 14 | profile_did_open, |
17 | | - editor_will_show_context_menu, |
18 | 15 | ) |
19 | | -from aqt.qt import QMenu, QPushButton, qtmajor, QAction, qconnect |
| 16 | +from aqt.qt import QMenu, QPushButton |
20 | 17 | from aqt.utils import askUserDialog, tooltip |
21 | 18 |
|
22 | | -from bs4 import BeautifulSoup |
23 | | - |
| 19 | +from . import editor |
24 | 20 | from .compat import add_compat_aliases |
25 | 21 | from .gui.config_window import ( |
26 | 22 | NotetypesConfigWindow, |
@@ -51,7 +47,7 @@ def setup(): |
51 | 47 |
|
52 | 48 | browser_will_show_context_menu.append(on_browser_will_show_context_menu) |
53 | 49 |
|
54 | | - editor_will_show_context_menu.append(on_editor_will_show_context_menu) |
| 50 | + editor.init() |
55 | 51 |
|
56 | 52 |
|
57 | 53 | def on_profile_did_open(): |
@@ -201,40 +197,5 @@ def on_browser_will_show_context_menu(browser: Browser, context_menu: QMenu) -> |
201 | 197 | action.setDisabled(True) |
202 | 198 |
|
203 | 199 |
|
204 | | -def on_editor_will_show_context_menu(webview: EditorWebView, menu: QMenu) -> None: |
205 | | - def on_blur_image() -> None: |
206 | | - editor = webview.editor |
207 | | - url = data.mediaUrl() |
208 | | - if url.matches(QUrl(mw.serverURL()), QUrl.UrlFormattingOption.RemovePath): |
209 | | - src = url.path().strip("/") |
210 | | - else: |
211 | | - src = url.toString() |
212 | | - field = editor.note.fields[editor.currentField] |
213 | | - soup = BeautifulSoup(field, "html.parser") |
214 | | - for img in soup("img"): |
215 | | - if img.get("src", "").strip("/") != src: |
216 | | - continue |
217 | | - classes = img.get("class", []) |
218 | | - if "blur" in classes: |
219 | | - classes.remove("blur") |
220 | | - else: |
221 | | - classes.append("blur") |
222 | | - if classes: |
223 | | - img["class"] = classes |
224 | | - elif "class" in img.attrs: |
225 | | - del img["class"] |
226 | | - editor.note.fields[editor.currentField] = soup.decode_contents() |
227 | | - editor.loadNoteKeepingFocus() |
228 | | - |
229 | | - if qtmajor >= 6: |
230 | | - data = webview.lastContextMenuRequest() # type: ignore |
231 | | - else: |
232 | | - data = webview.page().contextMenuData() |
233 | | - if data.mediaUrl().isValid(): |
234 | | - blur_image_action = QAction("AnKing Notetypes: Blur/Unblur Image", menu) |
235 | | - qconnect(blur_image_action.triggered, on_blur_image) |
236 | | - menu.addAction(blur_image_action) |
237 | | - |
238 | | - |
239 | 200 | if mw is not None: |
240 | 201 | setup() |
0 commit comments