kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #22725
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