From 218c033104e591b9e4851fb62a72be462e1699a6 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Jan 2020 16:01:16 +1000 Subject: [PATCH] respond to play button clicks in preview screen + card layout screen --- qt/aqt/browser.py | 7 ++++++- qt/aqt/clayout.py | 11 +++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/qt/aqt/browser.py b/qt/aqt/browser.py index e0920cc70..42c9ecf33 100644 --- a/qt/aqt/browser.py +++ b/qt/aqt/browser.py @@ -24,7 +24,7 @@ from anki.utils import fmtTimeSpan, htmlToTextLine, ids2str, intTime, isMac, isW from aqt import AnkiQt, gui_hooks from aqt.editor import Editor from aqt.qt import * -from aqt.sound import av_player +from aqt.sound import av_player, play_clicked_audio from aqt.theme import theme_manager from aqt.utils import ( MenuList, @@ -1634,6 +1634,11 @@ where id in %s""" self._previewWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc ) + self._previewWeb.set_bridge_command(self._on_preview_bridge_cmd, "preview") + + def _on_preview_bridge_cmd(self, cmd: str) -> Any: + if cmd.startswith("play:"): + play_clicked_audio(cmd, self.card) def _renderPreview(self, cardChanged=False): self._cancelPreviewTimer() diff --git a/qt/aqt/clayout.py b/qt/aqt/clayout.py index c518abe91..37cad38a2 100644 --- a/qt/aqt/clayout.py +++ b/qt/aqt/clayout.py @@ -14,7 +14,7 @@ from anki.lang import _, ngettext from anki.utils import isMac, isWin, joinFields from aqt import gui_hooks from aqt.qt import * -from aqt.sound import av_player +from aqt.sound import av_player, play_clicked_audio from aqt.theme import theme_manager from aqt.utils import ( askUser, @@ -220,9 +220,12 @@ class CardLayout(QDialog): pform.backWeb.stdHtml( self.mw.reviewer.revHtml(), css=["reviewer.css"], js=jsinc ) - # specify a context for add-ons - pform.frontWeb.set_bridge_command(lambda msg: None, "card_layout") - pform.backWeb.set_bridge_command(lambda msg: None, "card_layout") + pform.frontWeb.set_bridge_command(self._on_bridge_cmd, "card_layout") + pform.backWeb.set_bridge_command(self._on_bridge_cmd, "card_layout") + + def _on_bridge_cmd(self, cmd: str) -> Any: + if cmd.startswith("play:"): + play_clicked_audio(cmd, self.card) def updateMainArea(self): if self._isCloze():