diff --git a/aqt/main.py b/aqt/main.py index 26872460b..0d20f2c63 100755 --- a/aqt/main.py +++ b/aqt/main.py @@ -92,7 +92,10 @@ class AnkiQt(QMainWindow): def moveToState(self, state, *args): print "-> move from", self.state, "to", state - oldState = self.state + oldState = self.state or "dummy" + cleanup = getattr(self, "_"+oldState+"Cleanup", None) + if cleanup: + cleanup(state) self.state = state getattr(self, "_"+state+"State")(oldState, *args) @@ -117,6 +120,10 @@ class AnkiQt(QMainWindow): def _reviewState(self, oldState): self.reviewer.show() + def _reviewCleanup(self, newState): + if newState != "resetRequired": + self.reviewer.cleanup() + def _editCurrentState(self, oldState): pass diff --git a/aqt/reviewer.py b/aqt/reviewer.py index d82cc003f..d671e4c4f 100644 --- a/aqt/reviewer.py +++ b/aqt/reviewer.py @@ -40,6 +40,10 @@ class Reviewer(object): if not self.card or self._answeredIds[-1] != self.card.id: return self.mw.deck.getCard(self._answeredIds[-1]) + def cleanup(self): + self._hideStatus() + self.mw.disableCardMenuItems() + # Fetching a card ##########################################################################