mirror of
https://github.com/ankitects/anki.git
synced 2025-09-20 15:02:21 -04:00
add a progress handler to upgrade
This commit is contained in:
parent
2070a0ced9
commit
7da7894c89
3 changed files with 20 additions and 5 deletions
|
@ -17,8 +17,6 @@ from anki.errors import *
|
||||||
from anki.db import *
|
from anki.db import *
|
||||||
from anki.hooks import runHook, addHook, removeHook
|
from anki.hooks import runHook, addHook, removeHook
|
||||||
|
|
||||||
# fixme: notice added tags?
|
|
||||||
|
|
||||||
COLOUR_SUSPENDED1 = "#ffffcc"
|
COLOUR_SUSPENDED1 = "#ffffcc"
|
||||||
COLOUR_SUSPENDED2 = "#ffffaa"
|
COLOUR_SUSPENDED2 = "#ffffaa"
|
||||||
COLOUR_INACTIVE1 = "#ffcccc"
|
COLOUR_INACTIVE1 = "#ffcccc"
|
||||||
|
|
19
aqt/main.py
19
aqt/main.py
|
@ -74,6 +74,7 @@ class AnkiQt(QMainWindow):
|
||||||
self.setupSignals()
|
self.setupSignals()
|
||||||
self.setupVersion()
|
self.setupVersion()
|
||||||
self.setupAutoUpdate()
|
self.setupAutoUpdate()
|
||||||
|
self.setupUpgrade()
|
||||||
self.setupCardStats()
|
self.setupCardStats()
|
||||||
self.setupSchema()
|
self.setupSchema()
|
||||||
# screens
|
# screens
|
||||||
|
@ -228,11 +229,23 @@ title="%s">%s</button>''' % (
|
||||||
from aqt.editcurrent import EditCurrent
|
from aqt.editcurrent import EditCurrent
|
||||||
self.editor = EditCurrent(self)
|
self.editor = EditCurrent(self)
|
||||||
|
|
||||||
|
# Upgrading from previous versions
|
||||||
|
##########################################################################
|
||||||
|
|
||||||
|
def setupUpgrade(self):
|
||||||
|
addHook("1.x upgrade", self.onUpgrade)
|
||||||
|
|
||||||
|
def onUpgrade(self, db):
|
||||||
|
self.upgrading = True
|
||||||
|
self.progress.setupDB(db)
|
||||||
|
self.progress.start(label=_("Upgrading..."))
|
||||||
|
|
||||||
# Deck loading
|
# Deck loading
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def loadDeck(self, deckPath, showErrors=True):
|
def loadDeck(self, deckPath, showErrors=True):
|
||||||
"Load a deck and update the user interface."
|
"Load a deck and update the user interface."
|
||||||
|
self.upgrading = False
|
||||||
try:
|
try:
|
||||||
self.deck = Deck(deckPath, queue=False)
|
self.deck = Deck(deckPath, queue=False)
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
|
@ -247,9 +260,13 @@ File is corrupt or not an Anki database. Click help for more info.\n
|
||||||
Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
self.moveToState("deckBrowser")
|
self.moveToState("deckBrowser")
|
||||||
return 0
|
return 0
|
||||||
|
finally:
|
||||||
|
# we may have a progress window open if we were upgrading
|
||||||
|
self.progress.finish()
|
||||||
self.config.addRecentDeck(self.deck.path)
|
self.config.addRecentDeck(self.deck.path)
|
||||||
self.setupMedia(self.deck)
|
self.setupMedia(self.deck)
|
||||||
self.progress.setupDB()
|
if not self.upgrading:
|
||||||
|
self.progress.setupDB(self.deck.db)
|
||||||
self.moveToState("deckLoading")
|
self.moveToState("deckLoading")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,11 @@ class ProgressManager(object):
|
||||||
# SQLite progress handler
|
# SQLite progress handler
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def setupDB(self):
|
def setupDB(self, db):
|
||||||
"Install a handler in the current deck."
|
"Install a handler in the current deck."
|
||||||
self.lastDbProgress = 0
|
self.lastDbProgress = 0
|
||||||
self.inDB = False
|
self.inDB = False
|
||||||
self.mw.deck.db.set_progress_handler(self._dbProgress, 100000)
|
db.set_progress_handler(self._dbProgress, 100000)
|
||||||
|
|
||||||
def _dbProgress(self):
|
def _dbProgress(self):
|
||||||
"Called from SQLite."
|
"Called from SQLite."
|
||||||
|
|
Loading…
Reference in a new issue