Enable live search in accounts window
[modest] / src / hildon2 / modest-accounts-window.c
index 03630da..aba2350 100644 (file)
@@ -36,8 +36,7 @@
 #include <modest-signal-mgr.h>
 #include <modest-runtime.h>
 #include <modest-platform.h>
-#include <hildon/hildon-program.h>
-#include <hildon/hildon-button.h>
+#include <hildon/hildon.h>
 #include <modest-maemo-utils.h>
 #include <modest-icon-names.h>
 #include <modest-defs.h>
@@ -48,6 +47,7 @@
 #include <modest-ui-constants.h>
 #include <modest-account-mgr-helpers.h>
 #include <modest-mailboxes-window.h>
+#include <modest-text-utils.h>
 
 
 /* 'private'/'protected' functions */
@@ -338,6 +338,26 @@ modest_accounts_window_new_real (void)
        return MODEST_WINDOW(self);
 }
 
+static gboolean
+live_search_visible_func (GtkTreeModel *model,
+                         GtkTreeIter  *iter,
+                         gchar        *text,
+                         gpointer      data)
+{
+       gchar *display_name;
+       gboolean result;
+       gtk_tree_model_get(model, iter, 
+                          1, 
+                          &display_name, -1);
+
+       result = modest_text_utils_live_search_find (display_name, text);
+
+       g_free (display_name);
+
+       return result;
+}
+
+
 ModestWindow *
 modest_accounts_window_new (void)
 {
@@ -345,6 +365,9 @@ modest_accounts_window_new (void)
        ModestWindow *self;
        ModestAccountsWindowPrivate *priv = NULL;
        HildonProgram *app;
+#ifdef MODEST_TOOLKIT_HILDON2
+       GtkWidget *live_search;
+#endif
 
        if (pre_created_accounts_window) {
                self = MODEST_WINDOW (pre_created_accounts_window);
@@ -354,6 +377,16 @@ modest_accounts_window_new (void)
        }
        priv = MODEST_ACCOUNTS_WINDOW_GET_PRIVATE(self);
        priv->account_view  = GTK_WIDGET (modest_account_view_new (modest_runtime_get_account_mgr ()));
+#ifdef MODEST_TOOLKIT_HILDON2
+       live_search = hildon_live_search_new ();
+       hildon_live_search_set_filter (HILDON_LIVE_SEARCH (live_search),
+                                      GTK_TREE_MODEL_FILTER (modest_account_view_get_filter (MODEST_ACCOUNT_VIEW (priv->account_view))));
+       hildon_live_search_set_visible_func (HILDON_LIVE_SEARCH (live_search), live_search_visible_func, self, NULL);
+       hildon_live_search_set_text_column (HILDON_LIVE_SEARCH (live_search),
+                                           1);
+       hildon_live_search_widget_hook (HILDON_LIVE_SEARCH (live_search), GTK_WIDGET (self), priv->account_view);
+       gtk_box_pack_start (GTK_BOX (priv->box), live_search, FALSE, FALSE, 0);
+#endif
 
        action_area_box = hildon_tree_view_get_action_area_box (GTK_TREE_VIEW (priv->account_view));
        gtk_box_pack_start (GTK_BOX (action_area_box), priv->new_message_button, TRUE, TRUE, 0);