summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMichael Vogt <mvo@debian.org>2008-12-15 14:42:01 +0100
committerMichael Vogt <mvo@debian.org>2008-12-15 14:42:01 +0100
commit12cf58d12b969010f3d98b2974d72bbb950b775f (patch)
treedc7f0af010aefa0b76a256f594d6dc4ae3163aaa /doc
parentbe8fa1ee4581faeadfb6d067301ee9e7761dc1c7 (diff)
parent481a90a820564dc12567348c16773e15cc129560 (diff)
downloadpython-apt-12cf58d12b969010f3d98b2974d72bbb950b775f.tar.gz
merge mvo branch, upload to experimental
Diffstat (limited to 'doc')
-rwxr-xr-xdoc/examples/gui-inst.py130
1 files changed, 21 insertions, 109 deletions
diff --git a/doc/examples/gui-inst.py b/doc/examples/gui-inst.py
index c2555134..feefd6ed 100755
--- a/doc/examples/gui-inst.py
+++ b/doc/examples/gui-inst.py
@@ -12,113 +12,25 @@ import fcntl
import pygtk
pygtk.require('2.0')
import gtk
-import vte
-import time
-import posix
-
-from apt.progress import OpProgress, FetchProgress, InstallProgress
-
-class GuiFetchProgress(gtk.Window, FetchProgress):
- def __init__(self):
- gtk.Window.__init__(self)
- self.vbox = gtk.VBox()
- self.vbox.show()
- self.add(self.vbox)
- self.progress = gtk.ProgressBar()
- self.progress.show()
- self.label = gtk.Label()
- self.label.show()
- self.vbox.pack_start(self.progress)
- self.vbox.pack_start(self.label)
- self.resize(300,100)
- def start(self):
- print "start"
- self.progress.set_fraction(0.0)
- self.show()
- def stop(self):
- self.hide()
- def pulse(self):
- FetchProgress.pulse(self)
- self.label.set_text("Speed: %s/s" % apt_pkg.SizeToStr(self.currentCPS))
- #self.progressbar.set_fraction(self.currentBytes/self.totalBytes)
- while gtk.events_pending():
- gtk.main_iteration()
- return True
-
-class TermInstallProgress(InstallProgress, gtk.Window):
- def __init__(self):
- gtk.Window.__init__(self)
- InstallProgress.__init__(self)
- self.show()
- box = gtk.VBox()
- box.show()
- self.add(box)
- self.term = vte.Terminal()
- self.term.show()
- # check for the child
- self.reaper = vte.reaper_get()
- self.reaper.connect("child-exited",self.child_exited)
- self.finished = False
- box.pack_start(self.term)
- self.progressbar = gtk.ProgressBar()
- self.progressbar.show()
- box.pack_start(self.progressbar)
- def child_exited(self,term, pid, status):
- print "child_exited: %s %s %s %s" % (self,term,pid,status)
- self.apt_status = posix.WEXITSTATUS(status)
- self.finished = True
- def startUpdate(self):
- print "start"
- self.show()
- def waitChild(self):
- while not self.finished:
- self.updateInterface()
- while gtk.events_pending():
- gtk.main_iteration()
- time.sleep(0.001)
- sys.stdin.readline()
- return self.apt_status
- def statusChange(self, pkg, percent, status):
- print "statusChange", pkg, percent
- self.progressbar.set_fraction(float(percent)/100.0)
- self.progressbar.set_text(string.strip(status))
- def fork(self):
- env = ["VTE_PTY_KEEP_FD=%s"%self.writefd]
- return self.term.forkpty(envv=env)
-
-cache = apt.Cache()
-print "Available packages: %s " % cache._cache.PackageCount
-
-
-# update the cache
-fprogress = GuiFetchProgress()
-iprogress = TermInstallProgress()
-
-# update the cache
-#cache.Update(fprogress)
-#cache = apt_pkg.GetCache(progress)
-#depcache = apt_pkg.GetDepCache(cache)
-#depcache.ReadPinFile()
-#depcache.Init(progress)
-
-
-# show the interface
-while gtk.events_pending():
- gtk.main_iteration()
-
-
-pkg = cache["3dchess"]
-print "\n%s"%pkg.name
-
-# install or remove, the importend thing is to keep us busy :)
-if pkg.isInstalled:
- pkg.markDelete()
-else:
- pkg.markInstall()
-cache.commit(fprogress, iprogress)
-
-print "Exiting"
-sys.exit(0)
-
-
+import apt.gtk.widgets
+
+if __name__ == "__main__":
+
+ win = gtk.Window()
+ progress = apt.gtk.widgets.GtkAptProgress()
+ win.set_title("GtkAptProgress Demo")
+ win.add(progress)
+ progress.show()
+ win.show()
+
+ cache = apt.cache.Cache(progress.open)
+ if cache["2vcard"].isInstalled:
+ cache["2vcard"].markDelete()
+ else:
+ cache["2vcard"].markInstall()
+ progress.show_terminal(expanded=True)
+ cache.commit(progress.fetch,
+ progress.install)
+
+ gtk.main()