diff --git a/aqt/main.py b/aqt/main.py index cfcdbac86..ef44bcb11 100755 --- a/aqt/main.py +++ b/aqt/main.py @@ -331,7 +331,6 @@ title="%s">%s''' % ( sweb.setFixedHeight(100) sweb.setObjectName("bottomWeb") sweb.setFocusPolicy(Qt.WheelFocus) - sweb.stdHtml("foo") # add in a layout self.mainLayout = QVBoxLayout() self.mainLayout.setContentsMargins(0,0,0,0) diff --git a/aqt/reviewer.py b/aqt/reviewer.py index 05ce802e0..bb55e9b15 100644 --- a/aqt/reviewer.py +++ b/aqt/reviewer.py @@ -81,8 +81,6 @@ class Reviewer(object):
@@ -138,7 +116,7 @@ function _typeAnsPress() { def _mungeQA(self, buf): return self.mw.col.media.escapeImages( - self.prepareTypeAns(mungeQA(buf))) + self.typeAnsFilter(mungeQA(buf))) def _showQuestion(self): self.state = "question" @@ -181,6 +159,8 @@ function _typeAnsPress() { def _answerCard(self, ease): "Reschedule card and show next." + if self.mw.col.sched.answerButtons(self.card) < ease: + return self.mw.col.sched.answerCard(self.card, ease) self._answeredIds.append(self.card.id) self.mw.autosave() @@ -208,29 +188,10 @@ function _typeAnsPress() { self.mw.onBuryNote() elif key == "=": self.mw.onSuspend() + elif key in ("1", "2", "3", "4"): + self._answerCard(int(key)) elif evt.key() == Qt.Key_Delete: self.mw.onDelete() - print "key", evt.key() - # if self.state == "question": - # show = False - # if evt.key() == Qt.Key_Space and self.typeAns() is None: - # show = True - # elif evt.key() == Qt.Key_Escape: - # self.web.eval("$('#typeans').blur();") - # if show: - # self._showAnswer() - # self.web.eval("_showans();") - # return True - # elif self.state == "answer": - # if evt.key() == Qt.Key_Space: - # self.web.eval("_onSpace();") - # else: - # key = unicode(evt.text()) - # if key and key >= "1" and key <= "4": - # key=int(key) - # if self.card.queue == 2 or key < 4: - # self._answerCard(key) - # return True def _linkHandler(self, url): if url == "ans": @@ -243,7 +204,7 @@ function _typeAnsPress() { self.showContextMenu() elif url.startswith("typeans:"): (cmd, arg) = url.split(":") - self.processTypedAns(arg) + self.typedAnswer = arg else: QDesktopServices.openUrl(QUrl(url)) @@ -264,54 +225,58 @@ body { margin:1.5em; } failedCharColour = "#FF0000" passedCharColour = "#00FF00" + typeAnsPat = "\[\[type:(.+?)\]\]" - def prepareTypeAns(self, buf): + def typeAnsFilter(self, buf): + if self.state == "question": + return self.typeAnsQuestionFilter(buf) + else: + return self.typeAnsAnswerFilter(buf) + + def typeAnsQuestionFilter(self, buf): self.typeField = None - pat = "\[\[type:(.+?)\]\]" - m = re.search(pat, buf) + m = re.search(self.typeAnsPat, buf) if not m: return buf fld = m.group(1) - fobj = None for f in self.card.model()['flds']: if f['name'] == fld: - fobj = f + self.typeField = f + self.typeFont = f['font'] + self.typeSize = f['size'] break - if not fobj: - return re.sub(pat, _("Type answer: unknown field %s") % fld, buf) - self.typeField = fobj - return re.sub(pat, """ + if not self.typeField: + return re.sub( + self.typeAnsPat, _("Type answer: unknown field %s") % fld, buf) + return re.sub(self.typeAnsPat, """