[evolution/account-mgmt: 17/54] Adapt mail/importers to the new ESource API.



commit cbe5f33469eccbc068cd44725264fea19c8f85f7
Author: Matthew Barnes <mbarnes redhat com>
Date:   Wed Dec 8 09:40:51 2010 -0500

    Adapt mail/importers to the new ESource API.

 mail/importers/pine-importer.c |   44 +++++++++++++++++----------------------
 1 files changed, 19 insertions(+), 25 deletions(-)
---
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c
index 911cb69..f59557c 100644
--- a/mail/importers/pine-importer.c
+++ b/mail/importers/pine-importer.c
@@ -40,6 +40,8 @@
 
 #include <libebook/e-book-client.h>
 #include <libebook/e-destination.h>
+#include <libedataserver/e-source-registry.h>
+#include <libedataserver/e-source-address-book.h>
 
 #include "mail-importer.h"
 
@@ -176,52 +178,44 @@ import_contact (EBookClient *book_client,
 static void
 import_contacts (void)
 {
-	ESource *source;
-	ESourceList *source_list = NULL;
-	EBookClient *book_client;
+	EShell *shell;
+	ESourceRegistry *registry;
+	EBookClient *book_client = NULL;
+	GList *list;
 	gchar *name;
 	GString *line;
 	FILE *fp;
 	gsize offset;
+	const gchar *extension_name;
 	GError *error = NULL;
 
 	printf("importing pine addressbook\n");
 
-	e_book_client_get_sources (&source_list, &error);
-
-	if (error != NULL) {
-		g_warning (
-			"%s: Failed to get book sources: %s",
-			G_STRFUNC, error->message);
-		g_error_free (error);
-		return;
-	}
+	shell = e_shell_get_default ();
+	registry = e_shell_get_registry (shell);
+	extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK;
 
 	name = g_build_filename(g_get_home_dir(), ".addressbook", NULL);
 	fp = fopen(name, "r");
 	g_free (name);
-	if (fp == NULL) {
-		g_object_unref (source_list);
+	if (fp == NULL)
 		return;
-	}
 
-	source = e_source_list_peek_source_any (source_list);
-	if (!source) {
-		g_object_unref (source_list);
-		fclose (fp);
+	list = e_source_registry_list_sources (registry, extension_name);
 
-		g_warning ("%s: No book source found, skipping.", G_STRFUNC);
-		return;
+	if (list != NULL) {
+		ESource *source;
+
+		source = E_SOURCE (list->data);
+		book_client = e_book_client_new (source, &error);
 	}
 
-	book_client = e_book_client_new (source, &error);
+	g_list_free_full (list, (GDestroyNotify) g_object_unref);
 
 	if (book_client != NULL)
 		e_client_open_sync (E_CLIENT (book_client), TRUE, NULL, &error);
 
-	g_object_unref (source_list);
-
-	if (error != NULL || !book_client) {
+	if (error != NULL) {
 		g_warning (
 			"%s: Failed to open book client: %s",
 			G_STRFUNC, error ? error->message : "Unknown error");



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