diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2010-12-08 13:17:17 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2012-06-03 11:00:39 +0800 |
commit | 70805074799774f97473dafbed444c8a0b3b68e1 (patch) | |
tree | 0ab42f959f0b988a6d9100ada5adaf626c7f5404 | |
parent | c20cd3645b593061eb564aabcc0e224b8a1b744c (diff) | |
download | gsoc2013-evolution-70805074799774f97473dafbed444c8a0b3b68e1.tar.gz gsoc2013-evolution-70805074799774f97473dafbed444c8a0b3b68e1.tar.zst gsoc2013-evolution-70805074799774f97473dafbed444c8a0b3b68e1.zip |
Adapt addressbook/importers to the new ESource API.
-rw-r--r-- | addressbook/importers/Makefile.am | 1 | ||||
-rw-r--r-- | addressbook/importers/evolution-csv-importer.c | 36 | ||||
-rw-r--r-- | addressbook/importers/evolution-ldif-importer.c | 36 | ||||
-rw-r--r-- | addressbook/importers/evolution-vcard-importer.c | 36 |
4 files changed, 67 insertions, 42 deletions
diff --git a/addressbook/importers/Makefile.am b/addressbook/importers/Makefile.am index 3f2f1db38f..515370d38c 100644 --- a/addressbook/importers/Makefile.am +++ b/addressbook/importers/Makefile.am @@ -22,6 +22,7 @@ libevolution_addressbook_importers_la_LDFLAGS = -avoid-version $(NO_UNDEFINED) libevolution_addressbook_importers_la_LIBADD = \ $(top_builddir)/e-util/libeutil.la \ + $(top_builddir)/shell/libeshell.la \ $(top_builddir)/addressbook/util/libeabutil.la \ $(top_builddir)/widgets/misc/libemiscwidgets.la \ $(EVOLUTION_DATA_SERVER_LIBS) \ diff --git a/addressbook/importers/evolution-csv-importer.c b/addressbook/importers/evolution-csv-importer.c index 92290e8d1c..1f4c4dc87f 100644 --- a/addressbook/importers/evolution-csv-importer.c +++ b/addressbook/importers/evolution-csv-importer.c @@ -37,9 +37,11 @@ #include <libebook/e-book-client.h> #include <libedataserverui/e-client-utils.h> #include <libedataserverui/e-source-selector.h> +#include <libedataserver/e-source-address-book.h> #include <libebook/e-destination.h> +#include <shell/e-shell.h> #include <e-util/e-import.h> #include "evolution-addressbook-importers.h" @@ -770,31 +772,38 @@ csv_getwidget (EImport *ei, EImportTarget *target, EImportImporter *im) { + EShell *shell; GtkWidget *vbox, *selector; + ESourceRegistry *registry; ESource *primary; - ESourceList *source_list; - - /* FIXME Better error handling */ - if (!e_book_client_get_sources (&source_list, NULL)) - return NULL; + const gchar *extension_name; vbox = gtk_vbox_new (FALSE, FALSE); - selector = e_source_selector_new (source_list); - e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE); + shell = e_shell_get_default (); + registry = e_shell_get_registry (shell); + extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK; + selector = e_source_selector_new (registry, extension_name); + e_source_selector_set_show_toggles ( + E_SOURCE_SELECTOR (selector), FALSE); gtk_box_pack_start (GTK_BOX (vbox), selector, FALSE, TRUE, 6); primary = g_datalist_get_data(&target->data, "csv-source"); if (primary == NULL) { - primary = e_source_list_peek_source_any (source_list); - g_object_ref (primary); - g_datalist_set_data_full ( - &target->data, "csv-source", primary, - (GDestroyNotify) g_object_unref); + GList *list; + + list = e_source_registry_list_sources (registry, extension_name); + if (list != NULL) { + primary = g_object_ref (list->data); + g_datalist_set_data_full ( + &target->data, "csv-source", primary, + (GDestroyNotify) g_object_unref); + } + + g_list_free_full (list, (GDestroyNotify) g_object_unref); } e_source_selector_set_primary_selection ( E_SOURCE_SELECTOR (selector), primary); - g_object_unref (source_list); g_signal_connect ( selector, "primary_selection_changed", @@ -927,7 +936,6 @@ csv_import (EImport *ei, e_client_utils_open_new ( source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL, - e_client_utils_authenticate_handler, NULL, book_loaded_cb, gci); } diff --git a/addressbook/importers/evolution-ldif-importer.c b/addressbook/importers/evolution-ldif-importer.c index 1ba350a70f..c6f70fbca2 100644 --- a/addressbook/importers/evolution-ldif-importer.c +++ b/addressbook/importers/evolution-ldif-importer.c @@ -44,9 +44,11 @@ #include <libebook/e-book-client.h> #include <libedataserverui/e-client-utils.h> #include <libedataserverui/e-source-selector.h> +#include <libedataserver/e-source-address-book.h> #include <libebook/e-destination.h> +#include <shell/e-shell.h> #include <e-util/e-import.h> #include "evolution-addressbook-importers.h" @@ -568,31 +570,38 @@ ldif_getwidget (EImport *ei, EImportTarget *target, EImportImporter *im) { + EShell *shell; GtkWidget *vbox, *selector; + ESourceRegistry *registry; ESource *primary; - ESourceList *source_list; - - /* FIXME Better error handling */ - if (!e_book_client_get_sources (&source_list, NULL)) - return NULL; + const gchar *extension_name; vbox = gtk_vbox_new (FALSE, FALSE); - selector = e_source_selector_new (source_list); - e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE); + shell = e_shell_get_default (); + registry = e_shell_get_registry (shell); + extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK; + selector = e_source_selector_new (registry, extension_name); + e_source_selector_set_show_toggles ( + E_SOURCE_SELECTOR (selector), FALSE); gtk_box_pack_start (GTK_BOX (vbox), selector, FALSE, TRUE, 6); primary = g_datalist_get_data(&target->data, "ldif-source"); if (primary == NULL) { - primary = e_source_list_peek_source_any (source_list); - g_object_ref (primary); - g_datalist_set_data_full ( - &target->data, "ldif-source", primary, - (GDestroyNotify) g_object_unref); + GList *list; + + list = e_source_registry_list_sources (registry, extension_name); + if (list != NULL) { + primary = g_object_ref (list->data); + g_datalist_set_data_full ( + &target->data, "ldif-source", primary, + (GDestroyNotify) g_object_unref); + } + + g_list_free_full (list, (GDestroyNotify) g_object_unref); } e_source_selector_set_primary_selection ( E_SOURCE_SELECTOR (selector), primary); - g_object_unref (source_list); g_signal_connect ( selector, "primary_selection_changed", @@ -717,7 +726,6 @@ ldif_import (EImport *ei, e_client_utils_open_new ( source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL, - e_client_utils_authenticate_handler, NULL, book_loaded_cb, gci); } diff --git a/addressbook/importers/evolution-vcard-importer.c b/addressbook/importers/evolution-vcard-importer.c index 5094ab64ed..5fb0aaa7e5 100644 --- a/addressbook/importers/evolution-vcard-importer.c +++ b/addressbook/importers/evolution-vcard-importer.c @@ -38,10 +38,12 @@ #include <libebook/e-book-client.h> #include <libedataserverui/e-client-utils.h> #include <libedataserverui/e-source-selector.h> +#include <libedataserver/e-source-address-book.h> #include <util/eab-book-util.h> #include <libebook/e-destination.h> +#include <shell/e-shell.h> #include <e-util/e-import.h> #include <e-util/e-datetime-format.h> #include <misc/e-web-view-preview.h> @@ -406,31 +408,38 @@ vcard_getwidget (EImport *ei, EImportTarget *target, EImportImporter *im) { + EShell *shell; GtkWidget *vbox, *selector; + ESourceRegistry *registry; ESource *primary; - ESourceList *source_list; - - /* FIXME Better error handling */ - if (!e_book_client_get_sources (&source_list, NULL)) - return NULL; + const gchar *extension_name; vbox = gtk_vbox_new (FALSE, FALSE); - selector = e_source_selector_new (source_list); - e_source_selector_show_selection (E_SOURCE_SELECTOR (selector), FALSE); + shell = e_shell_get_default (); + registry = e_shell_get_registry (shell); + extension_name = E_SOURCE_EXTENSION_ADDRESS_BOOK; + selector = e_source_selector_new (registry, extension_name); + e_source_selector_set_show_toggles ( + E_SOURCE_SELECTOR (selector), FALSE); gtk_box_pack_start (GTK_BOX (vbox), selector, FALSE, TRUE, 6); primary = g_datalist_get_data(&target->data, "vcard-source"); if (primary == NULL) { - primary = e_source_list_peek_source_any (source_list); - g_object_ref (primary); - g_datalist_set_data_full ( - &target->data, "vcard-source", primary, - (GDestroyNotify) g_object_unref); + GList *list; + + list = e_source_registry_list_sources (registry, extension_name); + if (list != NULL) { + primary = g_object_ref (list->data); + g_datalist_set_data_full ( + &target->data, "vcard-source", primary, + (GDestroyNotify) g_object_unref); + } + + g_list_free_full (list, (GDestroyNotify) g_object_unref); } e_source_selector_set_primary_selection ( E_SOURCE_SELECTOR (selector), primary); - g_object_unref (source_list); g_signal_connect ( selector, "primary_selection_changed", @@ -575,7 +584,6 @@ vcard_import (EImport *ei, e_client_utils_open_new ( source, E_CLIENT_SOURCE_TYPE_CONTACTS, FALSE, NULL, - e_client_utils_authenticate_handler, NULL, book_loaded_cb, gci); } |