close current deck only if user decides to download a new one

This commit is contained in:
Damien Elmes 2009-06-04 05:51:14 +09:00
parent 1899b3cca6
commit fb0a7da397
2 changed files with 7 additions and 10 deletions

View file

@ -31,7 +31,6 @@ class GetShared(QDialog):
restoreGeom(self, "getshared")
self.setupTable()
self.onChangeType(type)
self.ok = False
if type == 0:
self.setWindowTitle(_("Download Shared Deck"))
else:
@ -163,6 +162,8 @@ class GetShared(QDialog):
self.form.table.setSelectionBehavior(QAbstractItemView.SelectRows)
def accept(self):
if not self.parent.saveAndClose(hideWelcome=True, parent=self):
return QDialog.accept(self)
h = QHttp(self)
h.connect(h, SIGNAL("requestFinished(int,bool)"), self.onReqFin2)
h.connect(h, SIGNAL("proxyAuthenticationRequired(QNetworkProxy,"
@ -216,7 +217,6 @@ class GetShared(QDialog):
open(os.path.join(dd, tit + ".media",
os.path.basename(l)),"wb").write(z.read(l))
self.parent.loadDeck(dpath)
self.ok = True
else:
pd = self.parent.pluginsFolder()
if z:
@ -232,7 +232,6 @@ class GetShared(QDialog):
write(z.read(l.filename))
else:
open(os.path.join(pd, tit + ext), "wb").write(data)
self.ok = True
showInfo(_("Plugin downloaded. Please restart Anki."),
parent=self)
return

View file

@ -745,8 +745,10 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
else:
self.app.activeWindow().close()
def saveAndClose(self, hideWelcome=False):
def saveAndClose(self, hideWelcome=False, parent=None):
"(Auto)save and close. Prompt if necessary. True if okay to proceed."
if not parent:
parent = self
self.hideWelcome = hideWelcome
self.closeAllDeckWindows()
if self.deck is not None:
@ -758,7 +760,7 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
not self.config['syncOnClose'])):
# backed in memory or autosave/sync off, must confirm
while 1:
res = ui.unsaved.ask(self)
res = ui.unsaved.ask(parent)
if res == ui.unsaved.save:
if self.save(required=True):
break
@ -856,11 +858,7 @@ To upgrade an old deck, download Anki 0.9.8.7."""))
def onGetSharedDeck(self):
if not self.inMainWindow(): return
if not self.saveAndClose(hideWelcome=True): return
s = ui.getshared.GetShared(self, 0)
if not s.ok:
self.deck = None
self.moveToState("initial")
ui.getshared.GetShared(self, 0)
def onGetSharedPlugin(self):
if not self.inMainWindow(): return