Op 24-02-13 20:30, Phil Longstaff schreef:
When I was looking at replacing GConf, I envisioned wrapping it as GncPrefs. I took some ideas from Java (java.util.prefs) such as: - hierarchy of prefs nodes. A prefs node can have values, but can also have prefs nodes as children. - GncPrefs would be base class, with GncPrefsGconf and GncPrefsBook (using the QofBook KVP) as subclasses for global and per-book prefs - hierarchy idea matched pretty well with GConf "directory" struct and with KVP frame struct
- hierarchy idea matches pretty well with GSettings hierarchy idea
- top level GncPrefs nodes for global and per-book. Could also have global per-user and per-book-per-user top level nodes.
- could use GObject, but would much prefer C++ for creating subclasses
- Would add GncPrefsGSettings to maintain independence of gnucash code from specific implementation technology

I ended up prototyping GncPrefs and GncPrefsGconf, and then renaming a number of GNC_GCONF_XXX #defines and gnc_gconf_xxx() functions to be GNC_GLOBAL_PREFS_XXX and gnc_global_prefs_xxx() for high-level directories and APIs. This code is on an old computer, but I could probably resurrect it if we want to use it as the basis.

To isolate all traces of gconf to the GncPrefsGconf() would probably take a month or so. Knowledge is spread throughout the UI. This doesn't even take into account any behind-the-scenes cases of widgets storing values in gconf.

Phil,

That looks like a good start for refactoring our Preferences system. As said in another mail, that's not my current scope. So I am interested in your work, but I'd only include it after 2.6.

Geert
_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to