Ignore:
Timestamp:
01/24/13 15:55:27 (15 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Remove existing links into a 'single' connection sink channel.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/document/interactions.py

    r11272 r11276  
    696696            stack.beginMacro("Edit Links") 
    697697 
     698            # First remove links into a single sink channel, 
     699            # but only the ones that do not have self.source_node as 
     700            # a source (they will be removed later from links_to_remove) 
     701            for _, sink_channel in links_to_add: 
     702                if sink_channel.single: 
     703                    existing = self.scheme.find_links( 
     704                        sink_node=self.sink_node, 
     705                        sink_channel=sink_channel 
     706                    ) 
     707 
     708                    existing = [link for link in existing 
     709                                if link.source_node is not self.source_node] 
     710 
     711                    if existing: 
     712                        assert len(existing) == 1 
     713                        self.document.removeLink(existing[0]) 
     714 
    698715            for source_channel, sink_channel in links_to_remove: 
    699716                links = self.scheme.find_links(source_node=self.source_node, 
     
    701718                                               sink_node=self.sink_node, 
    702719                                               sink_channel=sink_channel) 
    703  
     720                assert len(links) == 1 
    704721                self.document.removeLink(links[0]) 
    705722 
     
    709726 
    710727                self.document.addLink(link) 
     728 
    711729            stack.endMacro() 
    712730 
Note: See TracChangeset for help on using the changeset viewer.