summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2006-03-29 17:24:54 +0200
committerMichael Vogt <michael.vogt@ubuntu.com>2006-03-29 17:24:54 +0200
commit8d92e689e345e27a7dbcafccc485fca28977da4b (patch)
tree413c5e287fedbd94f1e9f4218ec5e126768480a6
parent7b07d48f2b956a46fe190f5db84e1d65a66a3f3c (diff)
downloadpython-apt-8d92e689e345e27a7dbcafccc485fca28977da4b.tar.gz
* simplified that eta calculation again, it turned out that the others are crap
-rw-r--r--DistUpgrade/DistUpgradeViewGtk.py32
1 files changed, 11 insertions, 21 deletions
diff --git a/DistUpgrade/DistUpgradeViewGtk.py b/DistUpgrade/DistUpgradeViewGtk.py
index 669918b5..01c43051 100644
--- a/DistUpgrade/DistUpgradeViewGtk.py
+++ b/DistUpgrade/DistUpgradeViewGtk.py
@@ -115,9 +115,7 @@ class GtkFetchProgressAdapter(apt.progress.FetchProgress):
return True
class GtkInstallProgressAdapter(InstallProgress):
- UPDATE_HZ = 2
- INITIAL_DATA_GATHERING = 10
-
+
def __init__(self,parent):
InstallProgress.__init__(self)
self.label_status = parent.label_status
@@ -199,13 +197,21 @@ class GtkInstallProgressAdapter(InstallProgress):
def statusChange(self, pkg, percent, status):
# start the timer when the first package changes its status
- eta = 0
if self.start_time == 0.0:
#print "setting start time to %s" % self.start_time
self.start_time = time.time()
- self.last_time = self.start_time
self.progress.set_fraction(float(self.percent)/100.0)
self.label_status.set_text(status.strip())
+ # start showing when we gathered some data
+ if percent > 2.0:
+ delta = time.time() - self.start_time
+ time_per_percent = (float(delta)/percent)
+ eta = (100.0 - self.percent) * time_per_percent
+ # only show if we have some sensible data
+ if eta > 1.0 and eta < (60*60*24*2):
+ self.progress.set_text(_("%s remaining")%apt_pkg.TimeToStr(eta))
+ else:
+ self.progress.set_text(" ")
def child_exited(self, term, pid, status):
self.apt_status = os.WEXITSTATUS(status)
@@ -225,22 +231,6 @@ class GtkInstallProgressAdapter(InstallProgress):
if self.start_time == 0.0:
self.progress.pulse()
time.sleep(0.2)
- else:
- # it started!
- if (self.start_time + self.INITIAL_DATA_GATHERING) < time.time() and\
- (time.time() - self.last_time) > self.UPDATE_HZ:
- self.last_time = time.time()
- delta = self.last_time - self.start_time
- time_per_percent = (float(delta)/self.percent)
- if self.longest_time_per_percent < time_per_percent:
- self.longest_time_per_percent = time_per_percent
- eta = (100.0 - self.percent) * self.longest_time_per_percent
- # only show if it is in sensible bounds
- if eta > 1.0 and eta < (60*60*24*2):
- self.progress.set_text(_("%s remaining")%apt_pkg.TimeToStr(eta))
- else:
- self.progress.set_text(" ")
-
while gtk.events_pending():
gtk.main_iteration()
time.sleep(0.02)