From: Jose Dapena Paz Date: Thu, 23 Apr 2009 09:51:39 +0000 (+0000) Subject: Add API for making folder view avoid forcing refreshes. X-Git-Tag: git_migration_finished~29 X-Git-Url: http://git.maemo.org/git/?p=modest;a=commitdiff_plain;h=a3b26a8ec27a717e6a4c94824531b51e526281ba Add API for making folder view avoid forcing refreshes. pmo-trunk-r9070 --- diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index cfe7ea8..e20acb5 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -236,6 +236,7 @@ struct _ModestFolderViewPrivate { ModestFolderViewFilter filter; TnyFolderStoreQuery *query; + gboolean do_refresh; guint timer_expander; gchar *local_account_name; @@ -1259,6 +1260,7 @@ modest_folder_view_init (ModestFolderView *obj) priv->timer_expander = 0; priv->account_store = NULL; priv->query = NULL; + priv->do_refresh = TRUE; priv->style = MODEST_FOLDER_VIEW_STYLE_SHOW_ALL; priv->cur_folder_store = NULL; priv->visible_account_id = NULL; @@ -1766,6 +1768,12 @@ modest_folder_view_on_map (ModestFolderView *self, GtkWidget* modest_folder_view_new (TnyFolderStoreQuery *query) { + return modest_folder_view_new_full (query, TRUE); +} + +GtkWidget* +modest_folder_view_new_full (TnyFolderStoreQuery *query, gboolean do_refresh) +{ GObject *self; ModestFolderViewPrivate *priv; GtkTreeSelection *sel; @@ -1780,6 +1788,8 @@ modest_folder_view_new (TnyFolderStoreQuery *query) if (query) priv->query = g_object_ref (query); + priv->do_refresh = do_refresh; + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(self)); priv->changed_signal = g_signal_connect (sel, "changed", G_CALLBACK (on_selection_changed), self); @@ -2246,8 +2256,12 @@ modest_folder_view_update_model (ModestFolderView *self, /* FIXME: the local accounts are not shown when the query selects only the subscribed folders */ #ifdef MODEST_TOOLKIT_HILDON2 + TnyGtkFolderListStoreFlags flags; + flags = TNY_GTK_FOLDER_LIST_STORE_FLAG_SHOW_PATH; + if (!priv->do_refresh) + flags &= TNY_GTK_FOLDER_LIST_STORE_FLAG_NO_REFRESH; model = tny_gtk_folder_list_store_new_with_flags (NULL, - TNY_GTK_FOLDER_LIST_STORE_FLAG_SHOW_PATH); + flags); tny_gtk_folder_list_store_set_path_separator (TNY_GTK_FOLDER_LIST_STORE (model), MODEST_FOLDER_PATH_SEPARATOR); #else diff --git a/src/widgets/modest-folder-view.h b/src/widgets/modest-folder-view.h index e9dab7b..3c475ff 100644 --- a/src/widgets/modest-folder-view.h +++ b/src/widgets/modest-folder-view.h @@ -125,6 +125,17 @@ GType modest_folder_view_get_type (void) G_GNUC_CONST; GtkWidget* modest_folder_view_new (TnyFolderStoreQuery *query); /** + * modest_folder_view_new_full: + * @query: a #TnyFolderStoreQuery that specifies the folders to show + * @do_refresh: do auto refresh on loading (may be slow) + * + * create a new #ModestFolderView instance + * + * Returns: a new #GtkWidget (a #GtkTreeView subclass) + */ +GtkWidget* modest_folder_view_new_full (TnyFolderStoreQuery *query, gboolean do_refresh); + +/** * modest_folder_view_set_title: * @self: a ModestFolderView instance * @title: the new title