[anjal] In outgoing folders, show T0 instead of FROM.



commit 1fad4ea92fd4ffcddc412204eb36491365fe134c
Author: Srinivasa Ragavan <sragavan novell com>
Date:   Thu Jun 25 12:51:10 2009 +0530

    In outgoing folders, show T0 instead of FROM.

 src/em-tree-store.c    |   22 +++++++++++-----------
 src/mail-folder-view.c |   19 +++++++++++++++++--
 2 files changed, 28 insertions(+), 13 deletions(-)
---
diff --git a/src/em-tree-store.c b/src/em-tree-store.c
index 9dfb6e2..338ed26 100644
--- a/src/em-tree-store.c
+++ b/src/em-tree-store.c
@@ -280,16 +280,19 @@ emts_get_value(GtkTreeModel *tree_model, GtkTreeIter  *iter, gint column, GValue
 		case EMTS_COL_UNREAD: 
 			 g_value_set_boolean(value, emts_thread_unread((EMTreeStore *)tree_model, node));
 			break;			
-		case EMTS_COL_FROM: {
-			 char **str, *newstr = NULL;
-			 int cnt = emts_node_count(node);
+		case EMTS_COL_FROM:
+		case EMTS_COL_TO:  {
+			 char **str = NULL, *newstr = NULL;
 			 gboolean unread = emts_thread_unread((EMTreeStore *)tree_model, node);
 			 
-			 str  = g_strsplit (camel_message_info_from(node->info), "<", 2);
-			 if (cnt)
-				  newstr = g_strdup_printf ("%s%s%s", unread ? "<b>" : "", *str, unread ? "</b>" : "");
-			 else
-				  newstr = g_strdup_printf ("%s%s%s", unread ? "<b>" : "", *str, unread ? "</b>" : "");
+			 if (column == EMTS_COL_FROM) {
+				 if (camel_message_info_from(node->info))
+					 str  = g_strsplit (camel_message_info_from(node->info), "<", 2);
+			 } else {
+				 if (camel_message_info_to(node->info))
+				 	str  = g_strsplit (camel_message_info_to(node->info), "<", 2);
+			 }
+			 newstr = g_strdup_printf ("%s%s%s", unread ? "<b>" : "", str ? *str : "", unread ? "</b>" : "");
 			 
 				  
 			 g_value_set_string(value, newstr);
@@ -297,9 +300,6 @@ emts_get_value(GtkTreeModel *tree_model, GtkTreeIter  *iter, gint column, GValue
 			g_free (newstr);
 			break;
 		}
-		case EMTS_COL_TO:
-			g_value_set_string(value, camel_message_info_from(node->info));
-			break;
 		case EMTS_COL_THREADCOUNT: {
 			 int cnt = emts_node_count(node);
 			 char *newstr = NULL;
diff --git a/src/mail-folder-view.c b/src/mail-folder-view.c
index 68659cd..0a6a79f 100644
--- a/src/mail-folder-view.c
+++ b/src/mail-folder-view.c
@@ -71,6 +71,7 @@ struct  _MailFolderViewPrivate {
 	GtkWidget *info_bar;
 	GtkWidget *info_spinner;
 	CamelOperation *cancel;
+	GtkCellRenderer *from_to;
 };
 
 enum {
@@ -443,6 +444,19 @@ mail_folder_view_set_folder (MailFolderView *mfv, CamelFolder *folder, const cha
 		char *last_sel_uid, *spos;
 		double pos = 0;
 		GtkTreeIter iter;
+		gboolean outgoing = FALSE;
+
+	        if (em_utils_folder_is_drafts(folder, uri)
+			|| em_utils_folder_is_sent(folder, uri)
+			|| em_utils_folder_is_outbox(folder, uri))
+			outgoing = TRUE;
+	
+		if (outgoing) {
+			if (mfv->priv->light)
+				g_object_set_data ((GObject *)mfv->priv->from_to, "data", GINT_TO_POINTER (COL_FROM)); /* Implement TO */
+			else 
+				g_object_set_data ((GObject *)mfv->priv->from_to, "data", GINT_TO_POINTER (EMTS_COL_TO));
+		}
 		gtk_tree_view_set_model (GTK_TREE_VIEW (mfv->tree), mfv->model);
 		mfv->priv->folder = folder;
 		gtk_widget_hide ((GtkWidget *)mfv->mail);
@@ -1006,8 +1020,8 @@ mfv_message_got(CamelFolder *folder, const char *uid, CamelMimeMessage *msg, voi
 	MailComposerView *mcv;
 
 	mfv->priv->cancel = NULL;
-	composer = em_utils_edit_message (msg, folder);
-	mcv = mail_shell_create_composer ();
+	composer = (EMsgComposer *)em_utils_edit_message (msg, folder);
+	mcv = (MailComposerView *)mail_shell_create_composer ();
 	mail_composer_view_replace_composer ((struct _MailComposerView *)mcv, (GtkWidget *)composer);
 }
 
@@ -1470,6 +1484,7 @@ mail_folder_view_construct (MailFolderView *shell)
 		g_object_set_data ((GObject *)cell, "data", GINT_TO_POINTER (COL_FROM));
 	else 
 		g_object_set_data ((GObject *)cell, "data", GINT_TO_POINTER (EMTS_COL_FROM));
+	shell->priv->from_to = cell;
 	g_object_set_data ((GObject *)cell, "p-ellipsize", GINT_TO_POINTER (1));
 	g_object_set_data ((GObject *)cell, "p-markup", GINT_TO_POINTER (1));
 	g_object_set_data ((GObject *)cell, "p-bold", GINT_TO_POINTER (0));



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