Re: [Evolution-hackers] Rethinking account management



On Wed, 2011-01-26 at 16:23 +0100, Patrick Ohly wrote:
> SyncEvolution uses all of these calls. I don't mind rewriting the code,
> but let's make sure that there is a proper replacement.
> 
> What I need to do is:
> - list all address books and calendars
> - open any of the listed databases
> - create new ones at a location chose by the user
>   (file://<path> uri in the current API)
> 
> Is all of that still going to be possible? How?

Listing calendars will look something like this:

    #include <libecal/e-source-calendar.h>
    #include <libebook/e-source-addressbook.h>
    #include <libedataserver/e-source-registry.h>

    ESourceRegistry *registry;
    const gchar *extension_name;
    GList *sources;

    registry = e_source_registry_get_default ();

    /* List all calendars. */
    extension_name = E_SOURCE_EXTENSION_CALENDAR;
    sources = e_source_registry_list_sources (registry, extension_name);

    /* Do something with the list of ESource objects. */

    g_list_free (sources);

Other extension names include:

    E_SOURCE_EXTENSION_ADDRESS_BOOK
    E_SOURCE_EXTENSION_MEMO_LIST
    E_SOURCE_EXTENSION_TASK_LIST

No change to the way ECal and EBook objects are opened.

Can you elaborate on the creation use case?  Sounds like you're creating
local data sources on the fly?



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