From a9b21aff6a7af9154f265db57c793a6bbadbab3b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Dapena=20Paz?= Date: Tue, 2 Feb 2010 17:57:37 +0100 Subject: [PATCH] Move live search support from modest accounts window to view. --- src/widgets/modest-account-view.c | 36 ++++++++++++++++++++++++++++++++++ src/widgets/modest-account-view.h | 12 ++++++++++++ src/widgets/modest-accounts-window.c | 26 +----------------------- 3 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/widgets/modest-account-view.c b/src/widgets/modest-account-view.c index 6cc9271..6542c0b 100644 --- a/src/widgets/modest-account-view.c +++ b/src/widgets/modest-account-view.c @@ -44,6 +44,7 @@ #include #ifdef MODEST_TOOLKIT_HILDON2 #include +#include #endif #ifdef MODEST_USE_LIBTIME #include @@ -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 diff --git a/src/widgets/modest-account-view.h b/src/widgets/modest-account-view.h index c6a0bc9..e811e29 100644 --- a/src/widgets/modest-account-view.h +++ b/src/widgets/modest-account-view.h @@ -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__ */ diff --git a/src/widgets/modest-accounts-window.c b/src/widgets/modest-accounts-window.c index 8569788..581545b 100644 --- a/src/widgets/modest-accounts-window.c +++ b/src/widgets/modest-accounts-window.c @@ -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 -- 1.7.9.5