home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / python2.4 / site-packages / UpdateManager / GtkProgress.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2006-08-31  |  3.7 KB  |  105 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import pygtk
  5. pygtk.require('2.0')
  6. import gtk
  7. import apt
  8. import apt_pkg
  9. from gettext import gettext as _
  10. STEPS_UPDATE_CACHE = [
  11.     33,
  12.     66,
  13.     100]
  14.  
  15. class GtkOpProgress(apt.OpProgress):
  16.     
  17.     def __init__(self, host_window, progressbar, status, parent, steps = STEPS_UPDATE_CACHE):
  18.         self.steps = steps[:]
  19.         self.base = 0
  20.         self.old = 0
  21.         self.next = int(self.steps.pop(0))
  22.         self._parent = parent
  23.         self._window = host_window
  24.         self._status = status
  25.         self._progressbar = progressbar
  26.         self._window.realize()
  27.         host_window.window.set_functions(gtk.gdk.FUNC_MOVE)
  28.         self._window.set_transient_for(parent)
  29.  
  30.     
  31.     def update(self, percent):
  32.         self._window.show()
  33.         self._parent.set_sensitive(False)
  34.         if self.old > percent:
  35.             self.base = self.next
  36.             
  37.             try:
  38.                 self.next = int(self.steps.pop(0))
  39.  
  40.         
  41.         progress = self.base + (percent / 100) * (self.next - self.base)
  42.         self.old = percent
  43.         self._status.set_markup('<i>%s</i>' % self.op)
  44.         self._progressbar.set_fraction(progress / 100.0)
  45.         while gtk.events_pending():
  46.             gtk.main_iteration()
  47.  
  48.     
  49.     def done(self):
  50.         self._parent.set_sensitive(True)
  51.  
  52.     
  53.     def hide(self):
  54.         self._window.hide()
  55.  
  56.  
  57.  
  58. class GtkFetchProgress(apt.progress.FetchProgress):
  59.     
  60.     def __init__(self, parent, summary = '', descr = ''):
  61.         self._continue = True
  62.         self.summary = parent.label_fetch_summary
  63.         self.status = parent.label_fetch_status
  64.         self.progress = parent.progressbar_fetch
  65.         self.window_fetch = parent.window_fetch
  66.         self.window_fetch.set_transient_for(parent.window_main)
  67.         self.window_fetch.realize()
  68.         self.window_fetch.window.set_functions(gtk.gdk.FUNC_MOVE)
  69.         if self.summary != '':
  70.             self.summary.set_markup('<big><b>%s</b></big> \n\n%s' % (summary, descr))
  71.         
  72.  
  73.     
  74.     def start(self):
  75.         self.progress.set_fraction(0)
  76.         self.window_fetch.show()
  77.  
  78.     
  79.     def stop(self):
  80.         self.window_fetch.hide()
  81.  
  82.     
  83.     def on_button_fetch_cancel_clicked(self, widget):
  84.         self._continue = False
  85.  
  86.     
  87.     def pulse(self):
  88.         apt.progress.FetchProgress.pulse(self)
  89.         currentItem = self.currentItems + 1
  90.         if currentItem > self.totalItems:
  91.             currentItem = self.totalItems
  92.         
  93.         if self.currentCPS > 0:
  94.             statusText = _('Downloading file %li of %li with %s/s' % (currentItem, self.totalItems, apt_pkg.SizeToStr(self.currentCPS)))
  95.         else:
  96.             statusText = _('Downloading file %li of %li with unknown speed') % (currentItem, self.totalItems)
  97.             self.progress.set_fraction(self.percent / 100.0)
  98.         self.status.set_markup('<i>%s</i>' % statusText)
  99.         self.progress.set_text('')
  100.         while gtk.events_pending():
  101.             gtk.main_iteration()
  102.         return self._continue
  103.  
  104.  
  105.