On Thu, 4 Oct 2012 10:51:29 +1000 Lex Trotman elextr@gmail.com wrote:
Are all settings saved on apply? not just the prefs/project prefs ones?
Edit -> Preferences -> OK|Apply saves the entire geany.conf: dialog preferences, UI settings and file list.
Project -> Properties -> OK saves the entire $project.conf: project settings and file list.
File -> Quit does both.
AFAICT build->set build commands->ok does neither, it assumes save at the end, thats the problem, and why the save on quit is still needed and why failing to save on shutdown is a breakage.
Unless you are looking at some really old sources, a project-less build -> set build commands -> ok saves the changes under filedefs/ immediately ("save filetypes now" in the mailing list). Just fill some commands, OK, and grep ~/.config/geany.
Save on Quit is needed for the interface preferences, such as View -> Show Sidebar, and the project-less file list. Unfortunately, the file list is saved even with a project open, but attempts to fix it trigger a "multiply instances" discussion.
The build one is the one I know, my question is then what other dialogs or menu items etc change settings but fail to cause a save because they still assume save on exit?
The ones from save_ui_prefs(). You can't reasonably expect a file save each time the side bar is shown/hidden, or the main window is moved/sized...
Saving dialog preferences and project settings on Quit does not make real sense, but it's the same file, so there is no reason to separate them. Yet they are internally separate (static) functions, see keyfile.c:configuration_save() and project.c:write_config().
Not sure what you mean by "its the same file", its not the same file and doesn't have the same contents?
The dialog preferences are in the same file (geany.conf) as UI settings and the project-less file list, which need save on quit; and the project properties are in the same file ($project.geany) as the project file list, which needs save on quit. So (not) saving the formers does not make real difference, the entire file must be re-written anyway.