Changeset 3752

Show
Ignore:
Timestamp:
08/25/08 19:48:09 (4 months ago)
Author:
mvoncken
Message:

default filter menu, (to be extended by plugins)

Location:
trunk/deluge/ui/gtkui
Files:
1 added
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/deluge/ui/gtkui/filtertreeview.py

    r3750 r3752  
    3535import gtk 
    3636import gtk.glade 
     37import pkg_resources 
    3738 
    3839import deluge.component as component 
     
    6465        self.sidebar.add_tab(self.label_view, "filters", _("Filters")) 
    6566 
     67        #menu 
     68        glade_menu = gtk.glade.XML(pkg_resources.resource_filename("deluge.ui.gtkui", 
     69            "glade/filtertree_menu.glade")) 
     70        self.menu = glade_menu.get_widget("filtertree_menu") 
     71        glade_menu.signal_autoconnect({ 
     72            "select_all": self.on_select_all, 
     73            "pause_all": self.on_pause_all, 
     74            "resume_all": self.on_resume_all 
     75        }) 
     76 
     77        self.default_menu_items = self.menu.get_children() 
    6678 
    6779        # Create the liststore 
     
    208220        path = path[0] 
    209221        cat = self.model_filter[path][0] 
    210          
     222 
    211223        if event.button == 1: 
    212224            # Prevent selecting a category label 
    213225            if cat == "cat": 
    214226                return True 
    215          
     227 
    216228        elif event.button == 3: 
    217             if cat == "cat": 
    218                 # XXX: Show the pop-up menu 
    219                 # Do not select the row 
    220                 return True 
    221         """ 
    222          
    223         # We only care about right-clicks 
    224         if event.button == 3: 
     229            #assign current cat, value to self: 
    225230            x, y = event.get_coords() 
    226231            path = self.label_view.get_path_at_pos(int(x), int(y)) 
     
    228233                return 
    229234            row = self.model_filter.get_iter(path[0]) 
    230             cat    = self.model_filter.get_value(row, 0) 
    231             value = self.model_filter.get_value(row, 1) 
    232             count = self.model_filter.get_value(row, 2) 
    233  
    234             #log.debug("right-click->cat='%s',value='%s'", cat ,value) 
    235  
    236             if cat == "label": 
    237                 self.show_label_menu(value, count, event) 
    238             elif (cat == "cat" and value == "Label"): #add button on root node. 
    239                 self.show_label_menu(None, 0, event) 
    240         """ 
     235            self.cat    = self.model_filter.get_value(row, 0) 
     236            self.value = self.model_filter.get_value(row, 1) 
     237            self.count = self.model_filter.get_value(row, 2) 
     238 
     239            #Show the pop-up menu 
     240            self.set_menu_sensitivity() 
     241            self.menu.popup(None, None, None, event.button, event.time) 
     242            if cat == "cat": 
     243                # Do not select the row 
     244                return True 
     245 
     246    def set_menu_sensitivity(self): 
     247        #select-all/pause/resume 
     248        sensitive = (self.cat != "cat") 
     249        for item in self.default_menu_items: 
     250            item.set_sensitive(sensitive) 
     251 
     252    def select_all(self): 
     253        "for use in popup menu" 
     254        component.get("TorrentView").treeview.get_selection().select_all() 
     255 
     256    def on_select_all(self, event): 
     257        self.select_all() 
     258 
     259    def on_pause_all(self, event): 
     260        self.select_all() 
     261        func = getattr(component.get("MenuBar"), "on_menuitem_%s_activate" % "pause") 
     262        func(event) 
     263 
     264    def on_resume_all(self, event): 
     265        self.select_all() 
     266        func = getattr(component.get("MenuBar"), "on_menuitem_%s_activate" % "resume") 
     267        func(event)