From ad80548f19eeef8f68df3bc1ebb782bce500568a Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sun, 15 Feb 2009 00:08:45 +0900 Subject: [PATCH] disable some commands when not in main window, allow command+w from any window --- ankiqt/ui/main.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py index e643b9d14..5113797a1 100644 --- a/ankiqt/ui/main.py +++ b/ankiqt/ui/main.py @@ -703,10 +703,13 @@ To upgrade an old deck, download Anki 0.9.8.7.""")) ########################################################################## def onClose(self): - cramming = self.deck is not None and self.deck.name() == "cram" - self.saveAndClose(hideWelcome=cramming) - if cramming: - self.loadRecent(0) + if self.inMainWindow(): + cramming = self.deck is not None and self.deck.name() == "cram" + self.saveAndClose(hideWelcome=cramming) + if cramming: + self.loadRecent(0) + else: + self.app.activeWindow().close() def saveAndClose(self, hideWelcome=False): "(Auto)save and close. Prompt if necessary. True if okay to proceed." @@ -750,7 +753,11 @@ To upgrade an old deck, download Anki 0.9.8.7.""")) self.closeAllDeckWindows() return True + def inMainWindow(self): + return self.app.activeWindow() == self + def onNew(self, initial=False, path=None): + if not self.inMainWindow(): return if not self.saveAndClose(hideWelcome=True): return if initial: path = os.path.join(self.documentDir, "mydeck.anki") @@ -794,6 +801,7 @@ To upgrade an old deck, download Anki 0.9.8.7.""")) self.config['syncPassword'] = unicode(passwd.text()) def onOpenOnline(self): + if not self.inMainWindow(): return self.ensureSyncParams() if not self.saveAndClose(hideWelcome=True): return # we need a disk-backed file for syncing @@ -812,6 +820,7 @@ To upgrade an old deck, download Anki 0.9.8.7.""")) self.moveToState("initial") def onOpen(self, samples=False): + if not self.inMainWindow(): return key = _("Deck files (*.anki)") if samples: defaultDir = self.getSamplesDir() else: defaultDir = self.getDefaultDir() @@ -1491,6 +1500,7 @@ day = :d""", d=yesterday) def syncDeck(self, interactive=True, create=False, onlyMerge=False, reload=True, checkSources=True): "Synchronise a deck with the server." + if not self.inMainWindow() and interactive: return # vet input self.ensureSyncParams() u=self.config['syncUsername']