Ticket #86: conseil-xdg.diff
| File conseil-xdg.diff, 2.9 kB (added by Moonz, 21 months ago) |
|---|
-
conseil.py
14 14 import gtk 15 15 import gtk.glade 16 16 import gobject 17 import gnome18 17 except: 19 18 sys.exit(1) 20 19 -
retriever.py
17 17 import gtk 18 18 import gtk.glade 19 19 import gobject 20 import gnome20 import desktop 21 21 except: 22 22 sys.exit(1) 23 23 from page import * … … 122 122 # Fixme ! 123 123 if itera != None : 124 124 bugnbr = store.get_value(itera,0) 125 gnome.url_show(self.bts.getBugUrl(bugnbr))125 desktop.url_show(self.bts.getBugUrl(bugnbr)) 126 126 browser = gtk.MenuItem(_("Open in a web browser")) 127 127 browser.connect("activate", browser_callback) 128 128 browser.show() … … 197 197 #right click menu 198 198 elif event.button == 3 : 199 199 def browser_callback(menuitem) : 200 gnome.url_show(self.bts.getBugUrl(nbr))200 desktop.url_show(self.bts.getBugUrl(nbr)) 201 201 browser = gtk.MenuItem(_("Open in a web browser")) 202 202 browser.connect("activate", browser_callback) 203 203 browser.show() … … 220 220 #self.bts.postComment(nbr,title,content) 221 221 222 222 def callback_browser(button,bugnbr) : 223 gnome.url_show(self.bts.getBugUrl(bugnbr))223 desktop.url_show(self.bts.getBugUrl(bugnbr)) 224 224 225 225 if nbr < 0 : 226 226 main_widget = gtk.Label(_("This specific bug doesnt exist")) -
desktop.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import os as _os 5 import sys as _sys 6 7 try: 8 import gnome as _gnome 9 _has_gnome = True 10 except ImportError: 11 _has_gnome = False 12 13 def _spawn_executable(close_stdout = False, close_stderr = False, *args): 14 pid = _os.fork() 15 if pid == 0: 16 # Child process 17 18 # Close stdout and/or stderr 19 null = _os.open('/dev/null', _os.O_WRONLY) 20 if close_stdout: _os.dup2(null, 1) 21 if close_stderr: _os.dup2(null, 2) 22 _os.close(null) 23 24 # Run it 25 try: 26 _os.execlp(args[0], *args) 27 except OSError: 28 _sys.exit(127) 29 else: 30 status = _os.waitpid(pid, 0)[1] 31 return _os.WIFEXITED(status) and (_os.WEXITSTATUS(status) == 0) 32 33 def _test_executable(*args): 34 return _spawn_executable(True, True, *args) 35 36 def _spawn_quiet(*args): 37 return _spawn_executable(True, False, *args) 38 39 _has_xdg = _test_executable('xdg-open', '--help') 40 _has_exo = _test_executable('exo-open', '--help') 41 42 def url_show(url): 43 if _has_xdg: # freedesktop is the best choice :p 44 return _spawn_quiet('xdg-open', url) 45 elif _has_gnome: # shouldn't also check for gnome-open ? 46 return _gnome.url_show(url) 47 elif _has_exo: # for xfce 48 return _spawn_quiet('exo-open', url) 49 # add your favorite desktop here ;) 50 51 return False
