diff --git a/sflphone-client-gnome/src/contacts/addressbook/eds.c b/sflphone-client-gnome/src/contacts/addressbook/eds.c index 6330f8bab517973e9de2c42326ccc8f6f79ac9b2..7eda6b615535df8d43ce1b1ebea859a1c8123d5e 100644 --- a/sflphone-client-gnome/src/contacts/addressbook/eds.c +++ b/sflphone-client-gnome/src/contacts/addressbook/eds.c @@ -42,7 +42,7 @@ #include <pango/pango.h> #include "eds.h" #include <addressbook-config.h> -#include <libedataserverui/e-passwords.h> +#include <libedataserver/e-source.h> /** * Structure used to store search callback and data @@ -74,6 +74,7 @@ static const int pixbuf_size = 32; static gchar *current_uri = NULL; static gchar *current_uid = NULL; static gchar *current_name = "Default"; +static book_data_t *current_book = NULL; static EBookQueryTest current_test = E_BOOK_QUERY_BEGINS_WITH; @@ -539,12 +540,9 @@ fill_books_data () book_data->isdefault = FALSE; } - if (strcmp (absuri+strlen (absuri)-1, "/") == 0) - book_data->uri = g_strjoin ("", absuri, e_source_peek_relative_uri (source), NULL); - else - book_data->uri = g_strjoin ("/", absuri, e_source_peek_relative_uri (source), NULL); - + book_data->uri = g_strjoin ("", absuri, e_source_peek_relative_uri (source), NULL); + book_data->source = e_source_copy(source); // authenticate_source (book_data, source); books_data = g_slist_prepend (books_data, book_data); @@ -637,16 +635,13 @@ search_async_by_contacts (const char *query, int max_results, SearchAsyncHandler ERROR ("Addressbook: Error: Current addressbook uri not specified uri"); } - DEBUG ("Addressbook: Opening addressbook: %s", current_uri); - DEBUG ("Addressbook: Opening addressbook: %s", current_name); + DEBUG ("Addressbook: Opening addressbook: uri: %s", current_uri); + DEBUG ("Addressbook: Opening addressbook: name: %s", current_name); - if (strcmp (current_name, "Default") == 0) { - book = e_book_new_default_addressbook (&err); - } - else { - book = e_book_new_from_uri (current_uri, &err); - } + ESource *source = e_source_new_with_absolute_uri(current_name, current_uri); + + book = e_book_new(source, &err); if (err) { ERROR ("Addressbook: Error: Could not open new book: %s", err->message); @@ -701,6 +696,7 @@ set_current_addressbook (const gchar *name) current_uri = book_data->uri; current_uid = book_data->uid; current_name = book_data->name; + current_book = book_data; } } } diff --git a/sflphone-client-gnome/src/contacts/addressbook/eds.h b/sflphone-client-gnome/src/contacts/addressbook/eds.h index 26d54206bdb86de1b328add239134eefa00fb261..f82de597fe40af4ccb693ba97a5ebd245e107b47 100644 --- a/sflphone-client-gnome/src/contacts/addressbook/eds.h +++ b/sflphone-client-gnome/src/contacts/addressbook/eds.h @@ -72,6 +72,7 @@ typedef struct { gchar *uid; gchar *uri; gchar *name; + ESource *source; gboolean active; gboolean isdefault; } book_data_t;