Ignore:
Timestamp:
11/22/12 18:15:03 (17 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Changed the base class of UserInteraction to QObject, added notifier signals.

File:
1 edited

Legend:

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

    r11194 r11195  
    708708        if self.__newTextAnnotationAction.isChecked(): 
    709709            self.__newTextAnnotationAction.setChecked(not checked) 
     710 
     711        action = self.__newArrowAnnotationAction 
     712 
    710713        if not checked: 
    711714            handler = self.__scene.user_interaction_handler 
    712715            if isinstance(handler, interactions.NewArrowAnnotation): 
    713716                # Cancel the interaction and restore the state 
    714                 handler.cancel() 
     717                handler.ended.disconnect(action.toggle) 
     718                handler.cancel(interactions.UserInteraction.UserCancelReason) 
    715719                log.info("Canceled new arrow annotation") 
    716720 
    717721        else: 
    718722            handler = interactions.NewArrowAnnotation(self) 
    719             # TODO: when does the interaction complete. 
     723            handler.ended.connect(action.toggle) 
     724 
    720725            self.__scene.set_user_interaction_handler(handler) 
    721726 
     
    723728        if self.__newArrowAnnotationAction.isChecked(): 
    724729            self.__newArrowAnnotationAction.setChecked(not checked) 
     730 
     731        action = self.__newTextAnnotationAction 
    725732 
    726733        if not checked: 
     
    728735            if isinstance(handler, interactions.NewTextAnnotation): 
    729736                # cancel the interaction and restore the state 
    730                 handler.cancel() 
     737                handler.ended.disconnect(action.toggle) 
     738                handler.cancel(interactions.UserInteraction.UserCancelReason) 
    731739                log.info("Canceled new text annotation") 
    732740 
    733741        else: 
    734742            handler = interactions.NewTextAnnotation(self) 
     743            handler.ended.connect(action.toggle) 
     744 
    735745            self.__scene.set_user_interaction_handler(handler) 
    736746 
     
    799809        handler = self.__scene.user_interaction_handler 
    800810        if isinstance(handler, (interactions.ResizeArrowAnnotation, 
    801                                 interactions.ResizeTextAnnotation)): 
     811                                interactions.ResizeTextAnnotation)) and \ 
     812                not handler.isFinished() and not handler.isCanceled(): 
    802813            handler.commit() 
    803814            handler.end() 
Note: See TracChangeset for help on using the changeset viewer.