Add way to limit the number of headers visible.
authorJose Dapena Paz <jdapena@igalia.com>
Fri, 30 Oct 2009 11:29:58 +0000 (12:29 +0100)
committerJose Dapena Paz <jdapena@igalia.com>
Thu, 5 Nov 2009 11:02:47 +0000 (12:02 +0100)
src/widgets/modest-header-view.c
src/widgets/modest-header-view.h

index ba10051..2c47c9c 100644 (file)
@@ -174,6 +174,8 @@ struct _ModestHeaderViewPrivate {
 
        GdkColor active_color;
        GdkColor secondary_color;
 
        GdkColor active_color;
        GdkColor secondary_color;
+
+       gint show_latest;
 };
 
 typedef struct _HeadersCountChangedHelper HeadersCountChangedHelper;
 };
 
 typedef struct _HeadersCountChangedHelper HeadersCountChangedHelper;
@@ -608,6 +610,8 @@ modest_header_view_init (ModestHeaderView *obj)
 
        priv = MODEST_HEADER_VIEW_GET_PRIVATE(obj);
 
 
        priv = MODEST_HEADER_VIEW_GET_PRIVATE(obj);
 
+       priv->show_latest = 0;
+
        priv->folder  = NULL;
        priv->is_outbox = FALSE;
 
        priv->folder  = NULL;
        priv->is_outbox = FALSE;
 
@@ -1134,6 +1138,7 @@ modest_header_view_set_folder_intern (ModestHeaderView *self,
        priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
 
        headers = TNY_LIST (tny_gtk_header_list_model_new ());
        priv = MODEST_HEADER_VIEW_GET_PRIVATE(self);
 
        headers = TNY_LIST (tny_gtk_header_list_model_new ());
+       tny_gtk_header_list_model_set_show_latest (TNY_GTK_HEADER_LIST_MODEL (headers), priv->show_latest);
 
        /* Start the monitor in the callback of the
           tny_gtk_header_list_model_set_folder call. It's crucial to
 
        /* Start the monitor in the callback of the
           tny_gtk_header_list_model_set_folder call. It's crucial to
@@ -2484,3 +2489,34 @@ modest_header_view_get_header_at_pos (ModestHeaderView *header_view,
 
        return header;
 }
 
        return header;
 }
+
+void
+modest_header_view_set_show_latest (ModestHeaderView *header_view,
+                                   gint show_latest)
+{
+       ModestHeaderViewPrivate *priv;
+       GtkTreeModel *sortable, *filter, *model;
+
+       priv = MODEST_HEADER_VIEW_GET_PRIVATE (header_view);
+       priv->show_latest = show_latest;
+
+       sortable = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+       if (GTK_IS_TREE_MODEL_SORT (sortable)) {
+               filter = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (sortable));
+               if (GTK_IS_TREE_MODEL_FILTER (filter)) {
+                       model = gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (filter));
+                       if (model) {
+                               tny_gtk_header_list_model_set_show_latest (TNY_GTK_HEADER_LIST_MODEL (model), priv->show_latest);
+                       }
+               }
+       }
+}
+
+gint
+modest_header_view_get_show_latest (ModestHeaderView *header_view)
+{
+       ModestHeaderViewPrivate *priv;
+
+       priv = MODEST_HEADER_VIEW_GET_PRIVATE (header_view);
+       return priv->show_latest;
+}
index be9b88c..f620640 100644 (file)
@@ -467,6 +467,11 @@ TnyHeader* modest_header_view_get_header_at_pos (ModestHeaderView *header_view,
                                                 gint initial_x,
                                                 gint initial_y);
 
                                                 gint initial_x,
                                                 gint initial_y);
 
+void modest_header_view_set_show_latest (ModestHeaderView *header_view,
+                                        gint show_latest);
+
+gint modest_header_view_get_show_latest (ModestHeaderView *header_view);
+
 G_END_DECLS
 
 
 G_END_DECLS