add loadDeck hook, fix hideWelcome behaviour

- if hideWelcome is true after a sync, do nothing at all
- make sure to reset hideWelcome on deck load
This commit is contained in:
Damien Elmes 2010-07-27 16:59:04 +09:00
parent 18c8d6766d
commit 7a510cc111

View file

@ -711,6 +711,7 @@ new:
if not os.path.exists(deckPath): if not os.path.exists(deckPath):
self.moveToState("noDeck") self.moveToState("noDeck")
return return
self.hideWelcome = False
try: try:
self.deck = DeckStorage.Deck(deckPath) self.deck = DeckStorage.Deck(deckPath)
except Exception, e: except Exception, e:
@ -754,6 +755,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
self.deck = None self.deck = None
return 0 return 0
self.moveToState("noDeck") self.moveToState("noDeck")
runHook("loadDeck")
return True return True
def maybeLoadLastDeck(self, args): def maybeLoadLastDeck(self, args):
@ -2224,24 +2226,32 @@ 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.loadAfterSync == -1: if self.hideWelcome:
# after sync all, so refresh browser list # no deck load & no deck browser, as we're about to quit or do
self.moveToState("noDeck") # something manually
elif self.loadAfterSync: pass
if self.loadAfterSync == 2: else:
name = re.sub("[<>]", "", self.syncName) if self.loadAfterSync == -1:
p = os.path.join(self.documentDir, name + ".anki")
if os.path.exists(p): print self.hideWelcome
p = os.path.join(self.documentDir, # after sync all, so refresh browser list
name + "%d.anki" % time.time()) self.browserLastRefreshed = 0
shutil.copy2(self.deckPath, p) self.moveToState("noDeck")
self.deckPath = p elif self.loadAfterSync:
self.loadDeck(self.deckPath, sync=False) if self.loadAfterSync == 2:
self.deck.syncName = self.syncName name = re.sub("[<>]", "", self.syncName)
self.deck.s.flush() p = os.path.join(self.documentDir, name + ".anki")
self.deck.s.commit() if os.path.exists(p):
elif not self.hideWelcome: p = os.path.join(self.documentDir,
self.moveToState("noDeck") name + "%d.anki" % time.time())
shutil.copy2(self.deckPath, p)
self.deckPath = p
self.loadDeck(self.deckPath, sync=False)
self.deck.syncName = self.syncName
self.deck.s.flush()
self.deck.s.commit()
else:
self.moveToState("noDeck")
self.deckPath = None self.deckPath = None
self.syncFinished = True self.syncFinished = True