}
static gboolean
+current_folder_needs_filtering (ModestHeaderViewPrivate *priv)
+{
+ /* For the moment we only need to filter outbox */
+ return priv->is_outbox;
+}
+
+static gboolean
filter_row (GtkTreeModel *model,
GtkTreeIter *iter,
gpointer user_data)
}
if (visible && (priv->filter & MODEST_HEADER_VIEW_FILTER_DELETABLE)) {
- if (priv->is_outbox &&
+ if (current_folder_needs_filtering (priv) &&
modest_tny_all_send_queues_get_msg_status (header) == MODEST_TNY_SEND_QUEUE_SENDING) {
visible = FALSE;
goto frees;
}
if (visible && (priv->filter & MODEST_HEADER_VIEW_FILTER_MOVEABLE)) {
- if (priv->is_outbox &&
+ if (current_folder_needs_filtering (priv) &&
modest_tny_all_send_queues_get_msg_status (header) == MODEST_TNY_SEND_QUEUE_SENDING) {
visible = FALSE;
goto frees;
void
modest_header_view_refilter (ModestHeaderView *header_view)
{
- GtkTreeModel *model = NULL;
+ GtkTreeModel *model, *sortable = NULL;
ModestHeaderViewPrivate *priv = NULL;
g_return_if_fail (header_view && MODEST_IS_HEADER_VIEW (header_view));
priv = MODEST_HEADER_VIEW_GET_PRIVATE(header_view);
/* Hide cut headers */
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
- if (GTK_IS_TREE_MODEL_FILTER (model)) {
- priv->status = HEADER_VIEW_INIT;
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (model));
+ sortable = gtk_tree_view_get_model (GTK_TREE_VIEW (header_view));
+ if (GTK_IS_TREE_MODEL_SORT (sortable)) {
+ model = gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (sortable));
+ if (GTK_IS_TREE_MODEL_FILTER (model)) {
+ priv->status = HEADER_VIEW_INIT;
+ gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (model));
+ }
}
}
ModestHeaderViewFilter filter)
{
ModestHeaderViewPrivate *priv;
- GtkTreeModel *filter_model;
g_return_if_fail (MODEST_IS_HEADER_VIEW (self));
priv = MODEST_HEADER_VIEW_GET_PRIVATE (self);
priv->filter |= filter;
- filter_model = gtk_tree_view_get_model (GTK_TREE_VIEW (self));
- if (GTK_IS_TREE_MODEL_FILTER(filter_model)) {
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter_model));
- }
+ if (current_folder_needs_filtering (priv))
+ modest_header_view_refilter (self);
}
void
ModestHeaderViewFilter filter)
{
ModestHeaderViewPrivate *priv;
- GtkTreeModel *filter_model;
g_return_if_fail (MODEST_IS_HEADER_VIEW (self));
priv = MODEST_HEADER_VIEW_GET_PRIVATE (self);
priv->filter &= ~filter;
- filter_model = gtk_tree_view_get_model (GTK_TREE_VIEW (self));
- if (GTK_IS_TREE_MODEL_FILTER(filter_model)) {
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (filter_model));
- }
+ if (current_folder_needs_filtering (priv))
+ modest_header_view_refilter (self);
}
static void
pango_attr_list_insert (attr_list, attr);
g_object_set (G_OBJECT (priv->renderer_address),
- "foreground-gdk", priv->secondary_color,
+ "foreground-gdk", &(priv->secondary_color),
"foreground-set", TRUE,
"attributes", attr_list,
NULL);
g_object_set (G_OBJECT (priv->renderer_date_status),
- "foreground-gdk", priv->secondary_color,
+ "foreground-gdk", &(priv->secondary_color),
"foreground-set", TRUE,
"attributes", attr_list,
NULL);
pango_attr_list_unref (attr_list);
} else {
g_object_set (G_OBJECT (priv->renderer_address),
- "foreground-gdk", priv->secondary_color,
+ "foreground-gdk", &(priv->secondary_color),
"foreground-set", TRUE,
"scale", PANGO_SCALE_SMALL,
"scale-set", TRUE,
NULL);
g_object_set (G_OBJECT (priv->renderer_date_status),
- "foreground-gdk", priv->secondary_color,
+ "foreground-gdk", &(priv->secondary_color),
"foreground-set", TRUE,
"scale", PANGO_SCALE_SMALL,
"scale-set", TRUE,
priv->active_color = style_active_color;
#ifdef MODEST_TOOLKIT_HILDON2
g_object_set_data (G_OBJECT (priv->renderer_subject), BOLD_IS_ACTIVE_COLOR, GINT_TO_POINTER (TRUE));
- g_object_set_data_full (G_OBJECT (priv->renderer_subject), ACTIVE_COLOR, new_color, (GDestroyNotify) gdk_color_free);
+ g_object_set_data (G_OBJECT (priv->renderer_subject), ACTIVE_COLOR, &(priv->active_color));
#endif
} else {
#ifdef MODEST_TOOLKIT_HILDON2