Here's a progress update on my account management rewrite. I've been on travel for the past three weeks and still have another week to go, so I've only been able to work on this in short spurts -- an hour here, an hour there. But I've managed to work through all of E-D-S, get the test-source-combo-box and test-source-selector programs working with the keyfile-based ESources, and am now plowing my way through Evolution itself.
As usual this is turning out to be a bigger job than expected, and I'm less confident now that I can get this all done by 2.91.90 but I'm still gonna try. The alternative, since I -really- don't want these XML blobs creeping into GSettings even temporarily, is to depend on GConf for 3.0 and then land this stuff (along with Rodrigo's GSettings branch) early in 3.1. Were it not for the pressure to get everything converted in time for GNOME 3.0, I would already be retargeting this for 3.1. Overall the changes are having a simplifying effect on the code base, but it will introduce an API break of some kind to almost every library in E-D-S. That's what I wanted to talk about here. I'm still only on address books and calendars. For mail accounts, EAccountList will die and EAccount will be split into two separate key files (one for "store" settings, one for "transport" settings). Beyond that I don't anticipate many (if any) more API breaks in E-D-S for mail accounts. For address books and calendars, ESourceList and ESourceGroup will die (replaced by an ESourceRegistry singleton which holds everything). The ESource API will be rewritten from scratch, will no longer use GConf and also will no longer have a URI. All other API breaks follow from that. So here's what I've broken on my branch so far, grouped by library: libedataserver -------------- - Remove ESourceList and ESourceGroup. - Rewrite ESource from scratch. libebook -------- - Remove e_book_new_from_uri() and e_book_get_uri(). - Remove e_book_get_addressbooks(). libecal ------- - Remove e_cal_new_from_uri() and e_cal_get_uri(). - Remove e_cal_get_sources(). - ECalAuthFunc: the 'key' argument is no longer used. libedata-cal ------------ - Remove e_cal_backend_get_uri(). libedataserverui ---------------- - All e-passwords functions will simply take an ESource instead of "component" and "key" strings. Keyring entries will contain the UID of the corresponding ESource instead of URI components (we'll convert existing keyring entries as part of the migration phase). - ESourceComboBox will take an ESourceRegistry and an extension name as constructor arguments. The given extension name will filter the sources shown in the widget (e.g. "address-book", "calendar", etc.). - Similarly for ESourceSelector. _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... http://mail.gnome.org/mailman/listinfo/evolution-hackers