summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCole Robinson <crobinso@redhat.com>2013-06-14 10:44:24 -0400
committerCole Robinson <crobinso@redhat.com>2013-06-14 10:45:20 -0400
commit8e0a181cc67def883d77e1b13caebcf4f7278722 (patch)
tree549d67ae0252d33e7d7ef92a5c2e95140198ad8b
parentf2c0a77e3eac44b281b94407006d740a475b9a12 (diff)
downloadvirt-manager-8e0a181cc67def883d77e1b13caebcf4f7278722.tar.gz
asyncjob: Explicitly pass callbacks to vmmCreateMeter
-rw-r--r--virtManager/asyncjob.py34
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)