From 9e78fcdbddb136955b1ad6bbcea59ba74360172f Mon Sep 17 00:00:00 2001 From: Alexandre Savard <alexandre.savard@savoirfairelinux.com> Date: Fri, 13 Aug 2010 11:43:35 -0400 Subject: [PATCH] [#3850] Make addressbook queries only when hitting enter --- .../src/contacts/addressbook.c | 19 ------------------- .../src/contacts/searchbar.c | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/sflphone-client-gnome/src/contacts/addressbook.c b/sflphone-client-gnome/src/contacts/addressbook.c index 44c3f4edbe..c0bda1dcd0 100644 --- a/sflphone-client-gnome/src/contacts/addressbook.c +++ b/sflphone-client-gnome/src/contacts/addressbook.c @@ -53,27 +53,8 @@ addressbook_search (GtkEntry* entry) addressbook_config_load_parameters (&addressbook_config); - // search_by_contacts(gtk_entry_get_text(GTK_ENTRY(entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); search_async_by_contacts (gtk_entry_get_text (GTK_ENTRY (entry)), addressbook_config->max_results, &handler_async_search, addressbook_config); - // addressbook_config_books - - /* - if (strlen(query) >= 3) { - - AddressBook_Config *addressbook_config; - - // Activate waiting layer - activateWaitingLayer(); - - // 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); - - } - */ } diff --git a/sflphone-client-gnome/src/contacts/searchbar.c b/sflphone-client-gnome/src/contacts/searchbar.c index 76fabb4df7..4f62b64bb0 100644 --- a/sflphone-client-gnome/src/contacts/searchbar.c +++ b/sflphone-client-gnome/src/contacts/searchbar.c @@ -46,12 +46,21 @@ GdkPixbuf *incoming_pixbuf = NULL; GdkPixbuf *outgoing_pixbuf = NULL; GdkPixbuf *missed_pixbuf = NULL; + +void searchbar_addressbook_activated (GtkEntry *entry, gchar *arg1 UNUSED, gpointer data UNUSED) +{ + DEBUG ("Searchbar: Entry activated"); + + addressbook_search (entry); +} + void searchbar_entry_changed (GtkEntry* entry, gchar* arg1 UNUSED, gpointer data UNUSED) { - DEBUG ("searchbar_entry_changed"); + DEBUG ("Searchbar: Entry changed"); if (active_calltree == contacts) { - addressbook_search (entry); + // Search made only when text entry is activated + // addressbook_search (entry); } else if (active_calltree == history) { history_search (HistorySearchType); } @@ -304,6 +313,9 @@ GtkWidget* contacts_searchbar_new () sexy_icon_entry_add_clear_button (SEXY_ICON_ENTRY (searchbox)); #endif + gtk_entry_set_activates_default (GTK_ENTRY (searchbox), TRUE); + g_signal_connect_after (GTK_ENTRY (searchbox), "activate", G_CALLBACK (searchbar_addressbook_activated), NULL); + g_signal_connect_after (GTK_ENTRY (searchbox), "changed", G_CALLBACK (searchbar_entry_changed), NULL); g_signal_connect_after (G_OBJECT (searchbox), "focus-in-event", @@ -311,6 +323,7 @@ GtkWidget* contacts_searchbar_new () g_signal_connect_after (G_OBJECT (searchbox), "focus-out-event", G_CALLBACK (focus_on_searchbar_out), NULL); + gtk_box_pack_start (GTK_BOX (ret), searchbox, TRUE, TRUE, 0); return ret; -- GitLab