From 80e15ff6aa6f360bf99a2c7ec2e347acb052d9c3 Mon Sep 17 00:00:00 2001 From: hikaru-y Date: Mon, 26 Jul 2021 14:28:38 +0900 Subject: [PATCH] Show flag and mark icons in previewer --- qt/aqt/browser/browser.py | 6 ++++-- qt/aqt/browser/previewer.py | 11 +++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/qt/aqt/browser/browser.py b/qt/aqt/browser/browser.py index 8f2688fdc..28f1fc685 100644 --- a/qt/aqt/browser/browser.py +++ b/qt/aqt/browser/browser.py @@ -151,12 +151,14 @@ class Browser(QMainWindow): return self.editor.set_note(note) - self._renderPreview() - if changes.browser_table and changes.card: self.card = self.table.get_current_card() self._update_context_actions() + # changes.card is required for updating flag icon + if changes.note_text or changes.card: + self._renderPreview() + def on_focus_change(self, new: Optional[QWidget], old: Optional[QWidget]) -> None: if current_window() == self: self.setUpdatesEnabled(True) diff --git a/qt/aqt/browser/previewer.py b/qt/aqt/browser/previewer.py index 51824250d..b9a25f7d2 100644 --- a/qt/aqt/browser/previewer.py +++ b/qt/aqt/browser/previewer.py @@ -11,6 +11,7 @@ from typing import Any, Callable, Optional, Tuple, Union import aqt.browser from anki.cards import Card from anki.collection import Config +from anki.tags import MARKED_TAG from aqt import AnkiQt, gui_hooks from aqt.qt import ( QCheckBox, @@ -140,6 +141,15 @@ class Previewer(QDialog): if cmd.startswith("play:"): play_clicked_audio(cmd, self.card()) + def _update_flag_and_mark_icons(self, card: Optional[Card]) -> None: + if card: + flag = card.user_flag() + marked = card.note(reload=True).has_tag(MARKED_TAG) + else: + flag = 0 + marked = False + self._web.eval(f"_drawFlag({flag}); _drawMark({json.dumps(marked)});") + def render_card(self) -> None: self.cancel_timer() # Keep track of whether render() has ever been called @@ -167,6 +177,7 @@ class Previewer(QDialog): if not self._open: return c = self.card() + self._update_flag_and_mark_icons(c) func = "_showQuestion" ans_txt = "" if not c: