Re: [Evolution-hackers] Rethinking account management



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.




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]