          """ Save the configuration ``.ini`` file with the currently stored values.
  
          Parameters
          ----------
          section: str, optional
              The configuration section to save, If ``None`` provided then all sections are saved.
 
</s> remove         config_dicts = dict()
 </s> add         config_dicts = {} </s> remove         self.tk_vars = dict()
 </s> add         self.tk_vars = {} </s> remove                 self.tk_vars.setdefault(section, dict())[key] = cp_option.tk_var
                config_dicts.setdefault(section, dict())[key] = cp_option
 </s> add                 self.tk_vars.setdefault(section, {})[key] = cp_option.tk_var
                config_dicts.setdefault(section, {})[key] = cp_option </s> remove         for config_section, items in self._config_dicts.items():
 </s> add         for config_section, items in self._config.defaults.items(): </s> remove         swapped = list()
 </s> add         swapped = []
        Notes
        -----
        We cannot edit the existing saved config as comments tend to get removed, so we create
        a new config and populate that.

          """ Save the configuration ``.ini`` file with the currently stored values.
  
        Notes
        -----
        We cannot edit the existing saved config as comments tend to get removed, so we create
        a new config and populate that.

          Parameters
          ----------
          section: str, optional
              The configuration section to save, If ``None`` provided then all sections are saved.
keep add keep keep keep keep
 bugfix: Preview Tool, ensure all config items are written 
tools/preview/preview.py