From 0da88fc74b1ff4edd4414d06dcf96d3f7c1272b2 Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Wed, 13 Feb 2013 01:29:07 +0000 Subject: [PATCH] GTK: Fix showing exception error to user with no libtorrent installed --- deluge/ui/gtkui/gtkui.py | 34 +++++++++++++++++++++------------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py index 685ed45a5..b05585f5c 100644 --- a/deluge/ui/gtkui/gtkui.py +++ b/deluge/ui/gtkui/gtkui.py @@ -288,17 +288,29 @@ class GtkUI(object): # Turning off classic_mode self.config["classic_mode"] = False self.__start_non_classic() - try: - client.start_classic_mode() - except deluge.error.DaemonRunningError: - d = dialogs.YesNoDialog( - _("Turn off Classic Mode?"), - _("It appears that a Deluge daemon process (deluged) is already running.\n\n\ + try: + client.start_classic_mode() + except deluge.error.DaemonRunningError: + d = dialogs.YesNoDialog( + _("Turn off Classic Mode?"), + _("It appears that a Deluge daemon process (deluged) is already running.\n\n\ You will either need to stop the daemon or turn off Classic Mode to continue.")).run() - - self.started_in_classic = False - d.addCallback(on_dialog_response) + self.started_in_classic = False + d.addCallback(on_dialog_response) + except ImportError, e: + if "No module named libtorrent" in e.message: + d = dialogs.YesNoDialog( + _("Enable Thin Client Mode?"), + _("Thin client mode is only available because libtorrent is not installed.\n\n\ +To use Deluge standalone (Classic mode) please install libtorrent.")).run() + self.started_in_classic = False + d.addCallback(on_dialog_response) + else: + raise + else: + component.start() + return except Exception, e: import traceback tb = sys.exc_info() @@ -313,10 +325,6 @@ Please see the details below for more information."), details=traceback.format_e self.started_in_classic = False d.addCallback(on_dialog_response) ed.addCallback(on_ed_response) - else: - component.start() - return - else: self.__start_non_classic()