return retval;
}
+
+gboolean
+modest_text_utils_live_search_find (const gchar *haystack, const gchar *needles)
+{
+ gchar *haystack_fold;
+ gchar *needles_fold;
+ gchar **needle, **current;
+ gboolean match;
+
+ match = FALSE;
+
+ haystack_fold = g_utf8_casefold (haystack, -1);
+ needles_fold = g_utf8_casefold (needles, -1);
+
+ needle = g_strsplit (needles_fold, " ", -1);
+
+ current = needle;
+ while (current && *current != NULL) {
+
+ if (g_strstr_len (haystack_fold, -1, *current) != NULL) {
+ match = TRUE;
+ } else {
+ match = FALSE;
+ break;
+ }
+ current++;
+ }
+
+ g_strfreev (needle);
+ g_free (needles_fold);
+ g_free (haystack_fold);
+
+ return match;
+}
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)
{
ModestAccountsWindowPrivate *priv = NULL;
#ifdef MODEST_TOOLKIT_HILDON2
HildonProgram *app;
+ GtkWidget *live_search;
#endif
if (pre_created_accounts_window) {
}
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
#ifdef MODEST_TOOLKIT_HILDON2
GtkWidget *action_area_box;