← Back to team overview

kicad-developers team mailing list archive

Discuss: Save/Load Preferences

 

Hi,

I'd like to discuss the Save/Load Preferences feature a bit. I've never 
quite exactly understood what it's supposed to be used for. Here's what 
I gathered from the code:

- Save Preferences calls SaveProjectSettings(true), asking the user if 
  he wants to save the settings. This isn't the only place it happens, 
  though - it is also called implicitly when plotting and when certain 
  settings have been changed in preferences.

- The "Save" dialog displayed by Save Preferences is broken. It asks for 
  a file name, but disregards it and always writes to the active project 
  file.

- Load Preferences reloads GROUP_SCH and GROUP_SCH_EDITOR, and _also_ 
  seems to disregard the selected file.

- GROUP_SCH is loaded when libraries are loaded. GROUP_SCH_EDITOR is 
  only loaded when "Load Preferences" is selected.

I find this all very confusing, and partially broken. I at least insist 
that we fix the broken save/load dialogs - it shouldn't ask for a file 
and then ignore the selection. However:

Uh... what do people use this for? I'm having a hard time figuring out 
the use case, and I think most users aren't really going to understand 
what it does.

Keeping in mind that I don't know the use case, what about this:

- Stop calling SaveProjectSettings in places that are NOT the "Save
  Preferences" menu item. This is just confusing, most users are going 
  to assume that if it's something they can trigger with the menu, it's 
  not something that'll just "happen" when certain operations are 
  performed. Perhaps rethink those bits a bit so there's either no need 
  to save anything, or doing it silently would become sensible.

- Replace Save/Load Preferences with something like Import/Export 
  Hotkeys. Instead of saving to the project file, save to a separate 
  settings file. This would resolve *my* first major misunderstanding, 
  which is why even though "Save Preferences" saves to the project file, 
  "Load Preferences" doesn't execute at project load.

I *think* this is more what it's used for, anyway - just having a place 
to import and export preferences to.

Can someone comment or help dispel my misunderstandings?

-- Chris


Follow ups