mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 06:52:21 -04:00
Merge pull request #354 from Arthur-Milchior/ignoreStickyFieldOnlyIfTheyDidntChanged
Ignore sticky field only if they didnt changed
This commit is contained in:
commit
734f7acf73
2 changed files with 10 additions and 6 deletions
|
@ -28,6 +28,7 @@ class AddCards(QDialog):
|
||||||
self.setupButtons()
|
self.setupButtons()
|
||||||
self.onReset()
|
self.onReset()
|
||||||
self.history = []
|
self.history = []
|
||||||
|
self.previousNote = None
|
||||||
restoreGeom(self, "add")
|
restoreGeom(self, "add")
|
||||||
addHook('reset', self.onReset)
|
addHook('reset', self.onReset)
|
||||||
addHook('currentModelChanged', self.onModelChange)
|
addHook('currentModelChanged', self.onModelChange)
|
||||||
|
@ -83,6 +84,7 @@ class AddCards(QDialog):
|
||||||
def onModelChange(self):
|
def onModelChange(self):
|
||||||
oldNote = self.editor.note
|
oldNote = self.editor.note
|
||||||
note = self.mw.col.newNote()
|
note = self.mw.col.newNote()
|
||||||
|
self.previousNote = None
|
||||||
if oldNote:
|
if oldNote:
|
||||||
oldFields = list(oldNote.keys())
|
oldFields = list(oldNote.keys())
|
||||||
newFields = list(note.keys())
|
newFields = list(note.keys())
|
||||||
|
@ -176,6 +178,7 @@ question on all cards."""), help="AddItems")
|
||||||
return
|
return
|
||||||
self.addHistory(note)
|
self.addHistory(note)
|
||||||
self.mw.requireReset()
|
self.mw.requireReset()
|
||||||
|
self.previousNote = note
|
||||||
return note
|
return note
|
||||||
|
|
||||||
def addCards(self):
|
def addCards(self):
|
||||||
|
@ -183,9 +186,7 @@ question on all cards."""), help="AddItems")
|
||||||
|
|
||||||
def _addCards(self):
|
def _addCards(self):
|
||||||
self.editor.saveAddModeVars()
|
self.editor.saveAddModeVars()
|
||||||
note = self.editor.note
|
if not self.addNote(self.editor.note):
|
||||||
note = self.addNote(note)
|
|
||||||
if not note:
|
|
||||||
return
|
return
|
||||||
tooltip(_("Added"), period=500)
|
tooltip(_("Added"), period=500)
|
||||||
# stop anything playing
|
# stop anything playing
|
||||||
|
@ -219,7 +220,7 @@ question on all cards."""), help="AddItems")
|
||||||
|
|
||||||
def ifCanClose(self, onOk):
|
def ifCanClose(self, onOk):
|
||||||
def afterSave():
|
def afterSave():
|
||||||
ok = (self.editor.fieldsAreBlank() or
|
ok = (self.editor.fieldsAreBlank(self.previousNote) or
|
||||||
askUser(_("Close and lose current input?"), defaultno=True))
|
askUser(_("Close and lose current input?"), defaultno=True))
|
||||||
if ok:
|
if ok:
|
||||||
onOk()
|
onOk()
|
||||||
|
|
|
@ -371,12 +371,15 @@ class Editor:
|
||||||
contents))
|
contents))
|
||||||
browser.onSearchActivated()
|
browser.onSearchActivated()
|
||||||
|
|
||||||
def fieldsAreBlank(self):
|
def fieldsAreBlank(self, previousNote=None):
|
||||||
if not self.note:
|
if not self.note:
|
||||||
return True
|
return True
|
||||||
m = self.note.model()
|
m = self.note.model()
|
||||||
for c, f in enumerate(self.note.fields):
|
for c, f in enumerate(self.note.fields):
|
||||||
if f and not m['flds'][c]['sticky']:
|
notChangedvalues = {"", "<br>"}
|
||||||
|
if previousNote and m['flds'][c]['sticky']:
|
||||||
|
notChangedvalues.add(previousNote.fields[c])
|
||||||
|
if f not in notChangedvalues:
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue