catch errors in sync finished

This commit is contained in:
Damien Elmes 2010-12-02 09:52:44 +09:00
parent bddbb14340
commit d826aa6a6a

View file

@ -2251,33 +2251,39 @@ Are you sure?""" % deckName),
def onSyncFinished(self): def onSyncFinished(self):
"Reopen after sync finished." "Reopen after sync finished."
self.mainWin.buttonStack.show() self.mainWin.buttonStack.show()
if self.hideWelcome: try:
# no deck load & no deck browser, as we're about to quit or do try:
# something manually if self.hideWelcome:
pass # no deck load & no deck browser, as we're about to quit or do
else: # something manually
if self.loadAfterSync == -1: pass
# after sync all, so refresh browser list else:
self.browserLastRefreshed = 0 if self.loadAfterSync == -1:
# after sync all, so refresh browser list
self.browserLastRefreshed = 0
self.moveToState("noDeck")
elif self.loadAfterSync and self.deckPath:
if self.loadAfterSync == 2:
name = re.sub("[<>]", "", self.syncName)
p = os.path.join(self.documentDir, name + ".anki")
shutil.copy2(self.deckPath, p)
self.deckPath = p
# since we've moved the deck, we have to set sync path
# ourselves
c = sqlite.connect(p)
c.execute("update decks set syncName = ?",
[checksum(p.encode("utf-8"))])
c.commit()
c.close()
self.loadDeck(self.deckPath, sync=False)
else:
self.moveToState("noDeck")
except:
self.moveToState("noDeck") self.moveToState("noDeck")
elif self.loadAfterSync and self.deckPath: raise
if self.loadAfterSync == 2: finally:
name = re.sub("[<>]", "", self.syncName) self.deckPath = None
p = os.path.join(self.documentDir, name + ".anki") self.syncFinished = True
shutil.copy2(self.deckPath, p)
self.deckPath = p
# since we've moved the deck, we have to set sync path
# ourselves
c = sqlite.connect(p)
c.execute("update decks set syncName = ?",
[checksum(p.encode("utf-8"))])
c.commit()
c.close()
self.loadDeck(self.deckPath, sync=False)
else:
self.moveToState("noDeck")
self.deckPath = None
self.syncFinished = True
def selectSyncDeck(self, decks): def selectSyncDeck(self, decks):
name = ui.sync.DeckChooser(self, decks).getName() name = ui.sync.DeckChooser(self, decks).getName()