Ignore:
Timestamp:
11/26/13 14:50:48 (5 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Initialize the SchemeNode state messages on widget initialization.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/scheme/widgetsscheme.py

    r11772 r11773  
    184184        self.__widget_for_node[node] = widget 
    185185        self.__node_for_widget[widget] = node 
     186 
     187        self.__initialize_widget_state(node, widget) 
    186188 
    187189        self.widget_for_node_added.emit(node, widget) 
     
    344346            QCoreApplication.sendEvent(self.scheme(), event) 
    345347 
     348    def __initialize_widget_state(self, node, widget): 
     349        """ 
     350        Initialize the tracked info/warning/error message state. 
     351        """ 
     352        for message_type, state in widget.widgetState.items(): 
     353            for message_id, message_value in state.items(): 
     354                message = user_message_from_state( 
     355                    widget, message_type, message_id, message_value) 
     356 
     357                node.set_state_message(message) 
     358 
    346359    def __on_widget_state_changed(self, message_type, message_id, 
    347360                                  message_value): 
     
    361374            pass 
    362375        else: 
    363             message_type = str(message_type) 
    364             if message_type == "Info": 
    365                 contents = widget.widgetStateToHtml(True, False, False) 
    366                 level = UserMessage.Info 
    367             elif message_type == "Warning": 
    368                 contents = widget.widgetStateToHtml(False, True, False) 
    369                 level = UserMessage.Warning 
    370             elif message_type == "Error": 
    371                 contents = widget.widgetStateToHtml(False, False, True) 
    372                 level = UserMessage.Error 
    373             else: 
    374                 raise ValueError("Invalid message_type: %r" % message_type) 
    375  
    376             if not contents: 
    377                 contents = None 
    378  
    379             message = UserMessage(contents, severity=level, 
    380                                   message_id=message_type, 
    381                                   data={"content-type": "text/html"}) 
     376            message = user_message_from_state( 
     377                widget, str(message_type), message_id, message_value) 
     378 
    382379            node.set_state_message(message) 
    383380 
     
    458455            widget.deleteLater() 
    459456            del self.__widget_processing_state[widget] 
     457 
     458 
     459def user_message_from_state(widget, message_type, message_id, message_value): 
     460    message_type = str(message_type) 
     461    if message_type == "Info": 
     462        contents = widget.widgetStateToHtml(True, False, False) 
     463        level = UserMessage.Info 
     464    elif message_type == "Warning": 
     465        contents = widget.widgetStateToHtml(False, True, False) 
     466        level = UserMessage.Warning 
     467    elif message_type == "Error": 
     468        contents = widget.widgetStateToHtml(False, False, True) 
     469        level = UserMessage.Error 
     470    else: 
     471        raise ValueError("Invalid message_type: %r" % message_type) 
     472 
     473    if not contents: 
     474        contents = None 
     475 
     476    message = UserMessage(contents, severity=level, 
     477                          message_id=message_type, 
     478                          data={"content-type": "text/html"}) 
     479    return message 
    460480 
    461481 
Note: See TracChangeset for help on using the changeset viewer.