summaryrefslogtreecommitdiffstats
path: root/deluge/plugins/Label/deluge_label/gtkui/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/plugins/Label/deluge_label/gtkui/__init__.py')
-rw-r--r--deluge/plugins/Label/deluge_label/gtkui/__init__.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/deluge/plugins/Label/deluge_label/gtkui/__init__.py b/deluge/plugins/Label/deluge_label/gtkui/__init__.py
new file mode 100644
index 0000000..6170716
--- /dev/null
+++ b/deluge/plugins/Label/deluge_label/gtkui/__init__.py
@@ -0,0 +1,74 @@
+#
+# Copyright (C) 2008 Martijn Voncken <mvoncken@gmail.com>
+#
+# This file is part of Deluge and is licensed under GNU General Public License 3.0, or later, with
+# the additional special exception to link portions of this program with the OpenSSL library.
+# See LICENSE for more details.
+#
+
+import logging
+
+from deluge import component # for systray
+from deluge.plugins.pluginbase import Gtk3PluginBase
+
+from . import label_config, sidebar_menu, submenu
+
+log = logging.getLogger(__name__)
+
+NO_LABEL = 'No Label'
+
+
+def cell_data_label(column, cell, model, row, data):
+ cell.set_property('text', str(model.get_value(row, data)))
+
+
+class GtkUI(Gtk3PluginBase):
+ def start(self):
+ if self.label_menu:
+ self.label_menu.on_show()
+
+ def enable(self):
+ self.plugin = component.get('PluginManager')
+ self.torrentmenu = component.get('MenuBar').torrentmenu
+ self.label_menu = None
+ self.labelcfg = None
+ self.sidebar_menu = None
+ self.load_interface()
+
+ def disable(self):
+ if self.label_menu in self.torrentmenu.get_children():
+ self.torrentmenu.remove(self.label_menu)
+
+ self.labelcfg.unload()
+ self.sidebar_menu.unload()
+ del self.sidebar_menu
+
+ component.get('TorrentView').remove_column(_('Label'))
+
+ def load_interface(self):
+ # sidebar
+ # disabled
+ if not self.sidebar_menu:
+ self.sidebar_menu = sidebar_menu.LabelSidebarMenu()
+ # self.sidebar.load()
+
+ # menu:
+ log.debug('add items to torrentview-popup menu.')
+ self.label_menu = submenu.LabelMenu()
+ self.torrentmenu.append(self.label_menu)
+ self.label_menu.show_all()
+
+ # columns:
+ self.load_columns()
+
+ # config:
+ if not self.labelcfg:
+ self.labelcfg = label_config.LabelConfig(self.plugin)
+ self.labelcfg.load()
+
+ log.debug('Finished loading Label plugin')
+
+ def load_columns(self):
+ log.debug('add columns')
+
+ component.get('TorrentView').add_text_column(_('Label'), status_field=['label'])