mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
type in answer support, accept ret from study options
This commit is contained in:
parent
9d7c65c735
commit
75fc98cdba
5 changed files with 78 additions and 13 deletions
|
@ -266,12 +266,9 @@ Please do not file a bug report with Anki.\n\n""")
|
|||
|
||||
def keyPressEvent(self, evt):
|
||||
"Show answer on RET or register answer."
|
||||
|
||||
if evt.key() in (Qt.Key_Up,Qt.Key_Down,Qt.Key_Left,Qt.Key_Right,
|
||||
Qt.Key_PageUp,Qt.Key_PageDown):
|
||||
|
||||
mf = self.bodyView.body.page().currentFrame()
|
||||
|
||||
if evt.key() == Qt.Key_Up:
|
||||
mf.evaluateJavaScript("window.scrollBy(0,-20)")
|
||||
elif evt.key() == Qt.Key_Down:
|
||||
|
@ -288,10 +285,8 @@ Please do not file a bug report with Anki.\n\n""")
|
|||
mf.evaluateJavaScript("window.scrollBy(0,%d)" %
|
||||
int(0.9*self.bodyView.body.size().
|
||||
height()))
|
||||
|
||||
evt.accept()
|
||||
return
|
||||
|
||||
if self.state == "showQuestion":
|
||||
if evt.key() in (Qt.Key_Enter,
|
||||
Qt.Key_Return):
|
||||
|
@ -304,6 +299,11 @@ Please do not file a bug report with Anki.\n\n""")
|
|||
num=int(key)
|
||||
evt.accept()
|
||||
return self.cardAnswered(num)
|
||||
elif self.state == "studyScreen":
|
||||
if evt.key() in (Qt.Key_Enter,
|
||||
Qt.Key_Return):
|
||||
evt.accept()
|
||||
return self.onStartReview()
|
||||
evt.ignore()
|
||||
|
||||
def cardAnswered(self, quality):
|
||||
|
@ -436,9 +436,13 @@ new:
|
|||
self.mainWin.buttonStack.hide()
|
||||
|
||||
def showAnswerButton(self):
|
||||
if self.currentCard.cardModel.typeAnswer:
|
||||
self.mainWin.buttonStack.setCurrentIndex(4)
|
||||
self.mainWin.typeAnswerField.selectAll()
|
||||
else:
|
||||
self.mainWin.buttonStack.setCurrentIndex(0)
|
||||
self.mainWin.buttonStack.show()
|
||||
self.mainWin.showAnswerButton.setFocus()
|
||||
self.mainWin.buttonStack.show()
|
||||
|
||||
def showEaseButtons(self):
|
||||
self.updateEaseButtons()
|
||||
|
|
|
@ -293,6 +293,7 @@ class ModelProperties(QDialog):
|
|||
self.dialog.cardAnswer.setPlainText(card.aformat.replace("<br>", "\n"))
|
||||
self.dialog.questionInAnswer.setChecked(card.questionInAnswer)
|
||||
self.dialog.allowEmptyAnswer.setChecked(card.allowEmptyAnswer)
|
||||
self.dialog.typeAnswer.setChecked(card.typeAnswer)
|
||||
self.updateToggleButtonText(card)
|
||||
|
||||
def enableCardMoveButtons(self):
|
||||
|
@ -329,6 +330,7 @@ class ModelProperties(QDialog):
|
|||
changed = changed or changed2
|
||||
self.updateField(card, 'questionInAnswer', self.dialog.questionInAnswer.isChecked())
|
||||
self.updateField(card, 'allowEmptyAnswer', self.dialog.allowEmptyAnswer.isChecked())
|
||||
self.updateField(card, 'typeAnswer', self.dialog.typeAnswer.isChecked())
|
||||
if changed:
|
||||
# need to generate all question/answers for this card
|
||||
self.deck.updateCardsFromModel(self.m)
|
||||
|
|
|
@ -124,11 +124,11 @@ class View(object):
|
|||
|
||||
def center(self, str, height=40):
|
||||
if not self.main.config['splitQA']:
|
||||
return str
|
||||
return '''
|
||||
<div style="display: table; height: %s%%; width:100%%; overflow: hidden;">\
|
||||
return "<center>" + str + "</center>"
|
||||
return '''\
|
||||
<center><div style="display: table; height: %s%%; width:100%%; overflow: hidden;">\
|
||||
<div style="display: table-cell; vertical-align: middle;">\
|
||||
<div style="">%s</div></div></div>''' % (height, str)
|
||||
<div style="">%s</div></div></div></center>''' % (height, str)
|
||||
|
||||
def drawQuestion(self, nosound=False):
|
||||
"Show the question."
|
||||
|
@ -146,6 +146,17 @@ class View(object):
|
|||
def drawAnswer(self):
|
||||
"Show the answer."
|
||||
a = self.main.currentCard.htmlAnswer()
|
||||
if self.main.currentCard.cardModel.typeAnswer:
|
||||
cor = stripHTML(self.main.currentCard.answer)
|
||||
given = unicode(self.main.mainWin.typeAnswerField.text())
|
||||
res = []
|
||||
for (i, c) in enumerate(given):
|
||||
if c == cor[i]:
|
||||
res.append("<span style='color: #007700'>%s</span>" % c)
|
||||
else:
|
||||
res.append("<span style='color: #770000'>%s</span>" % c)
|
||||
a += "<div>" + (_("You typed:<br><b>") +
|
||||
"".join(res)) + "</b></div>"
|
||||
self.write(self.center('<span id=answer />' +
|
||||
self.mungeQA(self.main.deck, a)))
|
||||
if self.state != self.oldState:
|
||||
|
|
|
@ -449,7 +449,7 @@
|
|||
<item row="1" column="0" >
|
||||
<widget class="QStackedWidget" name="buttonStack" >
|
||||
<property name="currentIndex" >
|
||||
<number>4</number>
|
||||
<number>5</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="page1" >
|
||||
<property name="geometry" >
|
||||
|
@ -697,7 +697,7 @@
|
|||
<item>
|
||||
<widget class="QPushButton" name="startReviewingButton" >
|
||||
<property name="text" >
|
||||
<string>PushButton</string>
|
||||
<string>Review</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -712,6 +712,46 @@
|
|||
<height>49</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7" >
|
||||
<item>
|
||||
<spacer name="verticalSpacer_6" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType" >
|
||||
<enum>QSizePolicy::Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>2</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="typeAnswerField" >
|
||||
<property name="font" >
|
||||
<font>
|
||||
<pointsize>12</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Type answer and hit enter</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>542</width>
|
||||
<height>49</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -490,6 +490,13 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1" >
|
||||
<widget class="QCheckBox" name="typeAnswer" >
|
||||
<property name="text" >
|
||||
<string>Ask me to type in the answer</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
@ -539,6 +546,7 @@
|
|||
<tabstop>cardAnswer</tabstop>
|
||||
<tabstop>questionInAnswer</tabstop>
|
||||
<tabstop>allowEmptyAnswer</tabstop>
|
||||
<tabstop>typeAnswer</tabstop>
|
||||
<tabstop>buttonBox</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
|
|
Loading…
Reference in a new issue