# # Copyright (C) 2008 Martijn Voncken # # 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'])