diff --git a/sflphone-client-gnome/src/contacts/addressbook.c b/sflphone-client-gnome/src/contacts/addressbook.c index 60557d04f6533ac2b87e724d6570bb170c7251ae..d9b987c6340af544880f01ef9e74ded840bfd2b4 100644 --- a/sflphone-client-gnome/src/contacts/addressbook.c +++ b/sflphone-client-gnome/src/contacts/addressbook.c @@ -32,17 +32,21 @@ void addressbook_search(GtkEntry* entry) { - AddressBook_Config *addressbook_config; + gchar* query = gtk_entry_get_text(GTK_ENTRY (entry)); + if (strlen(query) >= 3) { - // Activate waiting layer - activateWaitingLayer(); + AddressBook_Config *addressbook_config; + + // Activate waiting layer + activateWaitingLayer(); - // Load the address book parameters - addressbook_config_load_parameters(&addressbook_config); + // Load the address book parameters + addressbook_config_load_parameters(&addressbook_config); + + // Start the asynchronous search as soon as we have an entry */ + search_async(gtk_entry_get_text(GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); - // Start the asynchronous search as soon as we have an entry */ - search_async(gtk_entry_get_text(GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, - addressbook_config); + } } /** @@ -84,6 +88,7 @@ addressbook_is_active() static void addressbook_config_books() { + gchar **config_book_uid; book_data_t *book_data; gchar **list; @@ -91,21 +96,21 @@ addressbook_config_books() // Retrieve list of books list = (gchar **) dbus_get_addressbook_list(); - if (list) - { - for (config_book_uid = list; *config_book_uid; config_book_uid++) - { + if (list) { + + for (config_book_uid = list; *config_book_uid; config_book_uid++) { + // Get corresponding book data book_data = books_get_book_data_by_uid(*config_book_uid); // If book_data exists - if (book_data != NULL) - { + if (book_data != NULL) { + book_data->active = TRUE; - } - } + } + } g_strfreev(list); - } + } // Update buttons update_actions (); diff --git a/sflphone-client-gnome/src/contacts/addressbook/eds.c b/sflphone-client-gnome/src/contacts/addressbook/eds.c index 4303109b741c4c7c9ccff471f1570246aa983629..289e5aea7485b34346cee19bff43cc28d3dffcea 100644 --- a/sflphone-client-gnome/src/contacts/addressbook/eds.c +++ b/sflphone-client-gnome/src/contacts/addressbook/eds.c @@ -275,23 +275,25 @@ pixbuf_from_contact(EContact *contact) static void eds_async_open_callback(EBook *book, EBookStatus status, gpointer closure) { - Open_Handler_And_Data *had = (Open_Handler_And_Data *) closure; + Open_Handler_And_Data *had = (Open_Handler_And_Data *) closure; - remaining_books_to_open--; + remaining_books_to_open--; - if (status == E_BOOK_ERROR_OK) - { - book_data_t *book_data = g_new(book_data_t, 1); - book_data->active = FALSE; - book_data->name = g_strdup(e_source_peek_name(e_book_get_source(book))); - book_data->uid = g_strdup(e_source_peek_uid(e_book_get_source(book))); - book_data->ebook = book; - books_data = g_slist_prepend(books_data, book_data); - had->handler(); + DEBUG("eds_async_open_callback remaining book to open: %i", remaining_books_to_open); + + if (status == E_BOOK_ERROR_OK) { + + book_data_t *book_data = g_new(book_data_t, 1); + book_data->active = FALSE; + book_data->name = g_strdup(e_source_peek_name(e_book_get_source(book))); + book_data->uid = g_strdup(e_source_peek_uid(e_book_get_source(book))); + book_data->ebook = book; + books_data = g_slist_prepend(books_data, book_data); + had->handler(); } - else - { - WARN("Got error %d when opening book", status); + else { + + WARN("Got error %d when opening book", status); } } @@ -302,14 +304,15 @@ void init(OpenAsyncHandler callback) { GSList *list, *l; - ESourceList *source_list; + ESourceList *source_list = NULL; remaining_books_to_open = 0; books_data = NULL; - source_list = e_source_list_new_for_gconf_default( - "/apps/evolution/addressbook/sources"); + source_list = e_source_list_new_for_gconf_default("/apps/evolution/addressbook/sources"); + if (source_list == NULL) { + DEBUG("Error could not initialize source list for addressbook"); return; } @@ -320,6 +323,7 @@ init(OpenAsyncHandler callback) for (l = list; l != NULL; l = l->next) { + ESourceGroup *group = l->data; GSList *sources = NULL, *m; sources = e_source_group_peek_sources(group); @@ -330,10 +334,12 @@ init(OpenAsyncHandler callback) if (book != NULL) { // Keep count of remaining books to open - remaining_books_to_open++; + DEBUG("init addressbook %i", remaining_books_to_open); + remaining_books_to_open++; + // Asynchronous open - e_book_async_open(book, TRUE, eds_async_open_callback, had); + e_book_async_open(book, FALSE, eds_async_open_callback, had); } } } diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c index 2044b4badd022dd103b60e32bad63cbbaf3c1fef..d84c6efcc4e6c168371daa1cec5fc0bbe7a9aff5 100644 --- a/sflphone-client-gnome/src/contacts/searchbar.c +++ b/sflphone-client-gnome/src/contacts/searchbar.c @@ -36,6 +36,8 @@ GdkPixbuf *missed_pixbuf = NULL; void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED) { + DEBUG("searchbar_entry_changed"); + if (active_calltree == contacts) { addressbook_search (entry); }