On Fri, 2011-01-28 at 15:46 +0100, Javier Hernandez Antúnez wrote:Replying off-list since this may veer off-topic for desktop-devel-list.
> Yes, I'm interested in details, so if you can share with me a
> diagram/workflow/anything, it will be awesome!
I've been chronicling my account management design for Evolution on the
evolution-hackers list. Below are links to the most relevant posts.
These are earlier posts that talk about using GSettings. Later I just
removed GSettings from the equation while keeping most of the public
facing APIs I had developed already.
What attracted me to GSettings initially was the ability to bind GObject
properties to individual values in the key file. This design retains
that feature even after discarding GSettings.
So read these first and I'll be happy to clarify or summarize.
My initial post describes how I worked around the schema issue:
http://mail.gnome.org/archives/evolution-hackers/2010-November/msg00013.html
This post has an illustration of the class design:
http://mail.gnome.org/archives/evolution-hackers/2010-November/msg00024.html
API and schema details... probably too much information:
http://mail.gnome.org/archives/evolution-hackers/2010-December/msg00030.html
Ditching GSettings:
http://mail.gnome.org/archives/evolution-hackers/2010-December/msg00050.html
Finally, a recent snapshot of the code for reference. Relevant files
are e-source*.[ch], particularly e-source.c and e-source-registry.c.
http://git.gnome.org/browse/evolution-data-server/tree/libedataserver?h=account-mgmt
Hope this helps,
Matthew Barnes