diff --git a/sflphone-gtk/src/actions.c b/sflphone-gtk/src/actions.c index f3275f017b2b899ed41b7730c57296f4f258cfbe..7443b5ff55ed7909c18f4feffe06b9a39bced6bc 100644 --- a/sflphone-gtk/src/actions.c +++ b/sflphone-gtk/src/actions.c @@ -230,9 +230,9 @@ gboolean sflphone_init() else { dbus_register(getpid(), "Gtk+ Client"); - current_calls = calltab_init(); - history = calltab_init(); - contacts = calltab_init(); + current_calls = calltab_init(NULL); + history = calltab_init("history"); + contacts = calltab_init("contacts"); //if(SHOW_SEARCHBAR) histfilter = create_filter(GTK_TREE_MODEL(history->store)); init(); account_list_init (); diff --git a/sflphone-gtk/src/calltab.c b/sflphone-gtk/src/calltab.c index d0ac6954d6f4a5936c290e68b52239c59e1fc166..604f85317bfa7412f013bad7cfdcd20325ed7048 100644 --- a/sflphone-gtk/src/calltab.c +++ b/sflphone-gtk/src/calltab.c @@ -24,7 +24,7 @@ #include <calltab.h> calltab_t* -calltab_init() +calltab_init(gchar* searchbar_type) { calltab_t* ret; @@ -37,8 +37,9 @@ calltab_init() ret->callQueue = NULL; ret->selectedCall = NULL; - create_call_tree(ret); + create_call_tree(ret, searchbar_type); call_list_init(ret); + return ret; } diff --git a/sflphone-gtk/src/calltab.h b/sflphone-gtk/src/calltab.h index d3b85ca977f85f159ae9e13dafb44d1a25f09d9b..ce31082f9e96bf4e3576dbc831a9b6c5c1ed8ce2 100644 --- a/sflphone-gtk/src/calltab.h +++ b/sflphone-gtk/src/calltab.h @@ -25,6 +25,6 @@ //GtkTreeModel* histfilter; -calltab_t* calltab_init(); +calltab_t* calltab_init(gchar* searchbar_type); #endif diff --git a/sflphone-gtk/src/calltree.c b/sflphone-gtk/src/calltree.c index f0f1fdfdeca03d9fb872b338d7771a7d57edfc3a..dc030e5142285573ea6762231c6506a208d50925 100644 --- a/sflphone-gtk/src/calltree.c +++ b/sflphone-gtk/src/calltree.c @@ -604,7 +604,7 @@ reset_call_tree (calltab_t* tab) } void -create_call_tree (calltab_t* tab) + create_call_tree (calltab_t* tab, gchar* searchbar_type) { GtkWidget *sw; GtkCellRenderer *rend; @@ -665,13 +665,25 @@ create_call_tree (calltab_t* tab) NULL); gtk_box_pack_start(GTK_BOX(tab->tree), sw, TRUE, TRUE, 0); + + if(searchbar_type){ + + create_searchbar(tab,searchbar_type); + gtk_box_pack_start(GTK_BOX(tab->tree), tab->searchbar, FALSE, TRUE, 0); + + } gtk_widget_show(tab->tree); + + // gtk_widget_show(tab->searchbar); + //toolbar_update_buttons(); } + + void update_call_tree_remove (calltab_t* tab, call_t * c) { @@ -826,6 +838,35 @@ update_call_tree (calltab_t* tab, call_t * c) toolbar_update_buttons(); } +void +create_searchbar(calltab_t* tab, gchar* searchbar_type) +{ + // g_strcmp0 returns 0 if str1 == str2 + if(g_strcmp0(searchbar_type,"history") == 0){ + + GtkTreeIter *iter; + + GtkTreeModel *model = (GtkTreeModel*)history->store; + + // create_filter (model); + + + // gtk_tree_model_get_iter_first (history->store, iter); + + // gtk_tree_model_get_iter (model, &iter, NULL); + + // create_filter (model); + + // is_visible(model, iter); + + tab->searchbar = create_filter_entry(); + } + + else if(g_strcmp0(searchbar_type,"contacts") == 0) + tab->searchbar = create_filter_entry(); + +} + void update_call_tree_add (calltab_t* tab, call_t * c) { diff --git a/sflphone-gtk/src/calltree.h b/sflphone-gtk/src/calltree.h index f307116040084dc7f11aaca0681bf7feb7e41b9c..2b78d20badcc085e1f1d00a62b92a233a6074b7b 100644 --- a/sflphone-gtk/src/calltree.h +++ b/sflphone-gtk/src/calltree.h @@ -41,7 +41,7 @@ void free_call_t (call_t *c); * Create a new widget calltree * @return GtkWidget* A new widget */ -void create_call_tree(calltab_t* tab); +void create_call_tree(calltab_t* tab, gchar* searchbar_type); /** * Update the toolbar's buttons state, according to the call state @@ -73,8 +73,14 @@ void reset_call_tree (calltab_t* tab); */ GtkWidget * create_toolbar(); +GtkWidget * create_filter_entry(); + +GtkTreeModel * create_filter (GtkTreeModel* child); + void display_calltree (calltab_t *tab); +void create_searchbar(calltab_t* tab, gchar* searchbar_type); + void create_new_entry_in_contactlist (gchar *contact_name, gchar *contact_phone, contact_type_t type, GdkPixbuf *photo); #endif diff --git a/sflphone-gtk/src/mainwindow.c b/sflphone-gtk/src/mainwindow.c index 2d73879aa32603a1dec262aa5460de2ec3fb1c85..70a6f53a4b0945c8fa7fba266d215853f4562815 100644 --- a/sflphone-gtk/src/mainwindow.c +++ b/sflphone-gtk/src/mainwindow.c @@ -135,6 +135,10 @@ create_main_window () gtk_box_pack_start (GTK_BOX (vbox), history->tree, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); gtk_box_pack_start (GTK_BOX (vbox), contacts->tree, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); + // gtk_box_pack_start (GTK_BOX (vbox), current_calls->searchbar, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); + // gtk_box_pack_start (GTK_BOX (vbox), history->searchbar, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); + // gtk_box_pack_start (GTK_BOX (vbox), contacts ->searchbar, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); + gtk_box_pack_start (GTK_BOX (vbox), subvbox, FALSE /*expand*/, FALSE /*fill*/, 0 /*padding*/); diff --git a/sflphone-gtk/src/menus.c b/sflphone-gtk/src/menus.c index 6a0a17ea7ed6685e93f951995c705dc5e2b8dc08..fa9f1c0848fb4486a9ea7b063414b16f0edcc242 100644 --- a/sflphone-gtk/src/menus.c +++ b/sflphone-gtk/src/menus.c @@ -120,6 +120,7 @@ help_about ( void * foo UNUSED) "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>", "Yun Liu <yun.liu@savoirfairelinux.com>" + "Alexandre Savard <alexandre.savard@savoirfairelinux.com>", "Jean-Philippe Barrette-LaPierre", "Laurielle Lea", NULL}; diff --git a/sflphone-gtk/view b/sflphone-gtk/view new file mode 100644 index 0000000000000000000000000000000000000000..1552fda6f631d91a7db39092156ab4fc51ff47b1 --- /dev/null +++ b/sflphone-gtk/view @@ -0,0 +1,6 @@ +src/actions.c: if(SHOW_SEARCHBAR) histfilter = create_filter(GTK_TREE_MODEL(history->store)); +src/calltree.c: gtk_widget_hide(history->tree); +src/calltree.c: gtk_widget_show(history->tree); +src/mainwindow.c: gtk_box_pack_start (GTK_BOX (vbox), history->tree, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/); +src/mainwindow.c: gtk_widget_hide(history->tree); +src/mainwindow.c: gtk_tree_view_set_model(GTK_TREE_VIEW(history->view), GTK_TREE_MODEL(histfilter));