Save to disk: Show some feedback while in the collecting data phase

This commit is contained in:
Kovid Goyal 2011-06-22 19:33:12 -06:00
parent 8fb4561ff4
commit c4afc7289c
2 changed files with 11 additions and 1 deletions

View File

@ -451,7 +451,8 @@ class Saver(QObject): # {{{
self.callback_called = False self.callback_called = False
self.rq = Queue() self.rq = Queue()
self.ids = [x for x in map(db.id, [r.row() for r in rows]) if x is not None] self.ids = [x for x in map(db.id, [r.row() for r in rows]) if x is not None]
self.pd.set_max(len(self.ids)) self.pd_max = len(self.ids)
self.pd.set_max(0)
self.pd.value = 0 self.pd.value = 0
self.failures = set([]) self.failures = set([])
@ -510,6 +511,8 @@ class Saver(QObject): # {{{
id, title, ok, tb = self.rq.get_nowait() id, title, ok, tb = self.rq.get_nowait()
except Empty: except Empty:
return return
if self.pd.max != self.pd_max:
self.pd.max = self.pd_max
self.pd.value += 1 self.pd.value += 1
self.ids.remove(id) self.ids.remove(id)
if not isinstance(title, unicode): if not isinstance(title, unicode):

View File

@ -53,6 +53,13 @@ class ProgressDialog(QDialog, Ui_Dialog):
def set_max(self, max): def set_max(self, max):
self.bar.setMaximum(max) self.bar.setMaximum(max)
@dynamic_property
def max(self):
def fget(self): return self.bar.maximum()
def fset(self, val): self.bar.setMaximum(val)
return property(fget=fget, fset=fset)
def _canceled(self, *args): def _canceled(self, *args):
self.canceled = True self.canceled = True
self.button_box.setDisabled(True) self.button_box.setDisabled(True)