mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 15:32:23 -04:00
fix undo log bugs by ensuring deck not touched after close
This commit is contained in:
parent
bb5ff4eb7c
commit
104b4ecbba
2 changed files with 9 additions and 1 deletions
|
@ -11,6 +11,7 @@ import anki.sound
|
|||
from ankiqt import ui
|
||||
import ankiqt
|
||||
from ankiqt.ui.utils import mungeQA, saveGeom, restoreGeom
|
||||
from anki.hooks import addHook
|
||||
|
||||
class FactEditor(object):
|
||||
"""An editor for new/existing facts.
|
||||
|
@ -31,6 +32,7 @@ class FactEditor(object):
|
|||
self.onFactInvalid = None
|
||||
self.lastFocusedEdit = None
|
||||
self.changeTimer = None
|
||||
addHook("deckClosed", self.deckClosedHook)
|
||||
|
||||
def setFact(self, fact, noFocus=False, check=False):
|
||||
"Make FACT the current fact."
|
||||
|
@ -57,6 +59,9 @@ class FactEditor(object):
|
|||
def initMedia(self):
|
||||
os.chdir(self.deck.mediaDir(create=True))
|
||||
|
||||
def deckClosedHook(self):
|
||||
self.fact = None
|
||||
|
||||
def setupFields(self):
|
||||
# init for later
|
||||
self.fields = {}
|
||||
|
@ -319,7 +324,7 @@ class FactEditor(object):
|
|||
|
||||
def onFocusLost(self, widget):
|
||||
if self.fact is None:
|
||||
# editor closed
|
||||
# editor or deck closed
|
||||
return
|
||||
self.saveFields()
|
||||
field = self.widgets[widget]
|
||||
|
@ -339,6 +344,8 @@ class FactEditor(object):
|
|||
self.onChangeTimer)
|
||||
|
||||
def onChangeTimer(self):
|
||||
if not self.fact:
|
||||
return
|
||||
self.saveFields()
|
||||
self.checkValid()
|
||||
if self.onChange:
|
||||
|
|
|
@ -672,6 +672,7 @@ Error was:\n%(f1)s\n...\n%(f2)s""") % {'f1': fmt1, 'f2': fmt2})
|
|||
self.deck.rollback()
|
||||
self.deck.close()
|
||||
self.deck = None
|
||||
runHook("deckClosed")
|
||||
if not hideWelcome:
|
||||
self.moveToState("noDeck")
|
||||
else:
|
||||
|
|
Loading…
Reference in a new issue