[evolution/account-mgmt: 13/55] Adapt addressbook/util to the new ESource API.



commit 3b2a0fbdb28065c266ab70981e13b10408990b18
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Dec 8 00:15:26 2010 -0500

    Adapt addressbook/util to the new ESource API.

 addressbook/util/eab-book-util.c |   31 +++++++++++++++++++++++--------
 addressbook/util/eab-book-util.h |    4 +++-
 2 files changed, 26 insertions(+), 9 deletions(-)
---
diff --git a/addressbook/util/eab-book-util.c b/addressbook/util/eab-book-util.c
index 30cd2ac..b25bbce 100644
--- a/addressbook/util/eab-book-util.c
+++ b/addressbook/util/eab-book-util.c
@@ -26,6 +26,7 @@
 #endif
 
 #include <string.h>
+#include <libedataserver/e-source-registry.h>
 
 #include "eab-book-util.h"
 
@@ -149,13 +150,16 @@ eab_contact_list_to_string (const GSList *contacts)
 }
 
 gboolean
-eab_book_and_contact_list_from_string (const gchar *str,
+eab_book_and_contact_list_from_string (ESourceRegistry *registry,
+                                       const gchar *str,
                                        EBookClient **book_client,
                                        GSList **contacts)
 {
+	ESource *source;
 	const gchar *s0, *s1;
-	gchar *uri;
+	gchar *uid;
 
+	g_return_val_if_fail (E_IS_SOURCE_REGISTRY (registry), FALSE);
 	g_return_val_if_fail (str != NULL, FALSE);
 	g_return_val_if_fail (book_client != NULL, FALSE);
 	g_return_val_if_fail (contacts != NULL, FALSE);
@@ -178,9 +182,15 @@ eab_book_and_contact_list_from_string (const gchar *str,
 		return FALSE;
 	}
 
-	uri = g_strndup (s0, s1 - s0);
-	*book_client = e_book_client_new_from_uri (uri, NULL);
-	g_free (uri);
+	uid = g_strndup (s0, s1 - s0);
+	source = e_source_registry_ref_source (registry, uid);
+	if (source != NULL) {
+		*book_client = e_book_client_new (source, NULL);
+		g_object_unref (source);
+	} else {
+		*book_client = NULL;
+	}
+	g_free (uid);
 
 	return (*book_client != NULL);
 }
@@ -196,9 +206,14 @@ eab_book_and_contact_list_to_string (EBookClient *book_client,
 		s0 = g_strdup ("");
 
 	if (book_client != NULL) {
-		s1 = g_strconcat (
-			"Book: ", e_client_get_uri (
-			E_CLIENT (book_client)), "\r\n", s0, NULL);
+		EClient *client;
+		ESource *source;
+		const gchar *uid;
+
+		client = E_CLIENT (book_client);
+		source = e_client_get_source (client);
+		uid = e_source_get_uid (source);
+		s1 = g_strconcat ("Book: ", uid, "\r\n", s0, NULL);
 	} else
 		s1 = g_strdup (s0);
 
diff --git a/addressbook/util/eab-book-util.h b/addressbook/util/eab-book-util.h
index 4376863..99e92b9 100644
--- a/addressbook/util/eab-book-util.h
+++ b/addressbook/util/eab-book-util.h
@@ -25,6 +25,7 @@
 #define EAB_BOOK_UTIL_H
 
 #include <libebook/e-book-client.h>
+#include <libedataserver/e-source-registry.h>
 
 G_BEGIN_DECLS
 
@@ -32,7 +33,8 @@ GSList *	eab_contact_list_from_string	(const gchar *str);
 gchar *		eab_contact_list_to_string	(const GSList *contacts);
 
 gboolean	eab_book_and_contact_list_from_string
-						(const gchar *str,
+						(ESourceRegistry *registry,
+						 const gchar *str,
 						 EBookClient **book_client,
 						 GSList **contacts);
 gchar *		eab_book_and_contact_list_to_string



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