From b846dc00bdfc52f16251a7fce80e9acab7b653e3 Mon Sep 17 00:00:00 2001 From: Zach Tibbitts Date: Tue, 27 Feb 2007 00:28:18 +0000 Subject: [PATCH] torrent_view popup menu --- glade/delugegtk.glade | 108 ++++++--------------------------------- glade/torrent_menu.glade | 72 ++++++++++++++++++++++++++ src/delugegtk.py | 36 +++++++++++-- 3 files changed, 119 insertions(+), 97 deletions(-) create mode 100644 glade/torrent_menu.glade diff --git a/glade/delugegtk.glade b/glade/delugegtk.glade index 3b9e01627..c63bd7166 100644 --- a/glade/delugegtk.glade +++ b/glade/delugegtk.glade @@ -180,6 +180,22 @@ + + + True + Clear Completed + True + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-clear + 1 + + + + True @@ -235,98 +251,6 @@ - - - True - Torrent - True - - - True - - - True - Clear Completed - True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-clear - 1 - - - - - - - True - Update Tracker - True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-refresh - 1 - - - - - - - True - Queue Up - True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-up - 1 - - - - - - - True - Queue Down - True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-go-down - 1 - - - - - - - True - Queue to Bottom - True - - - - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - gtk-goto-bottom - 1 - - - - - - - - True diff --git a/glade/torrent_menu.glade b/glade/torrent_menu.glade new file mode 100644 index 000000000..7eb2ba93b --- /dev/null +++ b/glade/torrent_menu.glade @@ -0,0 +1,72 @@ + + + + + + True + + + True + Update Tracker + True + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-refresh + 1 + + + + + + + True + Queue Up + True + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-go-up + 1 + + + + + + + True + Queue Down + True + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-go-down + 1 + + + + + + + True + Queue to Bottom + True + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + gtk-goto-bottom + 1 + + + + + + diff --git a/src/delugegtk.py b/src/delugegtk.py index dc1b8acae..387f23e2a 100644 --- a/src/delugegtk.py +++ b/src/delugegtk.py @@ -251,11 +251,20 @@ class DelugeGTK: def build_torrent_table(self): ## Create the torrent listview self.torrent_view = self.wtree.get_widget("torrent_view") + self.torrent_glade = gtk.glade.XML(dcommon.get_glade_file("torrent_menu.glade")) + self.torrent_menu = self.torrent_glade.get_widget("torrent_menu") + self.torrent_glade.signal_autoconnect({"update_tracker": self.update_tracker, + "clear_finished": self.clear_finished, + "queue_up": self.q_torrent_up, + "queue_down": self.q_torrent_down, + "queue_bottom": self.q_to_bottom, + }) # UID, Q#, Name, Size, Progress, Message, Seeders, Peers, DL, UL, ETA, Share self.torrent_model = gtk.ListStore(int, int, str, str, float, str, str, str, str, str, str, str) self.torrent_view.set_model(self.torrent_model) self.torrent_view.set_rules_hint(True) self.torrent_view.set_reorderable(True) + ## Initializes the columns for the torrent_view self.queue_column = dgtk.add_text_column(self.torrent_view, "#", 1) @@ -272,7 +281,8 @@ class DelugeGTK: self.status_column.set_expand(True) self.torrent_view.get_selection().set_select_function(self.torrent_clicked, full=True) - + self.torrent_view.connect("button-press-event", self.torrent_view_clicked) + def torrent_clicked(self, selection, model, path, is_selected): if is_selected: # Torrent is already selected, we don't need to do anything @@ -298,7 +308,26 @@ class DelugeGTK: i=i+1 return True - + + def torrent_view_clicked(self, widget, event): + print widget + print event + if event.button == 3: + x = int(event.x) + y = int(event.y) + data = self.torrent_view.get_path_at_pos(x, y) + if data is None: + return True + path, col, cellx, celly = data + self.torrent_view.grab_focus() + self.torrent_view.set_cursor(path, col, 0) + unique_id = self.get_selected_torrent() + + self.torrent_menu.popup(None, None, None, event.button, event.time) + + return True + else: + return False def build_summary_tab(self): #Torrent Summary tab @@ -566,9 +595,6 @@ class DelugeGTK: state = self.manager.get_torrent_state(self.get_selected_torrent()) except deluge.InvalidUniqueIDError: return True - print "\n\n\n\n" - for key in state.keys(): - print key, state[key] self.wtree.get_widget("progressbar").set_text('%s %s'%(str(state["name"]), dcommon.fpcnt(state["progress"]))) self.text_summary_total_size.set_text(dcommon.fsize(state["total_size"])) self.text_summary_pieces.set_text(str(state["pieces"]))