Modernize GSettings code
The initial GSettings port in commit ad08ec89 kept the planner-conf abstraction, while breaking planner-conf-win32.c
compilation (but it was not ever built since the meson port anyways). Unlike previous GConf, GSettings has settings configuration storage backends for the Windows and Mac native ways (registry
and nextstep
backends), so we don't actually need this planner-conf abstraction anymore.
We should modernize all this, at least as follows:
-
Use GSettings directly in a conventional way (e.g. not creating a new GSettings object for each get/set, but having one for the lifetime of the setting using GObject or even a static one shared by multiple project windows). -
Drop planner-conf*
sources. -
Make use of g_settings_bind
and co where appropriate. This might have side-effects, in particular with keeping things like column widths in sync between multiple different project windows, which fixes some bugs but might be annoying for some parallel usage otoh (but it was then buggy before too, in terms of what actually gets saved for next planner run, etc) - tl;dr: until we figure this kind of stuff out, we need to not be overzealous on making use of g_settings_bind. -
Test it works good on Windows/Mac too
Edited by Mart Raudsepp