From 7f0832fd6104fcbb463621be8713651aaaee61ac Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 19 Feb 2009 15:56:55 +0900 Subject: [PATCH] db busy handler & busy cursor --- ankiqt/ui/main.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ankiqt/ui/main.py b/ankiqt/ui/main.py index dc0cbbba3..5cfa2cf38 100644 --- a/ankiqt/ui/main.py +++ b/ankiqt/ui/main.py @@ -2009,7 +2009,11 @@ day = :d""", d=yesterday) addHook("startProgress", self.onStartProgress) addHook("updateProgress", self.onUpdateProgress) addHook("finishProgress", self.onFinishProgress) + addHook("dbProgress", self.onDbProgress) + addHook("dbFinished", self.onDbFinished) self.progressParent = None + self.progressWin = None + self.busyCursor = False self.mainThread = QThread.currentThread() def setProgressParent(self, parent): @@ -2018,6 +2022,7 @@ day = :d""", d=yesterday) def onStartProgress(self, max=100, min=0, title=None): if self.mainThread != QThread.currentThread(): return + self.setBusy() parent = self.progressParent or self.app.activeWindow() or self self.progressWin = ui.utils.ProgressWin(parent, max, min, title) @@ -2033,6 +2038,28 @@ day = :d""", d=yesterday) if self.progressWin: self.progressWin.finish() self.progressWin = None + self.unsetBusy() + + def onDbProgress(self): + if self.mainThread != QThread.currentThread(): + return + self.setBusy() + self.app.processEvents() + + def onDbFinished(self): + if self.mainThread != QThread.currentThread(): + return + if not self.progressWin: + self.unsetBusy() + + def setBusy(self): + if not self.busyCursor: + self.app.setOverrideCursor(QCursor(Qt.WaitCursor)) + self.busyCursor = True + + def unsetBusy(self): + self.app.restoreOverrideCursor() + self.busyCursor = None # Advanced features ##########################################################################