summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2004-03-31 17:18:34 +0000
committerChris Toshok <toshok@src.gnome.org>2004-03-31 17:18:34 +0000
commitdf922e8109d39eb755f8e49f8a1b0fa2a7ef531d (patch)
tree11861f781ea32756e774122a5514e47bb62da062
parent29518e3cfe32d46fb0d10978ee0b9ebfa97b0b86 (diff)
downloadevolution-data-server-df922e8109d39eb755f8e49f8a1b0fa2a7ef531d.tar.gz
[ backend portion of fix for #48665 ] pass max_results to
2004-03-30 Chris Toshok <toshok@ximian.com> [ 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.
-rw-r--r--addressbook/ChangeLog19
-rw-r--r--addressbook/backends/ldap/e-book-backend-ldap.c5
-rw-r--r--addressbook/libedata-book/e-data-book-view.c25
-rw-r--r--addressbook/libedata-book/e-data-book.c3
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,5 +1,24 @@
2004-03-30 Chris Toshok <toshok@ximian.com>
+ [ 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 <toshok@ximian.com>
+
[ looks like this fixes #55527 ]
* libedata-book/e-data-book-view.c (e_data_book_view_construct):
use bonobo_object_dup_ref instead of CORBA_Object_duplicate here.
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);