Ignore:
Timestamp:
07/02/13 15:23:49 (10 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Refactored widget state messages handling.

Moved the resposibility for handling messages (OWBaseWidget.widgetStateChanged)
to WidgetsScheme.

Added support for messages in base SchemeNode class.

File:
1 edited

Legend:

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

    r11550 r11614  
    589589            if self.__scheme: 
    590590                self.__scheme.title_changed.disconnect(self.titleChanged) 
    591                 self.__scheme.node_added.disconnect(self.__onNodeAdded) 
    592                 self.__scheme.node_removed.disconnect(self.__onNodeRemoved) 
    593591                self.__scheme.removeEventFilter(self) 
    594592 
     
    599597            if self.__scheme: 
    600598                self.__scheme.title_changed.connect(self.titleChanged) 
    601                 self.__scheme.node_added.connect(self.__onNodeAdded) 
    602                 self.__scheme.node_removed.connect(self.__onNodeRemoved) 
    603599                self.titleChanged.emit(scheme.title) 
    604600                self.__cleanSettings = scheme.widget_settings() 
     
    619615 
    620616            if self.__scheme: 
    621                 for node in self.__scheme.nodes: 
    622                     self.__onNodeAdded(node) 
    623  
    624617                self.__scheme.installEventFilter(self) 
    625618 
     
    12291222            QCoreApplication.sendEvent(self, ev) 
    12301223 
    1231     def __onNodeAdded(self, node): 
    1232         widget = self.__scheme.widget_for_node[node] 
    1233         widget.widgetStateChanged.connect(self.__onWidgetStateChanged) 
    1234  
    1235     def __onNodeRemoved(self, node): 
    1236         widget = self.__scheme.widget_for_node[node] 
    1237         widget.widgetStateChanged.disconnect(self.__onWidgetStateChanged) 
    1238  
    1239     def __onWidgetStateChanged(self, *args): 
    1240         widget = self.sender() 
    1241         self.scheme() 
    1242         widget_to_node = dict(reversed(item) for item in \ 
    1243                               self.__scheme.widget_for_node.items()) 
    1244         node = widget_to_node[widget] 
    1245         item = self.__scene.item_for_node(node) 
    1246  
    1247         info = widget.widgetStateToHtml(True, False, False) 
    1248         warning = widget.widgetStateToHtml(False, True, False) 
    1249         error = widget.widgetStateToHtml(False, False, True) 
    1250  
    1251         item.setInfoMessage(info or None) 
    1252         item.setWarningMessage(warning or None) 
    1253         item.setErrorMessage(error or None) 
    1254  
    12551224    def __onNodeActivate(self, item): 
    12561225        node = self.__scene.node_for_item(item) 
Note: See TracChangeset for help on using the changeset viewer.