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

Set initial shown links in link edit dialog when creating a new link.

File:
1 edited

Legend:

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

    r11276 r11277  
    424424 
    425425                if show_link_dialog: 
     426                    existing = self.scheme.find_links(source_node=source_node, 
     427                                                      sink_node=sink_node) 
     428 
     429                    if existing: 
     430                        # EditLinksDialog will populate the view with 
     431                        # existing links 
     432                        initial_links = None 
     433                    else: 
     434                        initial_links = [(source, sink)] 
     435 
    426436                    links_action = EditNodeLinksAction( 
    427437                                    self.document, source_node, sink_node) 
    428438                    try: 
    429                         links_action.edit_links() 
     439                        links_action.edit_links(initial_links) 
    430440                    except Exception: 
    431441                        log.error("'EditNodeLinksAction' failed", 
     
    668678        self.sink_node = sink_node 
    669679 
    670     def edit_links(self): 
     680    def edit_links(self, initial_links=None): 
     681        """ 
     682        Show and execute the `EditLinksDialog`. 
     683        Optional `initial_links` list can provide the initial 
     684        `(source, sink)` channel tuples to show in the view, otherwise 
     685        the dialog is populated with existing links in the scheme 
     686        (pass an empty list to disable all initial links). 
     687 
     688        """ 
    671689        from ..canvas.editlinksdialog import EditLinksDialog 
    672690 
     
    681699                          for link in links] 
    682700 
     701        if initial_links is None: 
     702            initial_links = list(existing_links) 
     703 
    683704        dlg.setNodes(self.source_node, self.sink_node) 
    684         dlg.setLinks(existing_links) 
     705        dlg.setLinks(initial_links) 
    685706 
    686707        log.info("Executing a Link Editor Dialog.") 
Note: See TracChangeset for help on using the changeset viewer.