Changeset 11132:f2def20f3910 in orange


Ignore:
Timestamp:
10/16/12 18:26:44 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Remove temporary link items before creating a new concrete link.

Prevents line flicker after creation.

Location:
Orange/OrangeCanvas/canvas
Files:
2 edited

Legend:

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

    r11113 r11132  
    270270                    continue 
    271271 
     272                # Remove temp items before creating a new link 
     273                self.cleanup() 
     274 
    272275                link = scheme.SchemeLink(source_node, source, sink_node, sink) 
    273276                self.scene.add_link(link) 
     
    291294 
    292295    def end(self): 
    293         # Remove temporary scene objects. 
    294         if self.cursor_anchor_point and self.cursor_anchor_point.scene(): 
    295             self.scene.removeItem(self.cursor_anchor_point) 
    296  
    297         if self.current_target_item: 
    298             self.remove_tmp_anchor() 
    299  
    300         if self.tmp_link_item: 
    301             self.tmp_link_item.removeLink() 
    302  
     296        self.cleanup() 
    303297        UserInteraction.end(self) 
    304298 
     
    306300        if not self.finished: 
    307301            log.info("Canceling new link action, reverting scene state.") 
     302            self.cleanup() 
     303 
     304    def cleanup(self): 
     305        """Cleanup all temp items in the scene that are left. 
     306        """ 
     307        if self.tmp_link_item: 
     308            self.tmp_link_item.setSinkItem(None) 
    308309            self.tmp_link_item.setSourceItem(None) 
    309             self.tmp_link_item.setSinkItem(None) 
    310             self.tmp_link_item.hide() 
    311             self.tmp_link_item.removeLink() 
    312  
    313             self.scene.removeItem(self.tmp_link_item) 
    314             if self.cursor_anchor_point.scene() is self.scene: 
    315                 self.scene.removeItem(self.cursor_anchor_point) 
    316  
    317             if self.current_target_item: 
    318                 self.remove_tmp_anchor() 
     310 
     311            if self.tmp_link_item.scene(): 
     312                self.scene.removeItem(self.tmp_link_item) 
     313 
     314            self.tmp_link_item = None 
     315 
     316        if self.current_target_item: 
     317            self.remove_tmp_anchor() 
     318            self.current_target_item = None 
     319 
     320        if self.cursor_anchor_point and self.cursor_anchor_point.scene(): 
     321            self.scene.removeItem(self.cursor_anchor_point) 
     322            self.cursor_anchor_point = None 
    319323 
    320324 
  • Orange/OrangeCanvas/canvas/items/linkitem.py

    r11121 r11132  
    275275    def shape(self): 
    276276        return self.curveItem.shape() 
     277 
     278    def setEnabled(self, enabled): 
     279        QGraphicsObject.setEnabled(self, enabled) 
Note: See TracChangeset for help on using the changeset viewer.