Ignore:
File:
1 edited

Legend:

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

    r11470 r11487  
    8484 
    8585        # Save settings to user global settings. 
    86         widget.saveSettings() 
     86        if not widget._settingsFromSchema: 
     87            widget.saveSettings() 
    8788 
    8889        # Notify the widget it will be deleted. 
     
    150151        return widget 
    151152 
    152     def close_all_open_widgets(self): 
    153         for widget in self.widget_for_node.values(): 
    154             widget.close() 
    155  
    156153    def widget_settings(self): 
    157154        """Return a list of dictionaries with widget settings. 
     
    159156        return [self.widget_for_node[node].getSettings(alsoContexts=False) 
    160157                for node in self.nodes] 
    161  
    162     def save_widget_settings(self): 
    163         """Save all widget settings to their global settings file. 
    164         """ 
    165         for node in self.nodes: 
    166             widget = self.widget_for_node[node] 
    167             widget.saveSettings() 
    168158 
    169159    def sync_node_properties(self): 
     
    189179        self.sync_node_properties() 
    190180        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) 
    191206 
    192207    def __on_help_request(self): 
Note: See TracChangeset for help on using the changeset viewer.