diff --git a/aqt/deckconf.py b/aqt/deckconf.py
index 15d03f405..36fabb9c9 100644
--- a/aqt/deckconf.py
+++ b/aqt/deckconf.py
@@ -187,6 +187,7 @@ class DeckConf(QDialog):
f.maxTaken.setValue(c['maxTaken'])
f.showTimer.setChecked(c.get('timer', 0))
f.autoplaySounds.setChecked(c['autoplay'])
+ f.replayQuestion.setChecked(c.get('replayq', True))
# description
f.desc.setPlainText(self.deck['desc'])
@@ -262,6 +263,7 @@ class DeckConf(QDialog):
c['maxTaken'] = f.maxTaken.value()
c['timer'] = f.showTimer.isChecked() and 1 or 0
c['autoplay'] = f.autoplaySounds.isChecked()
+ c['replayq'] = f.replayQuestion.isChecked()
# description
self.deck['desc'] = f.desc.toPlainText()
self.mw.col.decks.save(self.deck)
diff --git a/aqt/reviewer.py b/aqt/reviewer.py
index 4c9950c98..86a3766f1 100644
--- a/aqt/reviewer.py
+++ b/aqt/reviewer.py
@@ -97,10 +97,12 @@ class Reviewer(object):
playFromText(c.q())
elif self.state == "answer":
txt = ""
- if self.mw.col.conf.get("replayBoth", True):
+ exclude = c.q()
+ if self._replayq(c):
txt = c.q()
+ exclude = ""
txt += c.a()
- playFromText(txt)
+ playFromText(txt, exclude)
# Initializing the webview
##########################################################################
@@ -200,6 +202,10 @@ The front of this card is empty. Please run Tools>Maintenance>Empty Cards.""")
return self.mw.col.decks.confForDid(
self.card.odid or self.card.did)['autoplay']
+ def _replayq(self, card):
+ return self.mw.col.decks.confForDid(
+ self.card.odid or self.card.did).get('replayq', True)
+
def _toggleStar(self):
self.web.eval("_toggleStar(%s);" % json.dumps(
self.card.note().hasTag("marked")))
diff --git a/designer/dconf.ui b/designer/dconf.ui
index 6a9c415a3..ccc3ce3cd 100644
--- a/designer/dconf.ui
+++ b/designer/dconf.ui
@@ -6,8 +6,8 @@
0
0
- 500
- 438
+ 481
+ 401
@@ -556,6 +556,16 @@
+ -
+
+
+ When answer shown, replay both question and answer audio
+
+
+ false
+
+
+
-
@@ -626,6 +636,7 @@
maxTaken
showTimer
autoplaySounds
+ replayQuestion
buttonBox
desc