From 225f74f0b8d9a141bb93a26554aa931e6b50ba20 Mon Sep 17 00:00:00 2001 From: Yann Leboulanger Date: Tue, 24 May 2011 22:43:42 +0200 Subject: [PATCH] run xdg-open instead of webbrowser when opening files. Fixes #5751 --- src/common/helpers.py | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/common/helpers.py b/src/common/helpers.py index b95a331cb..66ff0c4f3 100644 --- a/src/common/helpers.py +++ b/src/common/helpers.py @@ -673,6 +673,9 @@ def get_contact_dict_for_account(account): def launch_browser_mailer(kind, uri): # kind = 'url' or 'mail' + if kind == 'url' and uri.startswith('file://'): + launch_file_manager(uri) + return if kind in ('mail', 'sth_at_sth') and not uri.startswith('mailto:'): uri = 'mailto:' + uri @@ -698,18 +701,25 @@ def launch_browser_mailer(kind, uri): def launch_file_manager(path_to_open): - uri = 'file://' + path_to_open - if not gajim.config.get('autodetect_browser_mailer'): - command = gajim.config.get('custom_file_manager') - if command == '': # if no app is configured - return + if not path_to_open.startswith('file://'): + uri = 'file://' + path_to_open + if os.name == 'nt': + try: + os.startfile(path_to_open) # if pywin32 is installed we open + except Exception: + pass + else: + if not gajim.config.get('autodetect_browser_mailer'): + command = gajim.config.get('custom_file_manager') + if command == '': # if no app is configured + return + else: + command = 'xdg-open' command = build_command(command, path_to_open) try: exec_command(command) except Exception: pass - else: - webbrowser.open(uri) def play_sound(event): if not gajim.config.get('sounds_on'):