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 += "
" self.drawFutureWarning() - self.drawLastCard() self.buffer += "
" def needFutureWarning(self): @@ -236,33 +232,6 @@ class View(object): self.main.currentCard.due - time.time(), after=True) + "") - def drawLastCard(self): - "Show the last card if not the current one, and next time." - if self.main.lastCard: - if self.main.config['showLastCardContent']: - if (self.state == "deckFinished" or - self.main.currentCard.id != self.main.lastCard.id): - q = self.main.lastCard.question.replace("
", " ") - q = stripHTML(q) - if len(q) > 50: - q = q[:50] + "..." - a = self.main.lastCard.answer.replace("
", " ") - a = stripHTML(a) - if len(a) > 50: - a = a[:50] + "..." - s = "%s
%s" % (q, a) - s = stripLatex(s) - self.write('%s
' % s) - if self.main.config['showLastCardInterval']: - if self.main.lastQuality > 1: - msg = _("Well done! This card will appear again in " - "%(next)s.") % \ - {"next":self.main.lastScheduledTime} - else: - msg = _("This card will appear again later.") - self.write(msg) - self.write("
") - # Welcome/empty/finished deck messages ##########################################################################