diff options
| author | Sebastian Heinlein <sebastian.heinlein@web.de> | 2006-03-12 13:26:54 +0100 |
|---|---|---|
| committer | Sebastian Heinlein <sebastian.heinlein@web.de> | 2006-03-12 13:26:54 +0100 |
| commit | c9594feff0700d7c6bfc08dcba408c2d30dadfad (patch) | |
| tree | 897b7d4ae59a35f49301c4164a6a082e3d5b13f6 /UpdateManager | |
| parent | df9feb812dd0c176e89d733121536abbc237123c (diff) | |
| download | python-apt-c9594feff0700d7c6bfc08dcba408c2d30dadfad.tar.gz | |
* only show the help button if a help viewer is installed (currently only
yelp is supported - have not found anyone who could help me on khelpcenter
yet)
* do not run the help viewer as root
* do not depend on the gnome python module anymore
Diffstat (limited to 'UpdateManager')
| -rw-r--r-- | UpdateManager/Common/HelpViewer.py | 33 | ||||
| -rw-r--r-- | UpdateManager/UpdateManager.py | 9 |
2 files changed, 41 insertions, 1 deletions
diff --git a/UpdateManager/Common/HelpViewer.py b/UpdateManager/Common/HelpViewer.py new file mode 100644 index 00000000..c8b099cc --- /dev/null +++ b/UpdateManager/Common/HelpViewer.py @@ -0,0 +1,33 @@ +# helpviewer.py + +import os +import subprocess + +# Hardcoded list of available help viewers +# FIXME: khelpcenter support would be nice +#KNOWN_VIEWERS = ["/usr/bin/yelp", "/usr/bin/khelpcenter"] +KNOWN_VIEWERS = ["/usr/bin/yelp"] + +class HelpViewer: + def __init__(self, docu): + self.command = [] + self.docu = docu + for viewer in KNOWN_VIEWERS: + if os.path.exists(viewer): + self.command = [viewer, "ghelp:%s" % docu] + break + + def check(self): + """check if a viewer is available""" + if self.command == []: + return False + else: + return True + + def run(self): + """open the documentation in the viewer""" + # avoid running the help viewer as root + if os.getuid() == 0 and os.environ.has_key('SUDO_USER'): + self.command = ['sudo', '-u', os.environ['SUDO_USER']] +\ + self.command + subprocess.Popen(self.command) diff --git a/UpdateManager/UpdateManager.py b/UpdateManager/UpdateManager.py index 590391b9..742a711e 100644 --- a/UpdateManager/UpdateManager.py +++ b/UpdateManager/UpdateManager.py @@ -47,6 +47,7 @@ import pwd import time import thread import xml.sax.saxutils +from Common.HelpViewer import HelpViewer from gettext import gettext as _ @@ -283,6 +284,12 @@ class UpdateManager(SimpleGladeApp): opener = urllib2.build_opener(proxy_support) urllib2.install_opener(opener) + # setup the help viewer and disable the help button if there + # is no viewer available + self.help_viewer = HelpViewer("update-manager") + if self.help_viewer.check() == False: + self.button_help.set_sensitive(False) + self.gconfclient = gconf.client_get_default() # restore state self.restore_state() @@ -461,7 +468,7 @@ class UpdateManager(SimpleGladeApp): self.fillstore() def on_button_help_clicked(self, widget): - subprocess.Popen(["/usr/bin/yelp", "ghelp:update-manager"]) + self.help_viewer.run() def on_button_install_clicked(self, widget): #print "on_button_install_clicked" |
