From df922e8109d39eb755f8e49f8a1b0fa2a7ef531d Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Wed, 31 Mar 2004 17:18:34 +0000 Subject: [ backend portion of fix for #48665 ] pass max_results to 2004-03-30 Chris Toshok [ backend portion of fix for #48665 ] * libedata-book/e-data-book.c (impl_GNOME_Evolution_Addressbook_Book_getBookView): pass max_results to e_data_book_view_new. * backends/ldap/e-book-backend-ldap.c (e_book_backend_ldap_search): pass the book view's @max_results as the ldap search limit. * libedata-book/e-data-book-view.c (e_data_book_view_new): add @max_results and pass it to ::construct. (e_data_book_view_construct): add @max_results. (e_data_book_view_get_max_results): new function. * libedata-book/e-data-book-view.h: add max_results arg to ::new, and add prototype for e_data_book_view_get_max_results. --- addressbook/ChangeLog | 19 +++++++++++++++++++ addressbook/backends/ldap/e-book-backend-ldap.c | 5 +++-- addressbook/libedata-book/e-data-book-view.c | 25 +++++++++++++++++++------ addressbook/libedata-book/e-data-book.c | 3 ++- 4 files changed, 43 insertions(+), 9 deletions(-) diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index b1ec1b014..3974c7526 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,22 @@ +2004-03-30 Chris Toshok + + [ backend portion of fix for #48665 ] + * libedata-book/e-data-book.c + (impl_GNOME_Evolution_Addressbook_Book_getBookView): pass + max_results to e_data_book_view_new. + + * backends/ldap/e-book-backend-ldap.c + (e_book_backend_ldap_search): pass the book view's @max_results as + the ldap search limit. + + * libedata-book/e-data-book-view.c (e_data_book_view_new): add + @max_results and pass it to ::construct. + (e_data_book_view_construct): add @max_results. + (e_data_book_view_get_max_results): new function. + + * libedata-book/e-data-book-view.h: add max_results arg to ::new, + and add prototype for e_data_book_view_get_max_results. + 2004-03-30 Chris Toshok [ looks like this fixes #55527 ] diff --git a/addressbook/backends/ldap/e-book-backend-ldap.c b/addressbook/backends/ldap/e-book-backend-ldap.c index a045fe06b..80d72f5ee 100644 --- a/addressbook/backends/ldap/e-book-backend-ldap.c +++ b/addressbook/backends/ldap/e-book-backend-ldap.c @@ -2841,7 +2841,8 @@ e_book_backend_ldap_search (EBookBackendLDAP *bl, int ldap_err; int search_msgid; - printf ("searching server using filter: %s\n", ldap_query); + printf ("searching server using filter: %s (expecting max %d results)\n", ldap_query, + e_data_book_view_get_max_results (view)); do { book_view_notify_status (view, _("Searching...")); @@ -2853,7 +2854,7 @@ e_book_backend_ldap_search (EBookBackendLDAP *bl, NULL, /* XXX */ NULL, /* XXX */ NULL, /* XXX timeout */ - 0 /* XXX we need this back in view->limit*/, &search_msgid); + e_data_book_view_get_max_results (view), &search_msgid); } while (e_book_backend_ldap_reconnect (bl, view, ldap_err)); g_free (ldap_query); diff --git a/addressbook/libedata-book/e-data-book-view.c b/addressbook/libedata-book/e-data-book-view.c index 03a122dc8..1e776604e 100644 --- a/addressbook/libedata-book/e-data-book-view.c +++ b/addressbook/libedata-book/e-data-book-view.c @@ -41,6 +41,8 @@ struct _EDataBookViewPrivate { char *card_query; EBookBackendSExp *card_sexp; GHashTable *ids; + + int max_results; }; static void @@ -321,8 +323,9 @@ static void e_data_book_view_construct (EDataBookView *book_view, EBookBackend *backend, GNOME_Evolution_Addressbook_BookViewListener listener, - const char *card_query, - EBookBackendSExp *card_sexp) + const char *card_query, + EBookBackendSExp *card_sexp, + int max_results) { EDataBookViewPrivate *priv; CORBA_Environment ev; @@ -346,6 +349,7 @@ e_data_book_view_construct (EDataBookView *book_view, priv->backend = backend; priv->card_query = g_strdup (card_query); priv->card_sexp = card_sexp; + priv->max_results = max_results; ORBit_small_listen_for_broken (e_data_book_view_get_listener (book_view), G_CALLBACK (view_listener_died_cb), book_view); } @@ -405,6 +409,14 @@ e_data_book_view_get_card_sexp (EDataBookView *book_view) return book_view->priv->card_sexp; } +int +e_data_book_view_get_max_results (EDataBookView *book_view) +{ + g_return_val_if_fail (E_IS_DATA_BOOK_VIEW (book_view), 0); + + return book_view->priv->max_results; +} + EBookBackend* e_data_book_view_get_backend (EDataBookView *book_view) { @@ -434,9 +446,10 @@ e_data_book_view_get_listener (EDataBookView *book_view) */ EDataBookView * e_data_book_view_new (EBookBackend *backend, - GNOME_Evolution_Addressbook_BookViewListener listener, - const char *card_query, - EBookBackendSExp *card_sexp) + GNOME_Evolution_Addressbook_BookViewListener listener, + const char *card_query, + EBookBackendSExp *card_sexp, + int max_results) { EDataBookView *book_view; @@ -444,7 +457,7 @@ e_data_book_view_new (EBookBackend *backend, "poa", bonobo_poa_get_threaded (ORBIT_THREAD_HINT_PER_REQUEST, NULL), NULL); - e_data_book_view_construct (book_view, backend, listener, card_query, card_sexp); + e_data_book_view_construct (book_view, backend, listener, card_query, card_sexp, max_results); return book_view; } diff --git a/addressbook/libedata-book/e-data-book.c b/addressbook/libedata-book/e-data-book.c index e99290f1b..c170d703c 100644 --- a/addressbook/libedata-book/e-data-book.c +++ b/addressbook/libedata-book/e-data-book.c @@ -150,7 +150,8 @@ impl_GNOME_Evolution_Addressbook_Book_getBookView (PortableServer_Servant servan return; } - view = e_data_book_view_new (backend, listener, search, card_sexp); + /* XXX still need to add requested_fields here */ + view = e_data_book_view_new (backend, listener, search, card_sexp, max_results); if (!view) { g_object_unref (card_sexp); -- cgit v1.2.1