Ticket #317: gtkui_torrentview_update_sidebar.patch

File gtkui_torrentview_update_sidebar.patch, 2.9 KB (added by sadrul, 14 years ago)
  • deluge/ui/gtkui/torrentview.py

     
    195195        for torrent_id in state: 
    196196            self.add_row(torrent_id) 
    197197         
    198         self.update_filter()     
    199198        self.update() 
    200199         
    201200    def stop(self): 
     
    209208         
    210209    def set_filter(self, field, condition): 
    211210        """Sets filters for the torrentview..""" 
    212         if self.filter != (None, None): 
    213             self.filter = (None, None) 
    214             self.update_filter() 
    215          
    216211        self.filter = (field, condition) 
    217         self.update_filter() 
    218212        self.update() 
    219213     
    220214    def send_status_request(self, columns=None): 
     
    251245        # Create list of torrent_ids in need of status updates 
    252246        torrent_ids = [] 
    253247        for row in self.liststore: 
    254             # Only add this torrent_id if it's not filtered 
    255             if row[self.columns["filter"].column_indices[0]] == True: 
    256                 torrent_ids.append(row[self.columns["torrent_id"].column_indices[0]]) 
     248            # Add this torrent_id even if it is currently filtered, because 
     249            # the event that triggered this update may have made this torrent 
     250            # unfiltered 
     251            torrent_ids.append(row[self.columns["torrent_id"].column_indices[0]]) 
    257252 
    258253        if torrent_ids == []: 
    259254            return 
     
    265260     
    266261    def update_filter(self): 
    267262        # Update the filter view 
     263        filter_column = self.columns["filter"].column_indices[0] 
     264        field, condition = self.filter 
    268265        for row in self.liststore: 
    269             filter_column = self.columns["filter"].column_indices[0] 
    270266            # Create a function to create a new liststore with only the 
    271267            # desired rows based on the filter. 
    272             field, condition = self.filter 
    273268            if field == None and condition == None: 
    274269                row[filter_column] = True 
    275270                continue 
     
    342337         
    343338        if self.status != {}: 
    344339            self.update_view() 
    345          
     340            # The status of a torrent may have changed. Update the filter 
     341            self.update_filter() 
     342 
    346343    def add_row(self, torrent_id): 
    347344        """Adds a new torrent row to the treeview""" 
    348345        # Insert a new row to the liststore 
     
    353350                    self.columns["torrent_id"].column_indices[0],  
    354351                    torrent_id) 
    355352        self.update() 
    356         self.update_filter() 
    357353         
    358354    def remove_row(self, torrent_id): 
    359355        """Removes a row with torrent_id""" 
     
    362358                self.liststore.remove(row.iter) 
    363359                # Force an update of the torrentview 
    364360                self.update() 
    365                 self.update_filter() 
    366361                break 
    367362             
    368363    def get_selected_torrent(self):