Move live search support from modest accounts window to view.
authorJosé Dapena Paz <jdapena@igalia.com>
Tue, 2 Feb 2010 16:57:37 +0000 (17:57 +0100)
committerJosé Dapena Paz <jdapena@igalia.com>
Tue, 2 Feb 2010 17:17:34 +0000 (18:17 +0100)
src/widgets/modest-account-view.c
src/widgets/modest-account-view.h
src/widgets/modest-accounts-window.c

index 6cc9271..6542c0b 100644 (file)
@@ -44,6 +44,7 @@
 #include <modest-ui-constants.h>
 #ifdef MODEST_TOOLKIT_HILDON2
 #include <hildon/hildon-defines.h>
+#include <hildon/hildon.h>
 #endif
 #ifdef MODEST_USE_LIBTIME
 #include <clockd/libtime.h>
@@ -901,3 +902,38 @@ modest_account_view_get_filter (ModestAccountView *self)
 
        return priv->filter;
 }
+
+#ifdef MODEST_TOOLKIT_HILDON2
+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, 
+                          MODEST_ACCOUNT_VIEW_DISPLAY_NAME_COLUMN,
+                          &display_name, -1);
+
+       result = modest_text_utils_live_search_find (display_name, text);
+
+       g_free (display_name);
+
+       return result;
+}
+
+GtkWidget *
+modest_account_view_setup_live_search (ModestAccountView *self)
+{
+       GtkWidget *live_search;
+       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 (self))));
+       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),
+                                           MODEST_ACCOUNT_VIEW_DISPLAY_NAME_COLUMN);
+
+       return live_search;
+}
+#endif
index c6a0bc9..e811e29 100644 (file)
@@ -153,6 +153,18 @@ GtkTreeModel *modest_account_view_get_model (ModestAccountView *self);
  */
 GtkTreeModel *modest_account_view_get_filter (ModestAccountView *self);
 
+#ifdef MODEST_TOOLKIT_HILDON2
+/**
+ * modest_account_view_setup_live_search:
+ * @self: a #ModestAccountView
+ *
+ * obtains a properly set up #HildonLiveSearch for @self
+ *
+ * Returns: a #HildonLiveSearch
+ */
+GtkWidget *modest_account_view_setup_live_search (ModestAccountView *self);
+#endif
+
 G_END_DECLS
 
 #endif /* __MODEST_ACCOUNT_VIEW_H__ */
index 8569788..581545b 100644 (file)
@@ -359,25 +359,6 @@ 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)
@@ -398,12 +379,7 @@ 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);
+       live_search = modest_account_view_setup_live_search (MODEST_ACCOUNT_VIEW (priv->account_view));
        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