aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/pcs/cal.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/pcs/cal.c')
-rw-r--r--calendar/pcs/cal.c104
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);