mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00
add autosave; improve undo state handling
This commit is contained in:
parent
64b9ba3da8
commit
a45f2ceedc
3 changed files with 16 additions and 11 deletions
|
@ -324,7 +324,7 @@ class Browser(QMainWindow):
|
||||||
self.setupEditor()
|
self.setupEditor()
|
||||||
self.setupCardInfo()
|
self.setupCardInfo()
|
||||||
self.updateFont()
|
self.updateFont()
|
||||||
self.onCheckpoint()
|
self.onUndoState(self.mw.form.actionUndo.isEnabled())
|
||||||
self.form.searchEdit.setFocus()
|
self.form.searchEdit.setFocus()
|
||||||
self.show()
|
self.show()
|
||||||
self.form.searchEdit.setText("is:recent")
|
self.form.searchEdit.setText("is:recent")
|
||||||
|
@ -956,23 +956,21 @@ where id in %s""" % ids2str(self.selectedCards()))
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def setupHooks(self):
|
def setupHooks(self):
|
||||||
addHook("checkpoint", self.onCheckpoint)
|
addHook("undoState", self.onUndoState)
|
||||||
addHook("reset", self.onReset)
|
addHook("reset", self.onReset)
|
||||||
addHook("editTimer", self.refreshCurrentCard)
|
addHook("editTimer", self.refreshCurrentCard)
|
||||||
addHook("editFocusLost", self.refreshCurrentCard)
|
addHook("editFocusLost", self.refreshCurrentCard)
|
||||||
|
|
||||||
def teardownHooks(self):
|
def teardownHooks(self):
|
||||||
removeHook("reset", self.onReset)
|
removeHook("reset", self.onReset)
|
||||||
removeHook("checkpoint", self.onCheckpoint)
|
|
||||||
removeHook("editTimer", self.refreshCurrentCard)
|
removeHook("editTimer", self.refreshCurrentCard)
|
||||||
removeHook("editFocusLost", self.refreshCurrentCard)
|
removeHook("editFocusLost", self.refreshCurrentCard)
|
||||||
|
removeHook("undoState", self.onUndoState)
|
||||||
|
|
||||||
def onCheckpoint(self):
|
def onUndoState(self, on):
|
||||||
if self.mw.form.actionUndo.isEnabled():
|
self.form.actionUndo.setEnabled(on)
|
||||||
self.form.actionUndo.setEnabled(True)
|
if on:
|
||||||
self.form.actionUndo.setText(self.mw.form.actionUndo.text())
|
self.form.actionUndo.setText(self.mw.form.actionUndo.text())
|
||||||
else:
|
|
||||||
self.form.actionUndo.setEnabled(False)
|
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
11
aqt/main.py
11
aqt/main.py
|
@ -145,6 +145,7 @@ class AnkiQt(QMainWindow):
|
||||||
|
|
||||||
def requireReset(self, modal=False):
|
def requireReset(self, modal=False):
|
||||||
"Signal queue needs to be rebuilt when edits are finished or by user."
|
"Signal queue needs to be rebuilt when edits are finished or by user."
|
||||||
|
self.autosave()
|
||||||
self.resetModal = modal
|
self.resetModal = modal
|
||||||
if self.state in ("overview", "review"):
|
if self.state in ("overview", "review"):
|
||||||
self.moveToState("resetRequired")
|
self.moveToState("resetRequired")
|
||||||
|
@ -153,6 +154,7 @@ class AnkiQt(QMainWindow):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def maybeReset(self):
|
def maybeReset(self):
|
||||||
|
self.autosave()
|
||||||
if self.state == "resetRequired":
|
if self.state == "resetRequired":
|
||||||
self.state = self.returnState
|
self.state = self.returnState
|
||||||
self.reset()
|
self.reset()
|
||||||
|
@ -654,7 +656,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
self.deck.sched.buryFact(self.reviewer.card.fid)
|
self.deck.sched.buryFact(self.reviewer.card.fid)
|
||||||
self.reviewer.nextCard()
|
self.reviewer.nextCard()
|
||||||
|
|
||||||
# Undo
|
# Undo & autosave
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def onUndo(self):
|
def onUndo(self):
|
||||||
|
@ -667,13 +669,18 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
self.form.actionUndo.setText(_("Undo %s") %
|
self.form.actionUndo.setText(_("Undo %s") %
|
||||||
self.deck.undoName())
|
self.deck.undoName())
|
||||||
self.form.actionUndo.setEnabled(True)
|
self.form.actionUndo.setEnabled(True)
|
||||||
|
runHook("undoState", True)
|
||||||
else:
|
else:
|
||||||
self.form.actionUndo.setEnabled(False)
|
self.form.actionUndo.setEnabled(False)
|
||||||
|
runHook("undoState", False)
|
||||||
|
|
||||||
def checkpoint(self, name):
|
def checkpoint(self, name):
|
||||||
self.deck.save(name)
|
self.deck.save(name)
|
||||||
self.maybeEnableUndo()
|
self.maybeEnableUndo()
|
||||||
runHook("checkpoint")
|
|
||||||
|
def autosave(self):
|
||||||
|
self.deck.autosave()
|
||||||
|
self.maybeEnableUndo()
|
||||||
|
|
||||||
# Other menu operations
|
# Other menu operations
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
|
@ -250,7 +250,7 @@ $(".ansbut").focus();
|
||||||
"Reschedule card and show next."
|
"Reschedule card and show next."
|
||||||
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"
|
self.mw.autosave()
|
||||||
self.nextCard()
|
self.nextCard()
|
||||||
|
|
||||||
# Handlers
|
# Handlers
|
||||||
|
|
Loading…
Reference in a new issue