diff --git a/glade/delugegtk.glade b/glade/delugegtk.glade
index 48b8f1036..99db1a8d2 100644
--- a/glade/delugegtk.glade
+++ b/glade/delugegtk.glade
@@ -836,6 +836,22 @@
GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+
+
+
+
+
+ True
+ GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK
+ Plugins
+ gtk-disconnect
+
+
+
+ False
+
+
1
diff --git a/src/dialogs.py b/src/dialogs.py
index bb0aae4ac..d6bce6bce 100644
--- a/src/dialogs.py
+++ b/src/dialogs.py
@@ -40,9 +40,11 @@ import pref
PREFS_FILENAME = "prefs.state"
class PreferencesDlg:
- def __init__(self, preferences, active_port, plugins):
+ def __init__(self, preferences, active_port, plugins, plugin_tab=False):
self.glade = gtk.glade.XML(common.get_glade_file("preferences_dialog.glade"), domain='deluge')
self.dialog = self.glade.get_widget("pref_dialog")
+ if plugin_tab:
+ self.glade.get_widget("notebook").set_current_page(6)
self.dialog.set_position(gtk.WIN_POS_CENTER)
self.dialog.set_icon_from_file(common.get_pixmap("deluge32.png"))
self.glade.signal_autoconnect({
diff --git a/src/interface.py b/src/interface.py
index 0c9368aa3..ff8776cde 100644
--- a/src/interface.py
+++ b/src/interface.py
@@ -153,6 +153,7 @@ class DelugeGTK:
"menu_quit": self.quit,
## Edit Menu
"select_all_torrents": self.select_all_torrents,
+ "plugin_clicked": self.show_plugin_dialog_clicked,
"pref_clicked": self.show_preferences_dialog_clicked,
## View Menu
"toolbar_toggle": self.toolbar_toggle,
@@ -204,6 +205,7 @@ class DelugeGTK:
"quit": self.quit,
"pause_all": self.pause_all_clicked,
"resume_all": self.resume_all_clicked,
+ "plugins": self.show_plugin_dialog_clicked,
"preferences": self.show_preferences_dialog_clicked,
"add_torrent": self.add_torrent_clicked,
"show_hide_window_toggled": self.show_hide_window_toggled
@@ -681,6 +683,19 @@ class DelugeGTK:
else:
self.show_preferences_dialog()
+ def show_plugin_dialog(self, plugin_tab=True):
+ active_port = self.manager.get_state()['port']
+ plugin_dialog = dialogs.PreferencesDlg(self.config, active_port, \
+ self.plugins, plugin_tab=True)
+ plugin_dialog.show(self, self.window)
+
+ def show_plugin_dialog_clicked(self, arg=None):
+ if self.config.get("enable_system_tray") and \
+ self.config.get("lock_tray"):
+ self.unlock_tray("prefwinshow")
+ else:
+ self.show_plugin_dialog(plugin_tab=True)
+
def apply_prefs(self):
# Show tray icon if necessary
self.tray_icon.set_visible(self.config.get("enable_system_tray"))