Changeset 11224:195ff890edc6 in orange


Ignore:
Timestamp:
12/05/12 19:25:05 (17 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Saving the opened category states of the dock toolbox.

Location:
Orange/OrangeCanvas/application
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11222 r11224  
    607607 
    608608        self.scheme_widget.setRegistry(widget_registry) 
     609 
     610        # Restore possibly saved widget toolbox tab states 
     611        settings = QSettings() 
     612        state = settings.value("canvasmainwindow/widgettoolbox/state", 
     613                                defaultValue=None) 
     614        state = state.toPyObject() 
     615        if state: 
     616            self.widgets_tool_box.restoreState(state) 
    609617 
    610618    def set_quick_help_text(self, text): 
     
    13141322 
    13151323        settings.setValue("last_scheme_dir", self.last_scheme_dir) 
     1324        settings.setValue("widgettoolbox/state", 
     1325                          self.widgets_tool_box.saveState()) 
     1326 
    13161327        settings.endGroup() 
    13171328 
  • Orange/OrangeCanvas/application/widgettoolbox.py

    r11177 r11224  
    88""" 
    99 
     10from ast import literal_eval 
    1011import logging 
    1112 
     
    255256                           designable=True) 
    256257 
     258    def saveState(self): 
     259        """Return the toolbox state. 
     260 
     261        .. note:: Individual tabs are stored by their action's text. 
     262 
     263        """ 
     264        version = 1 
     265 
     266        tabs = [] 
     267        for i in range(self.count()): 
     268            tab_action = self.tabAction(i) 
     269            name = unicode(tab_action.text()) 
     270            state = tab_action.isChecked() 
     271            tabs.append((name, state)) 
     272 
     273        return str((version, tabs)) 
     274 
     275    def restoreState(self, state): 
     276        """Restore the toolbox from `state`. 
     277        """ 
     278        try: 
     279            version, tabs = literal_eval(str(state)) 
     280        except (ValueError, SyntaxError, TypeError): 
     281            return False 
     282 
     283        if version != 1: 
     284            return False 
     285 
     286        state = dict(tabs) 
     287 
     288        for i in range(self.count()): 
     289            tab_action = self.tabAction(i) 
     290            name = unicode(tab_action.text()) 
     291            checked = state.get(name, tab_action.isChecked()) 
     292            if checked != tab_action.isChecked(): 
     293                tab_action.trigger() 
     294 
    257295    def setModel(self, model): 
    258296        """Set the widget registry model for this toolbox. 
Note: See TracChangeset for help on using the changeset viewer.