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

View file

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