def _create_jump_menu(self): def on_select_label(widget, label_id): self._do_go_to_label(widget, label_id) def hide_unavailable(widget): selected_item.hide() parent_item.hide() id = self.get_selected_torrent_label() if id: if getattr(selected_item, "handler", None): selected_item.disconnect(selected_item.handler) handler = selected_item.connect("activate", on_select_label, id) selected_item.handler = handler selected_item.show() elif self.label_sidebar.page_selected(): id = self.label_sidebar.get_selected_label() if id: parent = get_parent(id) if parent and parent not in RESERVED_IDS: if getattr(parent_item, "handler", None): parent_item.disconnect(parent_item.handler) handler = parent_item.connect("activate", on_select_label, parent) parent_item.handler = handler parent_item.show() items = [] menu_item = gtk.MenuItem(_(ID_ALL)) menu_item.connect("activate", on_select_label, ID_ALL) items.append(menu_item) menu_item = gtk.MenuItem(_(ID_NONE)) menu_item.connect("activate", on_select_label, ID_NONE) items.append(menu_item) selected_item = gtk.MenuItem(_("Selected")) items.append(selected_item) parent_item = gtk.MenuItem(_("Parent")) items.append(parent_item) menu_item = gtk.SeparatorMenuItem() items.append(menu_item) menu = LabelSelectionMenu(_("Jump To"), on_select_label, items) menu.connect("activate", hide_unavailable) return menu
def _create_set_label_menu(self): def on_select_label(widget, label_id): torrents = component.get("TorrentView").get_selected_torrents() client.labelplus.set_torrent_labels(label_id, torrents) def hide_unavailable(widget): parent_item.hide() id = self.get_selected_torrent_label() if id: parent = get_parent(id) if parent and parent not in RESERVED_IDS: if getattr(parent_item, "handler", None): parent_item.disconnect(parent_item.handler) handler = parent_item.connect("activate", on_select_label, parent) parent_item.handler = handler parent_item.show() items = [] menu_item = gtk.MenuItem(_(ID_NONE)) menu_item.connect("activate", on_select_label, ID_NONE) items.append(menu_item) parent_item = gtk.MenuItem(_("Parent")) items.append(parent_item) menu_item = gtk.SeparatorMenuItem() items.append(menu_item) menu = LabelSelectionMenu(_("Set Label"), on_select_label, items) menu.connect("activate", hide_unavailable) return menu