Package up2date_client :: Module progress
[hide private]
[frames] | no frames]

Source Code for Module up2date_client.progress

 1  # 
 2  # Progress bar for Update Agent 
 3  # Copyright (c) 1999--2012 Red Hat, Inc. 
 4  # 
 5  # Author: Preston Brown <pbrown@redhat.com> 
 6   
 7  from up2date_client.gtk_compat import gtk, setCursor 
 8   
9 -class Progress:
10 - def __init__(self):
11 glade_prefix = "/usr/share/rhn/up2date_client/" 12 13 self.xml = gtk.glade.XML(glade_prefix + "progress.glade", "progressWindow", 14 domain="rhn-client-tools") 15 self.progressWindow = self.xml.get_widget("progressWindow") 16 self.progressWindow.connect("delete-event", self.progressWindow.hide) 17 #self.progressWindow.connect("hide", self.progressWindow.hide) 18 setCursor(self.progressWindow, gtk.CURSOR_WATCH) 19 20 self.lastProgress = 0.0
21
22 - def hide(self):
23 self.progressWindow.hide() 24 while gtk.events_pending(): 25 gtk.main_iteration_do(False) 26 27 del self
28
29 - def setLabel(self, text):
30 label = self.xml.get_widget("progressLabel") 31 label.set_text(text) 32 while gtk.events_pending(): 33 gtk.main_iteration_do(False)
34 35 # the xmlrpc callbacks only use the first three 36 # the GET style use all 4, so pass em but dont use them
37 - def setProgress(self, amount, total, speed = 0, secs = 0):
38 if total: 39 i = float(amount) / total 40 else: 41 i = 1 42 43 if i > 1: 44 i = 1 45 if i > self.lastProgress + .01 or i == 1: 46 self.xml.get_widget("progressBar").set_fraction(i) 47 if i == 1: 48 # reset 49 i = 0 50 # gtk.gdk_flush() 51 while gtk.events_pending(): 52 gtk.main_iteration_do(False) 53 self.lastProgress = i
54
55 - def setStatusLabel(self, text):
56 self.xml.get_widget("statusLabel").set_text(text) 57 while gtk.events_pending(): 58 gtk.main_iteration_do(False)
59
60 - def destroy(self):
61 while gtk.events_pending(): 62 gtk.main_iteration_do(False) 63 64 self.progressWindow.destroy()
65
66 - def noop(self, win, event):
67 return True
68