Changeset 11165:ab077db57cf9 in orange


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

Added widget error/warning/info propagation to the canvas scene.

File:
1 edited

Legend:

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

    r11163 r11165  
    161161            if self.__scheme: 
    162162                self.__scheme.title_changed.disconnect(self.titleChanged) 
     163                self.__scheme.node_added.disconnect(self.__onNodeAdded) 
     164                self.__scheme.node_removed.disconnect(self.__onNodeRemoved) 
    163165 
    164166            self.__scheme = scheme 
     
    166168            if self.__scheme: 
    167169                self.__scheme.title_changed.connect(self.titleChanged) 
     170                self.__scheme.node_added.connect(self.__onNodeAdded) 
     171                self.__scheme.node_removed.connect(self.__onNodeRemoved) 
    168172                self.titleChanged.emit(scheme.title) 
    169173 
     
    549553        pass 
    550554 
     555    def __onNodeAdded(self, node): 
     556        widget = self.__scheme.widget_for_node[node] 
     557        widget.widgetStateChanged.connect(self.__onWidgetStateChanged) 
     558 
     559    def __onNodeRemoved(self, node): 
     560        widget = self.__scheme.widget_for_node[node] 
     561        widget.widgetStateChanged.disconnect(self.__onWidgetStateChanged) 
     562 
     563    def __onWidgetStateChanged(self, *args): 
     564        widget = self.sender() 
     565        self.scheme() 
     566        widget_to_node = dict(reversed(item) for item in \ 
     567                              self.__scheme.widget_for_node.items()) 
     568        node = widget_to_node[widget] 
     569        item = self.__scene.item_for_node(node) 
     570 
     571        info = widget.widgetStateToHtml(True, False, False) 
     572        warning = widget.widgetStateToHtml(False, True, False) 
     573        error = widget.widgetStateToHtml(False, False, True) 
     574 
     575        item.setInfoMessage(info or None) 
     576        item.setWarningMessage(warning or None) 
     577        item.setErrorMessage(error or None) 
     578 
    551579    def __onNodeActivate(self, item): 
    552580        node = self.__scene.node_for_item(item) 
Note: See TracChangeset for help on using the changeset viewer.