summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2013-04-13 17:50:39 +0000
committerIgor Pashev <pashev.igor@gmail.com>2013-04-13 17:50:39 +0000
commit02752ffbe65c295499a8beb4ac948646dffb96fd (patch)
tree215f0a410916dd422f3e3d8b9000550cdc6101f4
parente42b617e5e30a8272173e85973f573625c751fe5 (diff)
downloadlive-02752ffbe65c295499a8beb4ac948646dffb96fd.tar.gz
Prevent regress. debootstrap can give lower percentage when downloading (bug?)
-rw-r--r--lib/snack/__init__.py19
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/snack/__init__.py b/lib/snack/__init__.py
index d196f49..31794ee 100644
--- a/lib/snack/__init__.py
+++ b/lib/snack/__init__.py
@@ -54,6 +54,7 @@ class ProgressBar(object):
_form = None
_scale = None
_grid = None
+ _allow_back = False
@property
def text(self):
@@ -75,21 +76,22 @@ class ProgressBar(object):
i = math.ceil(i)
if i > self._top:
i = self._top
- self._progress = int(i)
- self._scale.set(self._progress)
- self._refresh()
-
- def advance(self, increment = 1):
- self.progress = self._progress + increment
-
+ i = int(i)
+ if i > self._progress or self._allow_back:
+ self._progress = int(i)
+ self._scale.set(self._progress)
+ self._refresh()
+ def advance(self, i=1):
+ self.progress = self._progress + i
def _refresh(self):
self._form.draw()
self._screen.refresh()
- def __init__(self, screen, width=40, title='', text=' ', top=100):
+ def __init__(self, screen, width=40, title='', text=' ', top=100, allow_back=False):
+ self._allow_back = allow_back
self._screen = screen
self._top = top
@@ -107,6 +109,7 @@ class ProgressBar(object):
self._form = Form()
self._form.add(self._textbox)
self._form.add(self._scale)
+ self._refresh()
def __del__(self):