New; tell each query about a created/modified/removed object.
* pcs/cal-backend.c (cal_backend_notify_object_created, cal_backend_notify_object_modified, cal_backend_notify_object_removed): New; tell each query about a created/modified/removed object. * pcs/cal.c (cal_notify_object_created): Use cal_backend_notify_object_created. (cal_notify_object_modified, cal_notify_object_removed): Likewise for modified/removed (cal_notify_objects_received): we need both the before and after forms for the modified objects so they can be resolved as adds/modifies/removes per-query. But the caller can just call the cal_backend_* routines for each object anyway, so just remove the created/modified/removed lists. * pcs/cal-backend-sync.c (cal_backend_sync_receive_objects): Remove created/modified/removed list arguments. (_cal_backend_receive_objects): Likewise. * pcs/cal-backend-file.c (cal_backend_file_receive_objects): Remove created/modified/removed list arguments. Replace the one use of *removed with a call to cal_backend_notify_object_removed. svn path=/trunk/; revision=23102
This commit is contained in:
@ -1,3 +1,28 @@
|
|||||||
|
2003-10-27 Dan Winship <danw@ximian.com>
|
||||||
|
|
||||||
|
* pcs/cal-backend.c (cal_backend_notify_object_created,
|
||||||
|
cal_backend_notify_object_modified,
|
||||||
|
cal_backend_notify_object_removed): New; tell each query about a
|
||||||
|
created/modified/removed object.
|
||||||
|
|
||||||
|
* pcs/cal.c (cal_notify_object_created): Use
|
||||||
|
cal_backend_notify_object_created.
|
||||||
|
(cal_notify_object_modified, cal_notify_object_removed): Likewise
|
||||||
|
for modified/removed
|
||||||
|
(cal_notify_objects_received): we need both the before and after
|
||||||
|
forms for the modified objects so they can be resolved as
|
||||||
|
adds/modifies/removes per-query. But the caller can just call the
|
||||||
|
cal_backend_* routines for each object anyway, so just remove the
|
||||||
|
created/modified/removed lists.
|
||||||
|
|
||||||
|
* pcs/cal-backend-sync.c (cal_backend_sync_receive_objects):
|
||||||
|
Remove created/modified/removed list arguments.
|
||||||
|
(_cal_backend_receive_objects): Likewise.
|
||||||
|
|
||||||
|
* pcs/cal-backend-file.c (cal_backend_file_receive_objects):
|
||||||
|
Remove created/modified/removed list arguments. Replace the one
|
||||||
|
use of *removed with a call to cal_backend_notify_object_removed.
|
||||||
|
|
||||||
2003-10-27 JP Rosevear <jpr@ximian.com>
|
2003-10-27 JP Rosevear <jpr@ximian.com>
|
||||||
|
|
||||||
* gui/gnome-cal.c (setup_widgets): store config objects as well
|
* gui/gnome-cal.c (setup_widgets): store config objects as well
|
||||||
|
@ -1579,8 +1579,7 @@ check_tzids (icalparameter *param, void *data)
|
|||||||
|
|
||||||
/* Update_objects handler for the file backend. */
|
/* Update_objects handler for the file backend. */
|
||||||
static CalBackendSyncStatus
|
static CalBackendSyncStatus
|
||||||
cal_backend_file_receive_objects (CalBackendSync *backend, Cal *cal, const char *calobj,
|
cal_backend_file_receive_objects (CalBackendSync *backend, Cal *cal, const char *calobj)
|
||||||
GList **created, GList **modified, GList **removed)
|
|
||||||
{
|
{
|
||||||
CalBackendFile *cbfile;
|
CalBackendFile *cbfile;
|
||||||
CalBackendFilePrivate *priv;
|
CalBackendFilePrivate *priv;
|
||||||
@ -1613,8 +1612,6 @@ cal_backend_file_receive_objects (CalBackendSync *backend, Cal *cal, const char
|
|||||||
|
|
||||||
method = icalcomponent_get_method (toplevel_comp);
|
method = icalcomponent_get_method (toplevel_comp);
|
||||||
|
|
||||||
*created = *modified = *removed = NULL;
|
|
||||||
|
|
||||||
/* Build a list of timezones so we can make sure all the objects have valid info */
|
/* Build a list of timezones so we can make sure all the objects have valid info */
|
||||||
tzdata.zones = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
tzdata.zones = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||||
|
|
||||||
@ -1689,8 +1686,10 @@ cal_backend_file_receive_objects (CalBackendSync *backend, Cal *cal, const char
|
|||||||
break;
|
break;
|
||||||
case ICAL_METHOD_CANCEL:
|
case ICAL_METHOD_CANCEL:
|
||||||
/* FIXME Do we need to remove the subcomp so it isn't merged? */
|
/* FIXME Do we need to remove the subcomp so it isn't merged? */
|
||||||
if (cancel_received_object (cbfile, subcomp))
|
if (cancel_received_object (cbfile, subcomp)) {
|
||||||
*removed = g_list_prepend (*removed, g_strdup (icalcomponent_get_uid (subcomp)));
|
const char *calobj = icalcomponent_as_ical_string (subcomp);
|
||||||
|
cal_backend_notify_object_removed (CAL_BACKEND (backend), icalcomponent_get_uid (subcomp), calobj);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
status = GNOME_Evolution_Calendar_UnsupportedMethod;
|
status = GNOME_Evolution_Calendar_UnsupportedMethod;
|
||||||
|
@ -149,15 +149,13 @@ cal_backend_sync_discard_alarm (CalBackendSync *backend, Cal *cal, const char *u
|
|||||||
}
|
}
|
||||||
|
|
||||||
CalBackendSyncStatus
|
CalBackendSyncStatus
|
||||||
cal_backend_sync_receive_objects (CalBackendSync *backend, Cal *cal, const char *calobj,
|
cal_backend_sync_receive_objects (CalBackendSync *backend, Cal *cal, const char *calobj)
|
||||||
GList **created, GList **modified, GList **removed)
|
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (backend && CAL_IS_BACKEND_SYNC (backend), GNOME_Evolution_Calendar_OtherError);
|
g_return_val_if_fail (backend && CAL_IS_BACKEND_SYNC (backend), GNOME_Evolution_Calendar_OtherError);
|
||||||
|
|
||||||
g_assert (CAL_BACKEND_SYNC_GET_CLASS (backend)->receive_objects_sync);
|
g_assert (CAL_BACKEND_SYNC_GET_CLASS (backend)->receive_objects_sync);
|
||||||
|
|
||||||
return (* CAL_BACKEND_SYNC_GET_CLASS (backend)->receive_objects_sync) (backend, cal, calobj,
|
return (* CAL_BACKEND_SYNC_GET_CLASS (backend)->receive_objects_sync) (backend, cal, calobj);
|
||||||
created, modified, removed);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CalBackendSyncStatus
|
CalBackendSyncStatus
|
||||||
@ -393,12 +391,10 @@ static void
|
|||||||
_cal_backend_receive_objects (CalBackend *backend, Cal *cal, const char *calobj)
|
_cal_backend_receive_objects (CalBackend *backend, Cal *cal, const char *calobj)
|
||||||
{
|
{
|
||||||
CalBackendSyncStatus status;
|
CalBackendSyncStatus status;
|
||||||
GList *created = NULL, *modified = NULL, *removed = NULL;
|
|
||||||
|
|
||||||
status = cal_backend_sync_receive_objects (CAL_BACKEND_SYNC (backend), cal, calobj,
|
status = cal_backend_sync_receive_objects (CAL_BACKEND_SYNC (backend), cal, calobj);
|
||||||
&created, &modified, &removed);
|
|
||||||
|
|
||||||
cal_notify_objects_received (cal, status, created, modified, removed);
|
cal_notify_objects_received (cal, status);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -48,7 +48,7 @@ struct _CalBackendSyncClass {
|
|||||||
|
|
||||||
CalBackendSyncStatus (*discard_alarm_sync) (CalBackendSync *backend, Cal *cal, const char *uid, const char *auid);
|
CalBackendSyncStatus (*discard_alarm_sync) (CalBackendSync *backend, Cal *cal, const char *uid, const char *auid);
|
||||||
|
|
||||||
CalBackendSyncStatus (*receive_objects_sync) (CalBackendSync *backend, Cal *cal, const char *calobj, GList **created, GList **modified, GList **removed);
|
CalBackendSyncStatus (*receive_objects_sync) (CalBackendSync *backend, Cal *cal, const char *calobj);
|
||||||
CalBackendSyncStatus (*send_objects_sync) (CalBackendSync *backend, Cal *cal, const char *calobj);
|
CalBackendSyncStatus (*send_objects_sync) (CalBackendSync *backend, Cal *cal, const char *calobj);
|
||||||
|
|
||||||
CalBackendSyncStatus (*get_default_object_sync) (CalBackendSync *backend, Cal *cal, char **object);
|
CalBackendSyncStatus (*get_default_object_sync) (CalBackendSync *backend, Cal *cal, char **object);
|
||||||
@ -112,10 +112,7 @@ CalBackendSyncStatus cal_backend_sync_discard_alarm (CalBackendSync *backend, Ca
|
|||||||
|
|
||||||
CalBackendSyncStatus cal_backend_sync_receive_objects (CalBackendSync *backend,
|
CalBackendSyncStatus cal_backend_sync_receive_objects (CalBackendSync *backend,
|
||||||
Cal *cal,
|
Cal *cal,
|
||||||
const char *calobj,
|
const char *calobj);
|
||||||
GList **created,
|
|
||||||
GList **modified,
|
|
||||||
GList **removed);
|
|
||||||
CalBackendSyncStatus cal_backend_sync_send_objects (CalBackendSync *backend,
|
CalBackendSyncStatus cal_backend_sync_send_objects (CalBackendSync *backend,
|
||||||
Cal *cal,
|
Cal *cal,
|
||||||
const char *calobj);
|
const char *calobj);
|
||||||
|
@ -896,6 +896,129 @@ cal_backend_internal_get_timezone (CalBackend *backend, const char *tzid)
|
|||||||
return (* CLASS (backend)->internal_get_timezone) (backend, tzid);
|
return (* CLASS (backend)->internal_get_timezone) (backend, tzid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cal_backend_notify_object_created:
|
||||||
|
* @backend: A calendar backend.
|
||||||
|
* @calobj: iCalendar representation of new object
|
||||||
|
*
|
||||||
|
* Notifies each of the backend's listeners about a new object.
|
||||||
|
*
|
||||||
|
* cal_notify_object_created() calls this for you. You only need to
|
||||||
|
* call cal_backend_notify_object_created() yourself to report objects
|
||||||
|
* created by non-PCS clients.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
cal_backend_notify_object_created (CalBackend *backend, const char *calobj)
|
||||||
|
{
|
||||||
|
EList *queries;
|
||||||
|
EIterator *iter;
|
||||||
|
Query *query;
|
||||||
|
|
||||||
|
queries = cal_backend_get_queries (backend);
|
||||||
|
iter = e_list_get_iterator (queries);
|
||||||
|
|
||||||
|
while (e_iterator_is_valid (iter)) {
|
||||||
|
query = QUERY (e_iterator_get (iter));
|
||||||
|
|
||||||
|
bonobo_object_ref (query);
|
||||||
|
if (query_object_matches (query, calobj))
|
||||||
|
query_notify_objects_added_1 (query, calobj);
|
||||||
|
bonobo_object_unref (query);
|
||||||
|
|
||||||
|
e_iterator_next (iter);
|
||||||
|
}
|
||||||
|
g_object_unref (iter);
|
||||||
|
g_object_unref (queries);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cal_backend_notify_object_modified:
|
||||||
|
* @backend: A calendar backend.
|
||||||
|
* @old_object: iCalendar representation of the original form of the object
|
||||||
|
* @object: iCalendar representation of the new form of the object
|
||||||
|
*
|
||||||
|
* Notifies each of the backend's listeners about a modified object.
|
||||||
|
*
|
||||||
|
* cal_notify_object_modified() calls this for you. You only need to
|
||||||
|
* call cal_backend_notify_object_modified() yourself to report objects
|
||||||
|
* modified by non-PCS clients.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
cal_backend_notify_object_modified (CalBackend *backend,
|
||||||
|
const char *old_object, const char *object)
|
||||||
|
{
|
||||||
|
EList *queries;
|
||||||
|
EIterator *iter;
|
||||||
|
Query *query;
|
||||||
|
gboolean old_match, new_match;
|
||||||
|
|
||||||
|
queries = cal_backend_get_queries (backend);
|
||||||
|
iter = e_list_get_iterator (queries);
|
||||||
|
|
||||||
|
while (e_iterator_is_valid (iter)) {
|
||||||
|
query = QUERY (e_iterator_get (iter));
|
||||||
|
|
||||||
|
bonobo_object_ref (query);
|
||||||
|
|
||||||
|
old_match = query_object_matches (query, old_object);
|
||||||
|
new_match = query_object_matches (query, object);
|
||||||
|
if (old_match && new_match)
|
||||||
|
query_notify_objects_modified_1 (query, object);
|
||||||
|
else if (new_match)
|
||||||
|
query_notify_objects_added_1 (query, object);
|
||||||
|
else /* if (old_match) */ {
|
||||||
|
icalcomponent *comp;
|
||||||
|
|
||||||
|
comp = icalcomponent_new_from_string ((char *)old_object);
|
||||||
|
query_notify_objects_removed_1 (query, icalcomponent_get_uid (comp));
|
||||||
|
icalcomponent_free (comp);
|
||||||
|
}
|
||||||
|
|
||||||
|
bonobo_object_unref (query);
|
||||||
|
|
||||||
|
e_iterator_next (iter);
|
||||||
|
}
|
||||||
|
g_object_unref (iter);
|
||||||
|
g_object_unref (queries);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cal_backend_notify_object_removed:
|
||||||
|
* @backend: A calendar backend.
|
||||||
|
* @uid: the UID of the removed object
|
||||||
|
* @old_object: iCalendar representation of the removed object
|
||||||
|
*
|
||||||
|
* Notifies each of the backend's listeners about a removed object.
|
||||||
|
*
|
||||||
|
* cal_notify_object_removed() calls this for you. You only need to
|
||||||
|
* call cal_backend_notify_object_removed() yourself to report objects
|
||||||
|
* removed by non-PCS clients.
|
||||||
|
**/
|
||||||
|
void
|
||||||
|
cal_backend_notify_object_removed (CalBackend *backend, const char *uid,
|
||||||
|
const char *old_object)
|
||||||
|
{
|
||||||
|
EList *queries;
|
||||||
|
EIterator *iter;
|
||||||
|
Query *query;
|
||||||
|
|
||||||
|
queries = cal_backend_get_queries (backend);
|
||||||
|
iter = e_list_get_iterator (queries);
|
||||||
|
|
||||||
|
while (e_iterator_is_valid (iter)) {
|
||||||
|
query = QUERY (e_iterator_get (iter));
|
||||||
|
|
||||||
|
bonobo_object_ref (query);
|
||||||
|
if (query_object_matches (query, old_object))
|
||||||
|
query_notify_objects_removed_1 (query, uid);
|
||||||
|
bonobo_object_unref (query);
|
||||||
|
|
||||||
|
e_iterator_next (iter);
|
||||||
|
}
|
||||||
|
g_object_unref (iter);
|
||||||
|
g_object_unref (queries);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cal_backend_notify_mode:
|
* cal_backend_notify_mode:
|
||||||
* @backend: A calendar backend.
|
* @backend: A calendar backend.
|
||||||
|
@ -160,6 +160,10 @@ icaltimezone* cal_backend_internal_get_timezone (CalBackend *backend, const char
|
|||||||
|
|
||||||
void cal_backend_last_client_gone (CalBackend *backend);
|
void cal_backend_last_client_gone (CalBackend *backend);
|
||||||
|
|
||||||
|
void cal_backend_notify_object_created (CalBackend *backend, const char *calobj);
|
||||||
|
void cal_backend_notify_object_modified (CalBackend *backend, const char *old_object, const char *object);
|
||||||
|
void cal_backend_notify_object_removed (CalBackend *backend, const char *uid, const char *old_object);
|
||||||
|
|
||||||
void cal_backend_notify_mode (CalBackend *backend,
|
void cal_backend_notify_mode (CalBackend *backend,
|
||||||
GNOME_Evolution_Calendar_Listener_SetModeStatus status,
|
GNOME_Evolution_Calendar_Listener_SetModeStatus status,
|
||||||
GNOME_Evolution_Calendar_CalMode mode);
|
GNOME_Evolution_Calendar_CalMode mode);
|
||||||
|
@ -768,8 +768,6 @@ cal_notify_object_created (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
|||||||
const char *uid, const char *object)
|
const char *uid, const char *object)
|
||||||
{
|
{
|
||||||
CalPrivate *priv;
|
CalPrivate *priv;
|
||||||
EList *queries;
|
|
||||||
EIterator *iter;
|
|
||||||
CORBA_Environment ev;
|
CORBA_Environment ev;
|
||||||
|
|
||||||
g_return_if_fail (cal != NULL);
|
g_return_if_fail (cal != NULL);
|
||||||
@ -778,25 +776,8 @@ cal_notify_object_created (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
|||||||
priv = cal->priv;
|
priv = cal->priv;
|
||||||
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
||||||
|
|
||||||
queries = cal_backend_get_queries (priv->backend);
|
if (status == GNOME_Evolution_Calendar_Success)
|
||||||
iter = e_list_get_iterator (queries);
|
cal_backend_notify_object_created (priv->backend, object);
|
||||||
|
|
||||||
while (e_iterator_is_valid (iter)) {
|
|
||||||
Query *query = QUERY (e_iterator_get (iter));
|
|
||||||
|
|
||||||
bonobo_object_dup_ref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
if (!query_object_matches (query, object))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
query_notify_objects_added_1 (query, object);
|
|
||||||
|
|
||||||
bonobo_object_release_unref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
e_iterator_next (iter);
|
|
||||||
}
|
|
||||||
g_object_unref (iter);
|
|
||||||
g_object_unref (queries);
|
|
||||||
|
|
||||||
CORBA_exception_init (&ev);
|
CORBA_exception_init (&ev);
|
||||||
GNOME_Evolution_Calendar_Listener_notifyObjectCreated (priv->listener, status, uid ? uid : "", &ev);
|
GNOME_Evolution_Calendar_Listener_notifyObjectCreated (priv->listener, status, uid ? uid : "", &ev);
|
||||||
@ -812,8 +793,6 @@ cal_notify_object_modified (Cal *cal, GNOME_Evolution_Calendar_CallStatus status
|
|||||||
const char *old_object, const char *object)
|
const char *old_object, const char *object)
|
||||||
{
|
{
|
||||||
CalPrivate *priv;
|
CalPrivate *priv;
|
||||||
EList *queries;
|
|
||||||
EIterator *iter;
|
|
||||||
CORBA_Environment ev;
|
CORBA_Environment ev;
|
||||||
|
|
||||||
g_return_if_fail (cal != NULL);
|
g_return_if_fail (cal != NULL);
|
||||||
@ -822,36 +801,8 @@ cal_notify_object_modified (Cal *cal, GNOME_Evolution_Calendar_CallStatus status
|
|||||||
priv = cal->priv;
|
priv = cal->priv;
|
||||||
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
||||||
|
|
||||||
queries = cal_backend_get_queries (priv->backend);
|
if (status == GNOME_Evolution_Calendar_Success)
|
||||||
iter = e_list_get_iterator (queries);
|
cal_backend_notify_object_modified (priv->backend, old_object, object);
|
||||||
|
|
||||||
while (object && old_object && e_iterator_is_valid (iter)) {
|
|
||||||
Query *query = QUERY (e_iterator_get (iter));
|
|
||||||
gboolean old_match, new_match;
|
|
||||||
|
|
||||||
bonobo_object_dup_ref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
old_match = query_object_matches (query, old_object);
|
|
||||||
new_match = query_object_matches (query, object);
|
|
||||||
if (old_match && new_match)
|
|
||||||
query_notify_objects_modified_1 (query, object);
|
|
||||||
else if (new_match)
|
|
||||||
query_notify_objects_added_1 (query, object);
|
|
||||||
else /* if (old_match) */ {
|
|
||||||
icalcomponent *comp;
|
|
||||||
|
|
||||||
comp = icalcomponent_new_from_string ((char *)old_object);
|
|
||||||
query_notify_objects_removed_1 (query, icalcomponent_get_uid (comp));
|
|
||||||
icalcomponent_free (comp);
|
|
||||||
}
|
|
||||||
query_notify_query_done (query, GNOME_Evolution_Calendar_Success);
|
|
||||||
|
|
||||||
bonobo_object_release_unref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
e_iterator_next (iter);
|
|
||||||
}
|
|
||||||
g_object_unref (iter);
|
|
||||||
g_object_unref (queries);
|
|
||||||
|
|
||||||
CORBA_exception_init (&ev);
|
CORBA_exception_init (&ev);
|
||||||
GNOME_Evolution_Calendar_Listener_notifyObjectModified (priv->listener, status, &ev);
|
GNOME_Evolution_Calendar_Listener_notifyObjectModified (priv->listener, status, &ev);
|
||||||
@ -867,8 +818,6 @@ cal_notify_object_removed (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
|||||||
const char *uid, const char *object)
|
const char *uid, const char *object)
|
||||||
{
|
{
|
||||||
CalPrivate *priv;
|
CalPrivate *priv;
|
||||||
EList *queries;
|
|
||||||
EIterator *iter;
|
|
||||||
CORBA_Environment ev;
|
CORBA_Environment ev;
|
||||||
|
|
||||||
g_return_if_fail (cal != NULL);
|
g_return_if_fail (cal != NULL);
|
||||||
@ -877,25 +826,8 @@ cal_notify_object_removed (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
|||||||
priv = cal->priv;
|
priv = cal->priv;
|
||||||
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
||||||
|
|
||||||
queries = cal_backend_get_queries (priv->backend);
|
if (status == GNOME_Evolution_Calendar_Success)
|
||||||
iter = e_list_get_iterator (queries);
|
cal_backend_notify_object_removed (priv->backend, uid, object);
|
||||||
|
|
||||||
while (uid && object && e_iterator_is_valid (iter)) {
|
|
||||||
Query *query = QUERY (e_iterator_get (iter));
|
|
||||||
|
|
||||||
bonobo_object_dup_ref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
if (!query_object_matches (query, object))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
query_notify_objects_removed_1 (query, uid);
|
|
||||||
|
|
||||||
bonobo_object_release_unref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
e_iterator_next (iter);
|
|
||||||
}
|
|
||||||
g_object_unref (iter);
|
|
||||||
g_object_unref (queries);
|
|
||||||
|
|
||||||
CORBA_exception_init (&ev);
|
CORBA_exception_init (&ev);
|
||||||
GNOME_Evolution_Calendar_Listener_notifyObjectRemoved (priv->listener, status, &ev);
|
GNOME_Evolution_Calendar_Listener_notifyObjectRemoved (priv->listener, status, &ev);
|
||||||
@ -907,12 +839,9 @@ cal_notify_object_removed (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status)
|
||||||
GList *created, GList *modified, GList *removed)
|
|
||||||
{
|
{
|
||||||
CalPrivate *priv;
|
CalPrivate *priv;
|
||||||
EList *queries;
|
|
||||||
EIterator *iter;
|
|
||||||
CORBA_Environment ev;
|
CORBA_Environment ev;
|
||||||
|
|
||||||
g_return_if_fail (cal != NULL);
|
g_return_if_fail (cal != NULL);
|
||||||
@ -921,25 +850,6 @@ cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus statu
|
|||||||
priv = cal->priv;
|
priv = cal->priv;
|
||||||
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
g_return_if_fail (priv->listener != CORBA_OBJECT_NIL);
|
||||||
|
|
||||||
queries = cal_backend_get_queries (priv->backend);
|
|
||||||
iter = e_list_get_iterator (queries);
|
|
||||||
|
|
||||||
while (e_iterator_is_valid (iter)) {
|
|
||||||
Query *query = QUERY (e_iterator_get (iter));
|
|
||||||
|
|
||||||
bonobo_object_dup_ref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
query_notify_objects_added (query, created);
|
|
||||||
query_notify_objects_modified (query, modified);
|
|
||||||
query_notify_objects_removed (query, removed);
|
|
||||||
|
|
||||||
bonobo_object_release_unref (BONOBO_OBJREF (query), NULL);
|
|
||||||
|
|
||||||
e_iterator_next (iter);
|
|
||||||
}
|
|
||||||
g_object_unref (iter);
|
|
||||||
g_object_unref (queries);
|
|
||||||
|
|
||||||
CORBA_exception_init (&ev);
|
CORBA_exception_init (&ev);
|
||||||
GNOME_Evolution_Calendar_Listener_notifyObjectsReceived (priv->listener, status, &ev);
|
GNOME_Evolution_Calendar_Listener_notifyObjectsReceived (priv->listener, status, &ev);
|
||||||
|
|
||||||
|
@ -81,8 +81,7 @@ void cal_notify_object_removed (Cal *cal, GNOME_Evolution_Calendar_CallStatus st
|
|||||||
const char *uid, const char *object);
|
const char *uid, const char *object);
|
||||||
void cal_notify_alarm_discarded (Cal *cal, GNOME_Evolution_Calendar_CallStatus status);
|
void cal_notify_alarm_discarded (Cal *cal, GNOME_Evolution_Calendar_CallStatus status);
|
||||||
|
|
||||||
void cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status,
|
void cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status);
|
||||||
GList *created, GList *modified, GList *removed);
|
|
||||||
void cal_notify_objects_sent (Cal *cal, GNOME_Evolution_Calendar_CallStatus status);
|
void cal_notify_objects_sent (Cal *cal, GNOME_Evolution_Calendar_CallStatus status);
|
||||||
|
|
||||||
void cal_notify_default_object (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, char *object);
|
void cal_notify_default_object (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, char *object);
|
||||||
|
Reference in New Issue
Block a user