mark/bury/etc in main window

This commit is contained in:
Damien Elmes 2011-04-16 02:04:16 +09:00
parent 5828081475
commit 9900b02795
2 changed files with 25 additions and 41 deletions

View file

@ -610,48 +610,36 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
# Marking, suspending and deleting
##########################################################################
# These are only available while reviewing
def updateMarkAction(self):
def updateMarkAction(self, ):
self.form.actionMarkCard.blockSignals(True)
if self.deck.cardHasTag(self.currentCard, "Marked"):
self.form.actionMarkCard.setChecked(True)
else:
self.form.actionMarkCard.setChecked(False)
self.form.actionMarkCard.setChecked(
self.reviewer.card.fact().hasTag("marked"))
self.form.actionMarkCard.blockSignals(False)
def onMark(self, toggled):
if self.deck.cardHasTag(self.currentCard, "Marked"):
self.currentCard.fact.tags = canonifyTags(deleteTags(
"Marked", self.currentCard.fact.tags))
f = self.reviewer.card.fact()
if f.hasTag("marked"):
f.delTag("marked")
else:
self.currentCard.fact.tags = canonifyTags(addTags(
"Marked", self.currentCard.fact.tags))
self.currentCard.fact.setModified(textChanged=True, deck=self.deck)
self.deck.updateFactTags([self.currentCard.fact.id])
self.deck.setModified()
f.addTag("marked")
f.flush()
def onSuspend(self):
undo = _("Suspend")
self.deck.setUndoStart(undo)
self.deck.suspendCards([self.currentCard.id])
self.reset()
self.deck.setUndoEnd(undo)
self.checkpoint(_("Suspend"))
self.deck.sched.suspendCards([self.reviewer.card.id])
self.reviewer.nextCard()
def onDelete(self):
undo = _("Delete")
if self.state == "editCurrent":
self.moveToState("saveEdit")
self.deck.setUndoStart(undo)
self.deck.deleteCard(self.currentCard.id)
self.reset()
self.deck.setUndoEnd(undo)
self.checkpoint(_("Delete"))
self.deck.delCards([self.reviewer.card.id])
self.reviewer.nextCard()
def onBuryFact(self):
undo = _("Bury")
self.deck.setUndoStart(undo)
self.deck.buryFact(self.currentCard.fact)
self.reset()
self.deck.setUndoEnd(undo)
self.checkpoint(_("Bury"))
self.deck.sched.buryFact(self.reviewer.card.fid)
self.reviewer.nextCard()
# Undo
##########################################################################
@ -897,6 +885,7 @@ Please choose a new deck name:"""))
self.form.actionBuryFact.setEnabled(True)
self.form.actionEditCurrent.setEnabled(True)
self.form.actionEditdeck.setEnabled(True)
self.updateMarkAction()
runHook("enableCardMenuItems")
# Auto update

View file

@ -28,7 +28,7 @@ class Reviewer(object):
def show(self):
self.web.setKeyHandler(self._keyHandler)
self.web.setLinkHandler(self._linkHandler)
self._getCard()
self.nextCard()
def lastCard(self):
if self._answeredIds:
@ -38,7 +38,7 @@ class Reviewer(object):
# Fetching a card
##########################################################################
def _getCard(self):
def nextCard(self):
if self.cardQueue:
# a card has been retrieved from undo
c = self.cardQueue.pop()
@ -144,20 +144,15 @@ $(".ansbut").focus();
##########################################################################
def _showQuestion(self):
self.state = "question"
# fixme: timeboxing
# fixme: prevent audio from repeating
# fixme: include placeholder for type answer result
# fixme: timer
self.state = "question"
c = self.card
# original question with sounds
q = c.q()
a = c.a()
if (#self.state != self.oldState and not nosound
self.mw.config['autoplaySounds']):
if self.mw.config['autoplaySounds']:
playFromText(q)
# render
# buf = self.typeAnsResult()
esc = self.mw.deck.media.escapeImages
q=esc(mungeQA(q)) + self.typeAnsInput()
a=esc(mungeQA(a))
@ -229,7 +224,7 @@ $(".ansbut").focus();
self.mw.deck.sched.answerCard(self.card, ease)
self._answeredIds.append(self.card.id)
print "fixme: save"
self._getCard()
self.nextCard()
# Handlers
############################################################