diff options
Diffstat (limited to 'addressbook/backend/pas')
-rw-r--r-- | addressbook/backend/pas/pas-backend-file.c | 10 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-backend-ldap.c | 1 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-book-factory.c | 2 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-book-view.c | 17 | ||||
-rw-r--r-- | addressbook/backend/pas/pas-book-view.h | 1 |
5 files changed, 28 insertions, 3 deletions
diff --git a/addressbook/backend/pas/pas-backend-file.c b/addressbook/backend/pas/pas-backend-file.c index 56a0fd4652..f76a92c38c 100644 --- a/addressbook/backend/pas/pas-backend-file.c +++ b/addressbook/backend/pas/pas-backend-file.c @@ -458,6 +458,7 @@ pas_backend_file_search (PASBackendFile *bf, } else { pas_book_view_notify_add (view->book_view, cards); + pas_book_view_notify_complete (view->book_view); } /* @@ -529,8 +530,10 @@ pas_backend_file_process_create_card (PASBackend *backend, if (id) { for (list = bf->priv->book_views; list; list = g_list_next(list)) { PASBackendFileBookView *view = list->data; - if (vcard_matches_search (view, vcard)) + if (vcard_matches_search (view, vcard)) { pas_book_view_notify_add_1 (view->book_view, vcard); + pas_book_view_notify_complete (view->book_view); + } } pas_book_respond_create ( @@ -592,8 +595,10 @@ pas_backend_file_process_remove_card (PASBackend *backend, vcard_string = vcard_dbt.data; for (list = bf->priv->book_views; list; list = g_list_next(list)) { PASBackendFileBookView *view = list->data; - if (vcard_matches_search (view, vcard_string)) + if (vcard_matches_search (view, vcard_string)) { pas_book_view_notify_remove (view->book_view, req->id); + pas_book_view_notify_complete (view->book_view); + } } pas_book_respond_remove ( @@ -655,6 +660,7 @@ pas_backend_file_process_modify_card (PASBackend *backend, pas_book_view_notify_add_1 (view->book_view, req->vcard); else /* if (old_match) */ pas_book_view_notify_remove (view->book_view, id); + pas_book_view_notify_complete (view->book_view); } pas_book_respond_modify ( diff --git a/addressbook/backend/pas/pas-backend-ldap.c b/addressbook/backend/pas/pas-backend-ldap.c index 2298693f94..02719657c3 100644 --- a/addressbook/backend/pas/pas-backend-ldap.c +++ b/addressbook/backend/pas/pas-backend-ldap.c @@ -623,6 +623,7 @@ poll_ldap (PASBackendLDAPBookView *view) if ((rc = ldap_result (ldap, view->search_msgid, 0, NULL, &res)) != LDAP_RES_SEARCH_ENTRY) { view->search_idle = 0; + pas_book_view_notify_complete (view->book_view); return FALSE; } diff --git a/addressbook/backend/pas/pas-book-factory.c b/addressbook/backend/pas/pas-book-factory.c index f4012b2adf..626c7420e2 100644 --- a/addressbook/backend/pas/pas-book-factory.c +++ b/addressbook/backend/pas/pas-book-factory.c @@ -359,7 +359,7 @@ impl_Evolution_BookFactory_open_book (PortableServer_Servant servant, listener, Evolution_BookListener_ProtocolNotSupported, CORBA_OBJECT_NIL, - &ev); + ev); return; } diff --git a/addressbook/backend/pas/pas-book-view.c b/addressbook/backend/pas/pas-book-view.c index d218112555..4e1c8697aa 100644 --- a/addressbook/backend/pas/pas-book-view.c +++ b/addressbook/backend/pas/pas-book-view.c @@ -125,6 +125,23 @@ pas_book_view_notify_add_1 (PASBookView *book_view, g_list_free(list); } +void +pas_book_view_notify_complete (PASBookView *book_view) +{ + CORBA_Environment ev; + + CORBA_exception_init (&ev); + + Evolution_BookViewListener_signal_sequence_complete ( + book_view->priv->listener, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("pas_book_view_notify_complete: Exception signaling BookViewListener!\n"); + } + + CORBA_exception_free (&ev); +} + static gboolean pas_book_view_construct (PASBookView *book_view, Evolution_BookViewListener listener) diff --git a/addressbook/backend/pas/pas-book-view.h b/addressbook/backend/pas/pas-book-view.h index 55023b48ed..b9cdbee876 100644 --- a/addressbook/backend/pas/pas-book-view.h +++ b/addressbook/backend/pas/pas-book-view.h @@ -41,6 +41,7 @@ void pas_book_view_notify_add (PASBookView const GList *cards); void pas_book_view_notify_add_1 (PASBookView *book_view, const char *card); +void pas_book_view_notify_complete (PASBookView *book_view); GtkType pas_book_view_get_type (void); |