Ignore:
Timestamp:
05/06/13 11:05:48 (12 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Finalise the WidgetsScheme on a 'Close' event.

File:
1 edited

Legend:

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

    r11486 r11487  
    151151        return widget 
    152152 
    153     def close_all_open_widgets(self): 
    154         for widget in self.widget_for_node.values(): 
    155             widget.close() 
    156  
    157153    def widget_settings(self): 
    158154        """Return a list of dictionaries with widget settings. 
     
    160156        return [self.widget_for_node[node].getSettings(alsoContexts=False) 
    161157                for node in self.nodes] 
    162  
    163     def save_widget_settings(self): 
    164         """Save all widget settings to their global settings file. 
    165         """ 
    166         for node in self.nodes: 
    167             widget = self.widget_for_node[node] 
    168             if not widget._settingsFromSchema: 
    169                 widget.saveSettings() 
    170158 
    171159    def sync_node_properties(self): 
     
    191179        self.sync_node_properties() 
    192180        Scheme.save_to(self, stream, pretty, pickle_fallback) 
     181 
     182    def event(self, event): 
     183        """ 
     184        Reimplemented from `QObject.event`. 
     185 
     186        Responds to QEvent.Close event by stopping signal processing and 
     187        closing all widgets. 
     188 
     189        """ 
     190        if event.type() == QEvent.Close: 
     191            self.signal_manager.stop() 
     192 
     193            # Notify the widget instances. 
     194            for widget in self.widget_for_node.values(): 
     195                if not widget._settingsFromSchema: 
     196                    # First save global settings if necessary. 
     197                    widget.saveSettings() 
     198 
     199                widget.close() 
     200                widget.onDeleteWidget() 
     201 
     202            event.accept() 
     203            return True 
     204        else: 
     205            return Scheme.event(self, event) 
    193206 
    194207    def __on_help_request(self): 
Note: See TracChangeset for help on using the changeset viewer.