diff options
-rw-r--r-- | mail/ChangeLog | 12 | ||||
-rw-r--r-- | mail/message-list.c | 56 | ||||
-rw-r--r-- | mail/message-list.h | 1 |
3 files changed, 53 insertions, 16 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog index 75b48266d9..11b8c3059c 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,15 @@ +2000-06-01 Dan Winship <danw@helixcode.com> + + * message-list.c: Add a date column. + (COL_SENT_WIDTH_MIN): Make this wider. + (ml_value_at): return the sent date (as a time_t) for COL_SENT. + (Fix COL_TO too while I'm here.) + (ml_duplicate_value, ml_free_value, ml_initialize_value, + ml_value_is_empty): COL_SENT is numeric now. + (message_list_init_renderers): Create a date renderer (using + text_filter to translate the time_t into a string). + (message_list_init_header): Use render_date for COL_SENT. + 2000-06-01 Christopher James Lahey <clahey@helixcode.com> * session.c: Don't call e_setup_base_dir. diff --git a/mail/message-list.c b/mail/message-list.c index 56dd06526e..3572535967 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -39,7 +39,7 @@ #define COL_SUBJECT_EXPANSION (30.0) #define COL_SUBJECT_WIDTH_MIN (32) #define COL_SENT_EXPANSION (4.0) -#define COL_SENT_WIDTH_MIN (1) +#define COL_SENT_WIDTH_MIN (32) #define COL_RECEIVE_EXPANSION (20.0) #define COL_RECEIVE_WIDTH_MIN (32) #define COL_TO_EXPANSION (24.0) @@ -243,7 +243,7 @@ ml_value_at (ETableModel *etm, int col, int row, void *data) break; case COL_SENT: - retval = "sent"; + retval = GINT_TO_POINTER (msg_info->date_sent); break; case COL_RECEIVE: @@ -251,7 +251,7 @@ ml_value_at (ETableModel *etm, int col, int row, void *data) break; case COL_TO: - retval = "dudes@server"; + retval = msg_info->to; break; case COL_SIZE: @@ -306,11 +306,11 @@ ml_duplicate_value (ETableModel *etm, int col, const void *value, void *data) case COL_ATTACHMENT: case COL_DELETED: case COL_UNREAD: + case COL_SENT: return (void *) value; case COL_FROM: case COL_SUBJECT: - case COL_SENT: case COL_RECEIVE: case COL_TO: case COL_SIZE: @@ -331,11 +331,11 @@ ml_free_value (ETableModel *etm, int col, void *value, void *data) case COL_ATTACHMENT: case COL_DELETED: case COL_UNREAD: + case COL_SENT: break; case COL_FROM: case COL_SUBJECT: - case COL_SENT: case COL_RECEIVE: case COL_TO: case COL_SIZE: @@ -356,11 +356,11 @@ ml_initialize_value (ETableModel *etm, int col, void *data) case COL_ATTACHMENT: case COL_DELETED: case COL_UNREAD: + case COL_SENT: return NULL; case COL_FROM: case COL_SUBJECT: - case COL_SENT: case COL_RECEIVE: case COL_TO: case COL_SIZE: @@ -382,11 +382,11 @@ ml_value_is_empty (ETableModel *etm, int col, const void *value, void *data) case COL_ATTACHMENT: case COL_DELETED: case COL_UNREAD: + case COL_SENT: return value == NULL; case COL_FROM: case COL_SUBJECT: - case COL_SENT: case COL_RECEIVE: case COL_TO: case COL_SIZE: @@ -432,6 +432,20 @@ message_list_init_images (void) } } +static char * +filter_date (const void *data) +{ + time_t date = GPOINTER_TO_INT (data); + char buf[26], *p; + + ctime_r (&date, buf); + p = strchr (buf, '\n'); + if (p) + *p = '\0'; + + return g_strdup (buf); +} + static void message_list_init_renderers (MessageList *message_list) { @@ -451,6 +465,20 @@ message_list_init_renderers (MessageList *message_list) "bold_column", COL_UNREAD, NULL); + message_list->render_date = e_cell_text_new ( + message_list->table_model, + NULL, GTK_JUSTIFY_LEFT); + + gtk_object_set(GTK_OBJECT(message_list->render_date), + "text_filter", filter_date, + NULL); + gtk_object_set(GTK_OBJECT(message_list->render_date), + "strikeout_column", COL_DELETED, + NULL); + gtk_object_set(GTK_OBJECT(message_list->render_date), + "bold_column", COL_UNREAD, + NULL); + message_list->render_online_status = e_cell_checkbox_new (); /* @@ -535,10 +563,10 @@ message_list_init_header (MessageList *message_list) message_list->table_cols [COL_SENT] = e_table_col_new ( - COL_SENT, _("Sent"), + COL_SENT, _("Date"), COL_SENT_EXPANSION, COL_SENT_WIDTH_MIN, - message_list->render_text, - g_str_compare, TRUE); + message_list->render_date, + g_int_compare, TRUE); message_list->table_cols [COL_RECEIVE] = e_table_col_new ( @@ -576,12 +604,8 @@ message_list_init_header (MessageList *message_list) static char * message_list_get_layout (MessageList *message_list) { - if (0) - return g_strdup ("<ETableSpecification> <columns-shown> <column> 0 </column> <column> 1 </column> <column> 2 </column> <column> 3 </column> <column> 4 </column> <column> 5 </column> <column> 6 </column> <column> 7 </column> <column> 8 </column> <column> 9 </column> </columns-shown> <grouping> <group column=\"4\" ascending=\"1\"> <leaf column=\"5\" ascending=\"1\"/> </group> </grouping> </ETableSpecification>"); - else { - /* Message status, From, Sent, Subject */ - return g_strdup ("<ETableSpecification> <columns-shown> <column> 1 </column> <column> 4 </column> <column> 5 </column> </columns-shown> <grouping> </grouping> </ETableSpecification>"); - } + /* Message status, From, Subject, Sent Date */ + return g_strdup ("<ETableSpecification> <columns-shown> <column> 1 </column> <column> 4 </column> <column> 5 </column> <column> 6 </column> </columns-shown> <grouping> </grouping> </ETableSpecification>"); } /* diff --git a/mail/message-list.h b/mail/message-list.h index 1eaa8c9872..971aa6c37a 100644 --- a/mail/message-list.h +++ b/mail/message-list.h @@ -54,6 +54,7 @@ struct _MessageList { ETableCol *table_cols [COL_LAST]; ECell *render_text; + ECell *render_date; ECell *render_online_status; ECell *render_message_status; ECell *render_priority; |