diff options
Diffstat (limited to 'calendar/pcs/cal.c')
-rw-r--r-- | calendar/pcs/cal.c | 104 |
1 files changed, 7 insertions, 97 deletions
diff --git a/calendar/pcs/cal.c b/calendar/pcs/cal.c index deaf44ec92..aec1591da3 100644 --- a/calendar/pcs/cal.c +++ b/calendar/pcs/cal.c @@ -768,8 +768,6 @@ cal_notify_object_created (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, const char *uid, const char *object) { CalPrivate *priv; - EList *queries; - EIterator *iter; CORBA_Environment ev; g_return_if_fail (cal != NULL); @@ -778,25 +776,8 @@ cal_notify_object_created (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, priv = cal->priv; 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); - - 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); + if (status == GNOME_Evolution_Calendar_Success) + cal_backend_notify_object_created (priv->backend, object); CORBA_exception_init (&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) { CalPrivate *priv; - EList *queries; - EIterator *iter; CORBA_Environment ev; g_return_if_fail (cal != NULL); @@ -822,36 +801,8 @@ cal_notify_object_modified (Cal *cal, GNOME_Evolution_Calendar_CallStatus status priv = cal->priv; g_return_if_fail (priv->listener != CORBA_OBJECT_NIL); - queries = cal_backend_get_queries (priv->backend); - iter = e_list_get_iterator (queries); - - 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); + if (status == GNOME_Evolution_Calendar_Success) + cal_backend_notify_object_modified (priv->backend, old_object, object); CORBA_exception_init (&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) { CalPrivate *priv; - EList *queries; - EIterator *iter; CORBA_Environment ev; g_return_if_fail (cal != NULL); @@ -877,25 +826,8 @@ cal_notify_object_removed (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, priv = cal->priv; g_return_if_fail (priv->listener != CORBA_OBJECT_NIL); - queries = cal_backend_get_queries (priv->backend); - iter = e_list_get_iterator (queries); - - 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); + if (status == GNOME_Evolution_Calendar_Success) + cal_backend_notify_object_removed (priv->backend, uid, object); CORBA_exception_init (&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 -cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status, - GList *created, GList *modified, GList *removed) +cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus status) { CalPrivate *priv; - EList *queries; - EIterator *iter; CORBA_Environment ev; g_return_if_fail (cal != NULL); @@ -921,25 +850,6 @@ cal_notify_objects_received (Cal *cal, GNOME_Evolution_Calendar_CallStatus statu priv = cal->priv; 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); GNOME_Evolution_Calendar_Listener_notifyObjectsReceived (priv->listener, status, &ev); |