From 7ef7cc41b6f001220e83bcb34454e8804d2b1101 Mon Sep 17 00:00:00 2001
From: Calum Lind <calumlind+deluge@gmail.com>
Date: Wed, 13 Feb 2013 01:29:07 +0000
Subject: GTK: Fix showing exception error to user with no libtorrent installed

---
diff --git a/deluge/ui/gtkui/gtkui.py b/deluge/ui/gtkui/gtkui.py
index ba859d6..894e819 100644
--- a/deluge/ui/gtkui/gtkui.py
+++ b/deluge/ui/gtkui/gtkui.py
@@ -304,17 +304,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()
@@ -329,10 +341,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()
 
--
cgit v0.9.0.2
