
Joshua L. Blocher wrote:
I'm not sure that having more than one way to store preferences is a "good thing". Seems to me to it adds unneeded complexity. It will make cross-platform troubleshooting harder.
The solution is to add a switch to the command line that will tell the program to ignore the saved preferences altogether, or reload the defaults. Additionally, I think the GConf backend won't cause much headaches after it is implemented. It will be much simpler because most of the work will be done by GConf. By the way, clearing GConf data is as easy as deleting the prefs file - just remove ~/.gconf/apps/inkscape.
Joshua L. Blocher wrote:
It is harder to explain to users if its stored in a different way on every platform
It would only be stored differently for Gnome. In Gnome, there is a GUI tool to tweak the GConf settings (gconf-editor). It shows the name and description for each setting, so it's self documenting. It's actually easier to tweak because everything is documented. One of my motivations for GConf is that it will require documenting user-settable preferences in the GConf schema files (undocumented settings are still permitted, but discouraged).
Joshua L. Blocher wrote:
Especially since it looks like gconf backend loses us any gain on XDG compliance.
I had a look into this. XDG basedir spec only defines directories in which to place and search for specific kinds of files. If you don't have a file, XDG basedir doesn't concern you. With GConf we are not breaking compliance, because we are not using a file. Similarly we wouldn't break compliance if we decided to store our settings in some location on the Web. The purpose of this spec is to ensure that you can place your config in any dir you like, and then be sure the application finds its stuff. With GConf we don't even have to look for the stuff (we're just talking to the GConf daemon).
By the way, using ~/.config/Inkscape is not correct. It's also wrong to store palettes, templates and the like there. The right way to do this is to use g_get_user_config_dir for the configuration directory and g_get_user_data_dir for the data directory (palettes, templates, extensions...).
Links: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html http://library.gnome.org/devel/glib/unstable/glib-Miscellaneous-Utility-Func...
Regards, Krzysztof Kosiński