From 351d8a309f7d3c0cae7f818313b1a0e7aac4408a Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Mon, 13 Apr 2020 09:04:30 +1000 Subject: [PATCH] move autoplay() into card --- pylib/anki/cards.py | 3 +++ qt/aqt/previewer.py | 2 +- qt/aqt/reviewer.py | 9 ++++++--- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pylib/anki/cards.py b/pylib/anki/cards.py index b32e44826..be39d5bf7 100644 --- a/pylib/anki/cards.py +++ b/pylib/anki/cards.py @@ -170,6 +170,9 @@ class Card: conf = self.col.decks.confForDid(self.odid or self.did) return conf.get("replayq", True) + def autoplay(self) -> bool: + return self.col.decks.confForDid(self.odid or self.did)["autoplay"] + def timeTaken(self) -> int: "Time taken to answer card, in integer MS." total = int((time.time() - self.timerStarted) * 1000) diff --git a/qt/aqt/previewer.py b/qt/aqt/previewer.py index 0c25cf9ab..cfafa1456 100644 --- a/qt/aqt/previewer.py +++ b/qt/aqt/previewer.py @@ -172,7 +172,7 @@ class Previewer(QDialog): bodyclass = theme_manager.body_classes_for_card_ord(c.ord) - if self.mw.reviewer.autoplay(c): + if c.autoplay(): if self._show_both_sides: # if we're showing both sides at once, remove any audio # from the answer that's appeared on the question already diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index b6ad94b35..40e4bdef5 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -29,6 +29,7 @@ class ReviewerBottomBar: def __init__(self, reviewer: Reviewer) -> None: self.reviewer = reviewer + def replay_audio(card: Card, question_side: bool) -> None: if question_side: av_player.play_tags(card.question_av_tags()) @@ -38,6 +39,7 @@ def replay_audio(card: Card, question_side: bool) -> None: tags = card.question_av_tags() + tags av_player.play_tags(tags) + class Reviewer: "Manage reviews. Maintains a separate state." @@ -187,7 +189,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" q = c.q() # play audio? - if self.autoplay(c): + if c.autoplay(): av_player.play_tags(c.question_av_tags()) else: av_player.clear_queue_and_maybe_interrupt() @@ -209,7 +211,8 @@ The front of this card is empty. Please run Tools>Empty Cards.""" gui_hooks.reviewer_did_show_question(c) def autoplay(self, card: Card) -> bool: - return self.mw.col.decks.confForDid(card.odid or card.did)["autoplay"] + print("use card.autoplay() instead of reviewer.autoplay(card)") + return card.autoplay() def _drawFlag(self) -> None: self.web.eval("_drawFlag(%s);" % self.card.userFlag()) @@ -228,7 +231,7 @@ The front of this card is empty. Please run Tools>Empty Cards.""" c = self.card a = c.a() # play audio? - if self.autoplay(c): + if c.autoplay(): av_player.play_tags(c.answer_av_tags()) else: av_player.clear_queue_and_maybe_interrupt()