Ticket #450: sequencer.py-check-if-selection-is-None-2008-02-23-jmmcd.patch

File sequencer.py-check-if-selection-is-None-2008-02-23-jmmcd.patch, 2.4 kB (added by user, 8 months ago)
  • sequencer.py

     
    488488         
    489489    def on_popup_create_pattern(self, event=None): 
    490490        seq = player.get_current_sequencer() 
    491         start = (min(self.selection_start[0], self.selection_end[0]),  
    492                     min(self.selection_start[1], self.selection_end[1])) 
    493         end = (max(self.selection_start[0], self.selection_end[0]),  
    494                     max(self.selection_start[1], self.selection_end[1])) 
     491        try: 
     492            start = (min(self.selection_start[0], self.selection_end[0]),  
     493                 min(self.selection_start[1], self.selection_end[1])) 
     494            end = (max(self.selection_start[0], self.selection_end[0]),  
     495                   max(self.selection_start[1], self.selection_end[1])) 
     496        except TypeError: 
     497            # There is no selection. 
     498            return 
    495499        eventlist = [] 
    496500        for track in range(start[0], end[0]+1): 
    497501            t = seq.get_track(track) 
     
    508512         
    509513    def on_popup_merge(self, event=None): 
    510514        seq = player.get_current_sequencer() 
    511         start = (min(self.selection_start[0], self.selection_end[0]),  
    512                     min(self.selection_start[1], self.selection_end[1])) 
    513         end = (max(self.selection_start[0], self.selection_end[0]),  
    514                     max(self.selection_start[1], self.selection_end[1])) 
     515        try: 
     516            start = (min(self.selection_start[0], self.selection_end[0]),  
     517                 min(self.selection_start[1], self.selection_end[1])) 
     518            end = (max(self.selection_start[0], self.selection_end[0]),  
     519                   max(self.selection_start[1], self.selection_end[1])) 
     520        except TypeError: 
     521            # There is no selection. 
     522            return 
    515523        eventlist = [] 
    516524        patternsize = 0 
    517525        for track in range(start[0], end[0]+1): 
     
    647655        menu.append(make_menu_item("Paste", "", self.on_popup_paste)) 
    648656        menu.append(make_menu_item("Delete", "", self.on_popup_delete)) 
    649657        menu.append(gtk.SeparatorMenuItem()) 
    650         menu.append(make_menu_item("Create pattern from selection", "", self.on_popup_create_pattern)) 
    651         menu.append(make_menu_item("Merge selected patterns", "", self.on_popup_merge)) 
     658        m = make_menu_item("Create pattern from selection", "", self.on_popup_create_pattern) 
     659        if self.selection_start == None: 
     660            m.set_sensitive(False) 
     661        menu.append(m) 
     662        m = make_menu_item("Merge selected patterns", "", self.on_popup_merge) 
     663        if self.selection_start == None: 
     664            m.set_sensitive(False) 
     665        menu.append(m) 
    652666        menu.show_all() 
    653667        menu.attach_to_widget(self, None) 
    654668        menu.popup(None, None, None, event.button, event.time)