[Evolution-hackers] API change in libedata-cal [calendar]

   It is not possible to remove a particular instance of a recurring
event without a recurrence id. The following API's should be modified to
include the recurrence id for the clients to identify the instances.

void e_data_cal_view_notify_objects_removed (EDataCalView *query, GList
void e_data_cal_view_notify_objects_removed_1 (EDataCalView *query,
const char *uid);
void e_cal_backend_notify_object_removed (ECalBackend *backend, const
char *uid, const char *old_object, const char *object)

This cause problems in removing the recurring appointments from the

To fix this a new structure would be added to ECalComponent which maps
the uid and rid for a particular component. This is as follows ...

typedef struct {
     char *uid;
     char *rid;
} ECalComponentId;

There will be two functions

ECalComponent *id e_cal_component_get_id (ECalComponent *comp); - For
getting the id.
void e_cal_component_free_id (ECalComponentId *id); - Free memory.

The modified APis would be 

void e_data_cal_view_notify_objects_removed_1 (EDataCalView *query,
ECalComponentId *id);

void e_data_cal_view_notify_objects_removed (EDataCalView *query, GList
*ids); - ids will be a list of ECalComponentIds.

void e_cal_backend_notify_object_removed (ECalBackend *backend,
ECalComponentId *id, const char *old_object, const char *object)

thanks, chenthill.

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