diff --git a/sflphone-gtk/src/config/addressbook-config.c b/sflphone-gtk/src/config/addressbook-config.c index d1b71d1bb9aace01576e89e838d82a34bb383af1..9851ce64338fb884ca94fbcc4610ea90508bf913 100644 --- a/sflphone-gtk/src/config/addressbook-config.c +++ b/sflphone-gtk/src/config/addressbook-config.c @@ -158,8 +158,6 @@ addressbook_config_book_active_toggled( // Toggle active value active = !active; - printf("-> change active to : %d for %s\n", active, uid); - // Store value gtk_list_store_set(GTK_LIST_STORE(model), &iter, COLUMN_BOOK_ACTIVE, active, -1); diff --git a/sflphone-gtk/src/contacts/addressbook.c b/sflphone-gtk/src/contacts/addressbook.c index dfb71109cbb2f8da8f455cfef69ec50c3e4d06d3..c9fa4dcbcf230668ed5e21958886d3dcaebcce00 100644 --- a/sflphone-gtk/src/contacts/addressbook.c +++ b/sflphone-gtk/src/contacts/addressbook.c @@ -19,6 +19,7 @@ #include <addressbook.h> #include <searchbar.h> +#include <toolbar.h> #include <string.h> #include <addressbook-config.h> @@ -45,6 +46,15 @@ addressbook_search(GtkEntry* entry) addressbook_config); } +/** + * Return addressbook state + */ +gboolean +addressbook_is_ready() +{ + return books_ready(); +} + /** * Asynchronous open callback. * Used to handle activation of books. @@ -69,12 +79,14 @@ addressbook_config_books() // If book_data exists if (book_data != NULL) { - printf("activating %s\n", *config_book_uid); book_data->active = TRUE; } } g_strfreev(list); } + + // Update buttons + toolbar_update_buttons(); } /** diff --git a/sflphone-gtk/src/contacts/addressbook.h b/sflphone-gtk/src/contacts/addressbook.h index 2128ce33d43677248703be34a8b604604b017edf..f83aefaf5bf6a93f1ec61c8e51e6c1dce87c75ba 100644 --- a/sflphone-gtk/src/contacts/addressbook.h +++ b/sflphone-gtk/src/contacts/addressbook.h @@ -29,6 +29,12 @@ #include <gtk/gtk.h> #include <addressbook/eds.h> +/** + * Return addressbook state + */ +gboolean +addressbook_is_ready(); + /** * Perform a search in addressbook */ diff --git a/sflphone-gtk/src/contacts/addressbook/eds.c b/sflphone-gtk/src/contacts/addressbook/eds.c index cb212e8630771a6416895061550d32c419102a2a..ec847f53028d46f991d5a5fec3bba20a259abae5 100644 --- a/sflphone-gtk/src/contacts/addressbook/eds.c +++ b/sflphone-gtk/src/contacts/addressbook/eds.c @@ -88,7 +88,7 @@ free_hit(Hit *h) gboolean books_ready() { - return (g_slist_length(books_data) == 0); + return (g_slist_length(books_data) > 0); } /** @@ -258,8 +258,6 @@ eds_async_open_callback(EBook *book, EBookStatus status, gpointer closure) remaining_books_to_open--; - printf("async open !\n"); - if (status == E_BOOK_ERROR_OK) { book_data_t *book_data = g_new(book_data_t, 1); diff --git a/sflphone-gtk/src/toolbar.c b/sflphone-gtk/src/toolbar.c index 1e6b6bc5d083737c67af3d076c2402035157aa44..4c03d5ea6649609a44fc3fb5ffcc5b337a474d7a 100644 --- a/sflphone-gtk/src/toolbar.c +++ b/sflphone-gtk/src/toolbar.c @@ -18,6 +18,7 @@ */ #include <toolbar.h> +#include <contacts/addressbook.h> static gboolean is_inserted( GtkWidget* button ) @@ -251,6 +252,7 @@ GtkWidget *create_toolbar () gtk_widget_set_tooltip_text(GTK_WIDGET(contactButton), _("Address book")); #endif gtk_tool_button_set_label (GTK_TOOL_BUTTON (contactButton), _("Address book")); + gtk_widget_set_state( GTK_WIDGET(contactButton), GTK_STATE_INSENSITIVE); g_signal_connect (G_OBJECT (contactButton), "toggled", G_CALLBACK (toggle_button_cb), contacts); gtk_toolbar_insert(GTK_TOOLBAR(ret), GTK_TOOL_ITEM(contactButton), -1); @@ -383,4 +385,11 @@ toolbar_update_buttons () gtk_widget_set_sensitive( GTK_WIDGET(callButton), FALSE); } } + + // Activate addressbook button if needed + // TODO : should be moved in a better place + if(addressbook_is_ready()) + gtk_widget_set_sensitive( GTK_WIDGET(contactButton), TRUE); + else + gtk_widget_set_sensitive( GTK_WIDGET(contactButton), FALSE); }