diff --git a/ankiqt/ui/addcards.py b/ankiqt/ui/addcards.py
index f05324252..9816d9df1 100644
--- a/ankiqt/ui/addcards.py
+++ b/ankiqt/ui/addcards.py
@@ -135,7 +135,7 @@ class AddCards(QDialog):
def addFact(self, fact):
try:
- fact = self.parent.deck.addFact(fact)
+ fact = self.parent.deck.addFact(fact, False)
except FactInvalidError:
ui.utils.showInfo(_(
"Some fields are missing or not unique."),
@@ -148,6 +148,7 @@ question or answer on all cards."""), parent=self)
return
self.reportAddedFact(fact)
+ # we don't reset() until the add cards dialog is closed
return fact
def initializeNewFact(self, old_fact):
@@ -216,7 +217,7 @@ question or answer on all cards."""), parent=self)
ui.dialogs.close("AddCards")
self.parent.deck.s.flush()
self.parent.deck.rebuildCSS()
- self.parent.moveToState("auto")
+ self.parent.reset()
saveGeom(self, "add")
saveSplitter(self.dialog.splitter, "add")
return True
diff --git a/ankiqt/ui/cardlist.py b/ankiqt/ui/cardlist.py
index b2b875cec..d001f774f 100644
--- a/ankiqt/ui/cardlist.py
+++ b/ankiqt/ui/cardlist.py
@@ -726,10 +726,6 @@ class EditDeck(QMainWindow):
saveHeader(self.dialog.tableView.horizontalHeader(), "editor")
self.hide()
ui.dialogs.close("CardList")
- if self.parent.currentCard:
- self.parent.moveToState("showQuestion")
- else:
- self.parent.moveToState("auto")
self.teardownHooks()
return True
@@ -797,12 +793,12 @@ where id in (%s)""" % ",".join([
",".join([str(s) for s in self.selectedFacts()]))
def updateAfterCardChange(self):
- "Refresh info like stats on current card"
+ "Refresh info like stats on current card, and rebuild mw queue."
self.currentRow = self.dialog.tableView.currentIndex()
self.rowChanged(self.currentRow, None)
self.model.refresh()
self.drawTags()
- self.parent.moveToState("auto")
+ self.parent.reset()
# Menu options
######################################################################
@@ -872,9 +868,11 @@ where id in (%s)""" % ",".join([
self.parent.setProgressParent(self)
self.deck.setUndoStart(n)
self.deck.suspendCards(self.selectedCards())
+ self.parent.reset()
self.deck.setUndoEnd(n)
self.parent.setProgressParent(None)
self.model.refresh()
+ self.updateAfterCardChange()
def _onUnsuspend(self):
n = _("Unsuspend")
@@ -884,6 +882,7 @@ where id in (%s)""" % ",".join([
self.deck.setUndoEnd(n)
self.parent.setProgressParent(None)
self.model.refresh()
+ self.updateAfterCardChange()
def isMarked(self):
return self.currentCard and "Marked" in self.currentCard.fact.tags
diff --git a/ankiqt/ui/deckproperties.py b/ankiqt/ui/deckproperties.py
index 736008f12..ce81d1215 100644
--- a/ankiqt/ui/deckproperties.py
+++ b/ankiqt/ui/deckproperties.py
@@ -137,6 +137,7 @@ class DeckProperties(QDialog):
self.d.deleteModel(model)
self.updateModelsList()
self.dialog.modelsList.setCurrentRow(row)
+ self.parent.reset()
def selectedModel(self):
row = self.dialog.modelsList.currentRow()
diff --git a/ankiqt/ui/facteditor.py b/ankiqt/ui/facteditor.py
index c15f74dd9..85486fb77 100644
--- a/ankiqt/ui/facteditor.py
+++ b/ankiqt/ui/facteditor.py
@@ -495,6 +495,7 @@ class FactEditor(object):
self.fact.setModified(textChanged=True)
if not self.fact.isNew():
self.deck.setModified()
+ ankiqt.mw.reset()
self.deck.setUndoEnd(n)
def onFocusLost(self, widget):
@@ -593,6 +594,7 @@ class FactEditor(object):
self.deck.updatePriorities([c.id for c in self.fact.cards])
self.fact.setModified(textChanged=True)
self.deck.flushMod()
+ ankiqt.mw.reset()
if self.onChange:
self.onChange('tag')
diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py
index 15aa411aa..530ab3be6 100755
--- a/ankiqt/ui/main.py
+++ b/ankiqt/ui/main.py
@@ -388,8 +388,7 @@ Please do not file a bug report with Anki.
""")
self.mainWin.actionRepeatAudio.setEnabled(True)
self.editor.saveFieldsNow()
self.mainWin.buttonStack.show()
- self.reset()
- return self.moveToState("getQuestion")
+ return self.reset()
elif state == "studyScreen":
self.currentCard = None
if self.deck.finishScheduler:
@@ -463,8 +462,6 @@ Please do not file a bug report with Anki.
""")
self.deck.s.expunge(self.currentCard)
# answer
self.deck.answerCard(self.currentCard, quality)
- self.lastScheduledTime = anki.utils.fmtTimeSpan(
- self.currentCard.due - time.time())
self.lastQuality = quality
self.lastCard = self.currentCard
self.currentCard = None
@@ -1829,8 +1826,6 @@ learnt today")
undo = _("Suspend")
self.deck.setUndoStart(undo)
self.deck.suspendCards([self.currentCard.id])
- self.deck.setModified()
- self.lastScheduledTime = None
self.reset()
self.deck.setUndoEnd(undo)
diff --git a/ankiqt/ui/preferences.py b/ankiqt/ui/preferences.py
index a1f962af0..6db0a703c 100644
--- a/ankiqt/ui/preferences.py
+++ b/ankiqt/ui/preferences.py
@@ -77,7 +77,7 @@ class Preferences(QDialog):
self.origConfig.update(self.config)
self.origConfig.save()
self.parent.setLang()
- self.parent.moveToState("auto")
+ self.parent.reset()
self.done(0)
def reject(self):
diff --git a/ankiqt/ui/view.py b/ankiqt/ui/view.py
index 4c380f0db..e26de71e9 100644
--- a/ankiqt/ui/view.py
+++ b/ankiqt/ui/view.py
@@ -54,10 +54,7 @@ class View(object):
if self.state == "noDeck" or self.state == "studyScreen":
return
self.buffer = ""
- self.haveTop = (self.main.lastCard and (
- self.main.config['showLastCardContent'] or
- self.main.config['showLastCardInterval'])) or (
- self.needFutureWarning())
+ self.haveTop = self.needFutureWarning()
self.drawRule = (self.main.config['qaDivider'] and
self.main.currentCard and
not self.main.currentCard.cardModel.questionInAnswer)
@@ -214,7 +211,6 @@ class View(object):
"Show previous card, next scheduled time, and stats."
self.buffer += "