[evolution-patches] e-d-s patch for addressbook bug 48665



I've already committed the required gui portion of this fix.  This
basically passes around the @max_results EBookView arg a few more
places, so we can get access to it from the backends that care about it
(the ldap one at the moment.)

Chris
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/ChangeLog,v
retrieving revision 1.110
diff -u -r1.110 ChangeLog
--- ChangeLog	30 Mar 2004 08:28:55 -0000	1.110
+++ ChangeLog	30 Mar 2004 16:13:27 -0000
@@ -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.
Index: backends/ldap/e-book-backend-ldap.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/backends/ldap/e-book-backend-ldap.c,v
retrieving revision 1.12
diff -u -r1.12 e-book-backend-ldap.c
--- backends/ldap/e-book-backend-ldap.c	6 Feb 2004 07:34:00 -0000	1.12
+++ backends/ldap/e-book-backend-ldap.c	30 Mar 2004 16:13:28 -0000
@@ -2841,7 +2841,8 @@
 		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 @@
 						    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);
Index: libedata-book/e-data-book-view.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-data-book-view.c,v
retrieving revision 1.6
diff -u -r1.6 e-data-book-view.c
--- libedata-book/e-data-book-view.c	30 Mar 2004 08:28:56 -0000	1.6
+++ libedata-book/e-data-book-view.c	30 Mar 2004 16:13:29 -0000
@@ -41,6 +41,8 @@
 	char *card_query;
 	EBookBackendSExp *card_sexp;
 	GHashTable *ids;
+
+	int max_results;
 };
 
 static void
@@ -321,8 +323,9 @@
 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 @@
 	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 @@
 	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 @@
  */
 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 @@
 				  "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;
 }
Index: libedata-book/e-data-book-view.h
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-data-book-view.h,v
retrieving revision 1.4
diff -u -r1.4 e-data-book-view.h
--- libedata-book/e-data-book-view.h	13 Mar 2004 22:40:45 -0000	1.4
+++ libedata-book/e-data-book-view.h	30 Mar 2004 16:13:29 -0000
@@ -43,10 +43,12 @@
 EDataBookView *e_data_book_view_new                  (EBookBackend                 *backend,
 						      GNOME_Evolution_Addressbook_BookViewListener  listener,
 						      const char                   *card_query,
-						      EBookBackendSExp             *card_sexp);
+						      EBookBackendSExp             *card_sexp,
+						      int                           max_results);
 
 const char*       e_data_book_view_get_card_query    (EDataBookView                *book_view);
 EBookBackendSExp* e_data_book_view_get_card_sexp     (EDataBookView                *book_view);
+int               e_data_book_view_get_max_results   (EDataBookView                *book_view);
 EBookBackend*     e_data_book_view_get_backend       (EDataBookView                *book_view);
 GNOME_Evolution_Addressbook_BookViewListener e_data_book_view_get_listener (EDataBookView  *book_view);
 GMutex*           e_data_book_view_get_mutex         (EDataBookView                *book_view);
Index: libedata-book/e-data-book.c
===================================================================
RCS file: /cvs/gnome/evolution-data-server/addressbook/libedata-book/e-data-book.c,v
retrieving revision 1.5
diff -u -r1.5 e-data-book.c
--- libedata-book/e-data-book.c	16 Mar 2004 21:35:19 -0000	1.5
+++ libedata-book/e-data-book.c	30 Mar 2004 16:13:29 -0000
@@ -150,7 +150,8 @@
 		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);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]