mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 00:36:38 -04:00
always refresh fact on row change; fix add/del cards
This commit is contained in:
parent
2db6bf51c2
commit
fe17266b8d
2 changed files with 34 additions and 27 deletions
|
@ -414,6 +414,7 @@ class Browser(QMainWindow):
|
||||||
self.setTabOrder(self.form.searchEdit, self.form.tableView)
|
self.setTabOrder(self.form.searchEdit, self.form.tableView)
|
||||||
|
|
||||||
def onSearch(self, reset=True):
|
def onSearch(self, reset=True):
|
||||||
|
"Careful: if reset is true, the current fact is saved."
|
||||||
txt = unicode(self.form.searchEdit.text()).strip()
|
txt = unicode(self.form.searchEdit.text()).strip()
|
||||||
self.model.search(txt, reset)
|
self.model.search(txt, reset)
|
||||||
if not self.model.cards:
|
if not self.model.cards:
|
||||||
|
@ -707,13 +708,17 @@ where id in %s""" % ids2str(
|
||||||
# but otherwise we can put it off until the user starts studying again
|
# but otherwise we can put it off until the user starts studying again
|
||||||
print "fixme: resetDeck()"
|
print "fixme: resetDeck()"
|
||||||
|
|
||||||
# Card generation
|
# Misc menu options
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def genCards(self):
|
def genCards(self):
|
||||||
GenCards(self)
|
GenCards(self)
|
||||||
|
|
||||||
# Menu options
|
def cram(self):
|
||||||
|
self.close()
|
||||||
|
self.mw.onCram(self.selectedCards())
|
||||||
|
|
||||||
|
# Card deletion
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
def deleteCards(self):
|
def deleteCards(self):
|
||||||
|
@ -728,35 +733,37 @@ where id in %s""" % ids2str(
|
||||||
self.model.endReset()
|
self.model.endReset()
|
||||||
self.resetDeck()
|
self.resetDeck()
|
||||||
|
|
||||||
def addTags(self, tags=None, label=None):
|
# Tags
|
||||||
# focus lost hook may not have chance to fire
|
######################################################################
|
||||||
self.editor.saveNow()
|
|
||||||
|
def addTags(self, tags=None, label=None, prompt=None, func=None):
|
||||||
|
if prompt is None:
|
||||||
|
prompt = _("Enter tags to add:")
|
||||||
if tags is None:
|
if tags is None:
|
||||||
(tags, r) = ui.utils.getTag(self, self.deck, _("Enter tags to add:"))
|
(tags, r) = getTag(self, self.deck, prompt)
|
||||||
else:
|
else:
|
||||||
r = True
|
r = True
|
||||||
|
if not r:
|
||||||
|
return
|
||||||
if label is None:
|
if label is None:
|
||||||
label = _("Add Tags")
|
label = _("Add Tags")
|
||||||
if r:
|
if func is None:
|
||||||
self.deck.setUndoStart(label)
|
func = self.deck.addTags
|
||||||
self.deck.addTags(self.selectedFacts(), tags)
|
self.model.beginReset()
|
||||||
self.deck.setUndoEnd(label)
|
self.mw.checkpoint(label)
|
||||||
self.onSearch()
|
func(self.selectedFacts(), tags)
|
||||||
|
self.onSearch(reset=False)
|
||||||
|
self.resetDeck()
|
||||||
|
self.model.endReset()
|
||||||
|
|
||||||
def deleteTags(self, tags=None, label=None):
|
def deleteTags(self, tags=None, label=None):
|
||||||
# focus lost hook may not have chance to fire
|
|
||||||
self.editor.saveNow()
|
|
||||||
if tags is None:
|
|
||||||
(tags, r) = ui.utils.getTag(self, self.deck, _("Enter tags to delete:"))
|
|
||||||
else:
|
|
||||||
r = True
|
|
||||||
if label is None:
|
if label is None:
|
||||||
label = _("Delete Tags")
|
label = _("Delete Tags")
|
||||||
if r:
|
self.addTags(tags, label, _("Enter tags to delete:"),
|
||||||
self.deck.setUndoStart(label)
|
func=self.deck.delTags)
|
||||||
self.deck.deleteTags(self.selectedFacts(), tags)
|
|
||||||
self.deck.setUndoEnd(label)
|
# Suspending and marking
|
||||||
self.onSearch()
|
######################################################################
|
||||||
|
|
||||||
def updateToggles(self):
|
def updateToggles(self):
|
||||||
self.form.actionToggleSuspend.setChecked(self.isSuspended())
|
self.form.actionToggleSuspend.setChecked(self.isSuspended())
|
||||||
|
@ -806,6 +813,9 @@ where id in %s""" % ids2str(
|
||||||
def _onUnmark(self):
|
def _onUnmark(self):
|
||||||
self.deleteTags(tags="Marked", label=_("Toggle Mark"))
|
self.deleteTags(tags="Marked", label=_("Toggle Mark"))
|
||||||
|
|
||||||
|
# Rescheduling
|
||||||
|
######################################################################
|
||||||
|
|
||||||
def reschedule(self):
|
def reschedule(self):
|
||||||
n = _("Reschedule")
|
n = _("Reschedule")
|
||||||
d = QDialog(self)
|
d = QDialog(self)
|
||||||
|
@ -832,9 +842,8 @@ where id in %s""" % ids2str(
|
||||||
self.deck.setUndoEnd(n)
|
self.deck.setUndoEnd(n)
|
||||||
self.resetDeck()
|
self.resetDeck()
|
||||||
|
|
||||||
def cram(self):
|
# Model changing
|
||||||
self.close()
|
######################################################################
|
||||||
self.mw.onCram(self.selectedCards())
|
|
||||||
|
|
||||||
def onChangeModel(self):
|
def onChangeModel(self):
|
||||||
sf = self.selectedFacts()
|
sf = self.selectedFacts()
|
||||||
|
|
|
@ -352,8 +352,6 @@ class Editor(object):
|
||||||
|
|
||||||
def setFact(self, fact):
|
def setFact(self, fact):
|
||||||
"Make FACT the current fact."
|
"Make FACT the current fact."
|
||||||
if self.fact and fact and self.fact.id == fact.id:
|
|
||||||
return
|
|
||||||
self.fact = fact
|
self.fact = fact
|
||||||
# change timer
|
# change timer
|
||||||
if self.fact:
|
if self.fact:
|
||||||
|
|
Loading…
Reference in a new issue