[anjal] Saner view for trash folders. No strikes etc. More to do.



commit f88a1020e35d31625b6eeafecb994bf65a526f6b
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Wed Aug 26 11:51:12 2009 +0530

    Saner view for trash folders. No strikes etc. More to do.

 src/em-tree-store.c    |    3 ++-
 src/em-tree-store.h    |    2 ++
 src/mail-folder-view.c |    9 ++++++---
 3 files changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/src/em-tree-store.c b/src/em-tree-store.c
index deb0aa2..9084dc9 100644
--- a/src/em-tree-store.c
+++ b/src/em-tree-store.c
@@ -587,7 +587,8 @@ emts_init(EMTreeStore *emts)
 
 	pthread_mutex_init(&p->lock, NULL);
 	e_dlist_init(&p->changes);
-
+	emts->trash = FALSE;
+	emts->junk = FALSE;
 	emts->root = emts_node_alloc(p);
 }
 
diff --git a/src/em-tree-store.h b/src/em-tree-store.h
index c37109c..c16ba32 100644
--- a/src/em-tree-store.h
+++ b/src/em-tree-store.h
@@ -94,6 +94,8 @@ struct _EMTreeStore
 	guint32 stamp;
 	 sort_func func;
 	 gboolean sort_ascending;
+	 gboolean trash;
+	 gboolean junk;
 };
 
 struct _EMTreeStoreClass
diff --git a/src/mail-folder-view.c b/src/mail-folder-view.c
index 0175186..92e48b5 100644
--- a/src/mail-folder-view.c
+++ b/src/mail-folder-view.c
@@ -440,6 +440,8 @@ mfv_got_folder(char *uri, CamelFolder *folder, void *data)
 	}
 	
 	camel_object_ref(folder);
+	((EMTreeStore *)mfv->model)->junk = folder->folder_flags & CAMEL_FOLDER_IS_JUNK;
+	((EMTreeStore *)mfv->model)->trash = folder->folder_flags & CAMEL_FOLDER_IS_TRASH;
 
 	mfv->search = camel_object_meta_get (folder, "anjal:search");
 	mfv->search_state = camel_object_meta_get (folder, "anjal:search_state");
@@ -712,6 +714,7 @@ draw_text (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *
 	gboolean bold, ellipsize, strike, markup;
 	gboolean unread = FALSE;
 	guint32 flags;
+	EMTreeStore *emts = (EMTreeStore *)tree_model;
 	GtkTreeIter sel_iter;
 	GtkTreeSelection *sel = gtk_tree_view_get_selection (mfv->tree);
 	gtk_tree_selection_get_selected (sel, NULL, &sel_iter);
@@ -763,7 +766,7 @@ draw_text (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *
 				  if(!mfv->priv->light)
 					   unread = g_value_get_boolean (&v1);
 				  flags = g_value_get_uint (&v);
-				  g_object_set ((GObject *)child,"strikethrough", (strike &&  (flags &CAMEL_MESSAGE_DELETED)),
+				  g_object_set ((GObject *)child,"strikethrough", (!emts->trash && strike &&  (flags &CAMEL_MESSAGE_DELETED)),
 								"ellipsize", ellipsize ? PANGO_ELLIPSIZE_END : PANGO_ELLIPSIZE_NONE, NULL);
 				  if (bold) {
 					   if ( mfv->priv->light)
@@ -808,7 +811,7 @@ draw_text (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *
 						  flags = g_value_get_uint (&v);
 						  if(!mfv->priv->light)
 							   unread = g_value_get_boolean (&v1);
-						  g_object_set ((GObject *)c,"strikethrough", (strike &&  (flags &CAMEL_MESSAGE_DELETED)),
+						  g_object_set ((GObject *)c,"strikethrough", (!emts->trash && strike &&  (flags &CAMEL_MESSAGE_DELETED)),
 										"ellipsize", ellipsize ? PANGO_ELLIPSIZE_END : PANGO_ELLIPSIZE_NONE, NULL);
 						  if (bold) {
 							   if ( mfv->priv->light)
@@ -886,7 +889,7 @@ draw_text (GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *
 							   else
 									g_object_set ((GObject *)c, "weight", (unread ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL), NULL);
 						  }						
-						g_object_set ((GObject *)c,"strikethrough", (strike &&  (flags &CAMEL_MESSAGE_DELETED)),
+						g_object_set ((GObject *)c,"strikethrough", (!emts->trash && strike &&  (flags &CAMEL_MESSAGE_DELETED)),
 									  "ellipsize", ellipsize ? PANGO_ELLIPSIZE_END : PANGO_ELLIPSIZE_NONE, NULL);
 						
 						g_value_unset (&value1);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]