diff options
author | Cole Robinson <crobinso@redhat.com> | 2013-06-14 10:44:24 -0400 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2013-06-14 10:45:20 -0400 |
commit | 8e0a181cc67def883d77e1b13caebcf4f7278722 (patch) | |
tree | 549d67ae0252d33e7d7ef92a5c2e95140198ad8b | |
parent | f2c0a77e3eac44b281b94407006d740a475b9a12 (diff) | |
download | virt-manager-8e0a181cc67def883d77e1b13caebcf4f7278722.tar.gz |
asyncjob: Explicitly pass callbacks to vmmCreateMeter
-rw-r--r-- | virtManager/asyncjob.py | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/virtManager/asyncjob.py b/virtManager/asyncjob.py index 4d87302c..ac649825 100644 --- a/virtManager/asyncjob.py +++ b/virtManager/asyncjob.py @@ -34,14 +34,16 @@ import urlgrabber from virtManager.baseclass import vmmGObjectUI -class vmmCreateMeter(urlgrabber.progress.BaseMeter): - def __init__(self, asyncjob): - # progress meter has to run asynchronously, so pass in the - # async job to call back to with progress info +class vmmMeter(urlgrabber.progress.BaseMeter): + def __init__(self, cb_pulse, cb_fraction, cb_done): urlgrabber.progress.BaseMeter.__init__(self) - self.asyncjob = asyncjob self.started = False + self._vmm_pulse = cb_pulse + self._vmm_fraction = cb_fraction + self._vmm_done = cb_done + + def _do_start(self, now=None): if self.text is not None: text = self.text @@ -49,10 +51,10 @@ class vmmCreateMeter(urlgrabber.progress.BaseMeter): text = self.basename if self.size is None: out = " %5sB" % (0) - self.asyncjob.pulse_pbar(out, text) + self._vmm_pulse(out, text) else: out = "%3i%% %5sB" % (0, 0) - self.asyncjob.set_pbar_fraction(0, out, text) + self._vmm_fraction(0, out, text) self.started = True def _do_update(self, amount_read, now=None): @@ -63,11 +65,11 @@ class vmmCreateMeter(urlgrabber.progress.BaseMeter): fread = urlgrabber.progress.format_number(amount_read) if self.size is None: out = " %5sB" % (fread) - self.asyncjob.pulse_pbar(out, text) + self._vmm_pulse(out, text) else: frac = self.re.fraction_read() out = "%3i%% %5sB" % (frac * 100, fread) - self.asyncjob.set_pbar_fraction(frac, out, text) + self._vmm_fraction(frac, out, text) def _do_end(self, amount_read, now=None): if self.text is not None: @@ -77,10 +79,10 @@ class vmmCreateMeter(urlgrabber.progress.BaseMeter): fread = urlgrabber.progress.format_number(amount_read) if self.size is None: out = " %5sB" % (fread) - self.asyncjob.pulse_pbar(out, text) + self._vmm_pulse(out, text) else: out = "%3i%% %5sB" % (100, fread) - self.asyncjob.set_pbar_done(out, text) + self._vmm_done(out, text) self.started = False @@ -222,7 +224,9 @@ class vmmAsyncJob(vmmGObjectUI): def get_meter(self): if not self._meter: - self._meter = vmmCreateMeter(self) + self._meter = vmmMeter(self._pbar_pulse, + self._pbar_fraction, + self._pbar_done) return self._meter def can_cancel(self): @@ -331,13 +335,13 @@ class vmmAsyncJob(vmmGObjectUI): return True @idle_wrapper - def pulse_pbar(self, progress="", stage=None): + def _pbar_pulse(self, progress="", stage=None): self.is_pulsing = True self.pbar.set_text(progress) self.set_stage_text(stage or _("Processing...")) @idle_wrapper - def set_pbar_fraction(self, frac, progress, stage=None): + def _pbar_fraction(self, frac, progress, stage=None): self.is_pulsing = False self.set_stage_text(stage or _("Processing...")) self.pbar.set_text(progress) @@ -349,7 +353,7 @@ class vmmAsyncJob(vmmGObjectUI): self.pbar.set_fraction(frac) @idle_wrapper - def set_pbar_done(self, progress, stage=None): + def _pbar_done(self, progress, stage=None): self.is_pulsing = False self.set_stage_text(stage or _("Completed")) self.pbar.set_text(progress) |