From 5616de530929df0c96ab36a8b09b9044f5c34023 Mon Sep 17 00:00:00 2001 From: Jason Leach Date: Fri, 6 Jul 2001 18:02:01 +0000 Subject: Select the very next message after deleting, not the next undeleted (it 2001-07-06 Jason Leach * mail-callbacks.c (delete_msg): Select the very next message after deleting, not the next undeleted (it can make things jump around in annoying ways if you are deleting many messages), bug #4032. * folder-browser.c: Forgot to commit the "Mark as Important" right click menu item. * message-list.c (message_list_set_folder): Setup the strikeout column here (after we've gotten the folder) so we can disable strikeouts for vtrash folders, part of bug #2224. svn path=/trunk/; revision=10849 --- mail/ChangeLog | 13 +++++++++++++ mail/folder-browser.c | 2 ++ mail/mail-callbacks.c | 4 +++- mail/message-list.c | 36 ++++++++++++++++++++++++++---------- mail/message-list.h | 1 + 5 files changed, 45 insertions(+), 11 deletions(-) diff --git a/mail/ChangeLog b/mail/ChangeLog index ce90b512c2..d77c95b870 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,16 @@ +2001-07-06 Jason Leach + + * mail-callbacks.c (delete_msg): Select the very next message + after deleting, not the next undeleted (it can make things jump + around in annoying ways if you are deleting many messages), bug #4032. + + * folder-browser.c: Forgot to commit the "Mark as Important" right + click menu item. + + * message-list.c (message_list_set_folder): Setup the strikeout + column here (after we've gotten the folder) so we can disable + strikeouts for vtrash folders, part of bug #2224. + 2001-07-06 Dan Winship * mail-folder-cache.c (mail_folder_cache_set_folder_browser): Fix diff --git a/mail/folder-browser.c b/mail/folder-browser.c index 497a65ddc5..db3a008f65 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -1227,6 +1227,8 @@ static EPopupMenu context_menu[] = { GTK_SIGNAL_FUNC (mark_as_seen), NULL, CAN_MARK_READ }, { N_("Mark as U_nread"), NULL, GTK_SIGNAL_FUNC (mark_as_unseen), NULL, CAN_MARK_UNREAD }, + { N_("Mark as _Important"), NULL, + GTK_SIGNAL_FUNC (mark_as_important), NULL, 0 }, SEPARATOR, diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 112221df77..34ea9e4560 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -1533,11 +1533,13 @@ delete_msg (GtkWidget *button, gpointer user_data) deleted = flag_messages (fb, CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN); + + /* Select the next message if we are only deleting one message */ if (deleted == 1) { row = e_tree_row_of_node (fb->message_list->tree, e_tree_get_cursor (fb->message_list->tree)); message_list_select (fb->message_list, row, MESSAGE_LIST_SELECT_NEXT, - 0, CAMEL_MESSAGE_DELETED); + 0, 0); } } diff --git a/mail/message-list.c b/mail/message-list.c index 61a99abed3..a680463698 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -959,7 +959,6 @@ message_list_create_extras (void) /* date cell */ cell = e_cell_date_new (NULL, GTK_JUSTIFY_LEFT); gtk_object_set (GTK_OBJECT (cell), - "strikeout_column", COL_DELETED, "bold_column", COL_UNREAD, "color_column", COL_COLOUR, NULL); @@ -968,7 +967,6 @@ message_list_create_extras (void) /* text cell */ cell = e_cell_text_new (NULL, GTK_JUSTIFY_LEFT); gtk_object_set (GTK_OBJECT (cell), - "strikeout_column", COL_DELETED, "bold_column", COL_UNREAD, "color_column", COL_COLOUR, NULL); @@ -981,7 +979,6 @@ message_list_create_extras (void) /* size cell */ cell = e_cell_size_new (NULL, GTK_JUSTIFY_RIGHT); gtk_object_set (GTK_OBJECT (cell), - "strikeout_column", COL_DELETED, "bold_column", COL_UNREAD, "color_column", COL_COLOUR, NULL); @@ -1166,8 +1163,6 @@ message_list_class_init (GtkObjectClass *object_class) static void message_list_construct (MessageList *message_list) { - ETableExtras *extras; - message_list->model = e_tree_memory_callbacks_new (ml_tree_icon_at, @@ -1198,18 +1193,16 @@ message_list_construct (MessageList *message_list) /* * The etree */ - extras = message_list_create_extras (); + message_list->extras = message_list_create_extras (); e_tree_scrolled_construct_from_spec_file (E_TREE_SCROLLED (message_list), message_list->model, - extras, + message_list->extras, EVOLUTION_ETSPECDIR "/message-list.etspec", NULL); message_list->tree = e_tree_scrolled_get_tree(E_TREE_SCROLLED (message_list)); e_tree_root_node_set_visible (message_list->tree, FALSE); - gtk_object_sink (GTK_OBJECT (extras)); - gtk_signal_connect (GTK_OBJECT (message_list->tree), "cursor_activated", GTK_SIGNAL_FUNC (on_cursor_activated_cmd), message_list); @@ -1905,7 +1898,30 @@ message_list_set_folder (MessageList *message_list, CamelFolder *camel_folder, g } if (camel_folder) { - /* build the etree suitable for this folder */ + /* Setup the strikeout effect for non-vtrash folders */ + if (!CAMEL_IS_VTRASH_FOLDER (camel_folder)) { + ECell *cell; + + cell = e_table_extras_get_cell (message_list->extras, "render_date"); + gtk_object_set (GTK_OBJECT (cell), + "strikeout_column", COL_DELETED, + NULL); + + cell = e_table_extras_get_cell (message_list->extras, "render_text"); + gtk_object_set (GTK_OBJECT (cell), + "strikeout_column", COL_DELETED, + NULL); + + cell = e_table_extras_get_cell (message_list->extras, "render_size"); + gtk_object_set (GTK_OBJECT (cell), + "strikeout_column", COL_DELETED, + NULL); + } + + /* Now we're finally done with the extras */ + gtk_object_sink (GTK_OBJECT (message_list->extras)); + + /* Build the etree suitable for this folder */ message_list_setup_etree (message_list, outgoing); camel_object_hook_event (CAMEL_OBJECT (camel_folder), "folder_changed", diff --git a/mail/message-list.h b/mail/message-list.h index 4ec10f61ca..6482a09210 100644 --- a/mail/message-list.h +++ b/mail/message-list.h @@ -50,6 +50,7 @@ struct _MessageList { ETreeModel *model; ETree *tree; ETreePath tree_root; + ETableExtras *extras; /* The folder */ CamelFolder *folder; -- cgit v1.2.3