talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 4d7461d72788db31c4c7e43d0911a8e9d6155041
parent e7206c0db77c92987f659fb91024ae23f512b9aa
Author: Paul <paul@claws-mail.org>
Date:   Wed, 23 Nov 2016 14:06:21 +0000

make go to next/previous sort order aware

Diffstat:
Msrc/summaryview.c | 88+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 66 insertions(+), 22 deletions(-)

diff --git a/src/summaryview.c b/src/summaryview.c @@ -1833,8 +1833,12 @@ void summary_select_prev_unread(SummaryView *summaryview) { GtkCMCTreeNode *node; - node = summary_find_prev_flagged_msg - (summaryview, summaryview->selected, MSG_UNREAD, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg + (summaryview, summaryview->selected, MSG_UNREAD, TRUE); + else + node = summary_find_next_flagged_msg + (summaryview, summaryview->selected, MSG_UNREAD, TRUE); if (!node || node == summaryview->selected) { AlertValue val = 0; @@ -1857,8 +1861,12 @@ void summary_select_prev_unread(SummaryView *summaryview) _("Internal error: unexpected value for prefs_common.next_unread_msg_dialog\n")); } if (val != G_ALERTALTERNATE) return; - node = summary_find_prev_flagged_msg(summaryview, NULL, - MSG_UNREAD, FALSE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg(summaryview, NULL, + MSG_UNREAD, FALSE); + else + node = summary_find_next_flagged_msg(summaryview, NULL, + MSG_UNREAD, FALSE); } if (!node) @@ -1871,8 +1879,12 @@ void summary_select_next_unread(SummaryView *summaryview) { GtkCMCTreeNode *node = summaryview->selected; - node = summary_find_next_flagged_msg - (summaryview, node, MSG_UNREAD, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_next_flagged_msg + (summaryview, node, MSG_UNREAD, TRUE); + else + node = summary_find_prev_flagged_msg + (summaryview, node, MSG_UNREAD, TRUE); if (node) summary_select_node(summaryview, node, -1); @@ -1906,8 +1918,12 @@ void summary_select_prev_new(SummaryView *summaryview) { GtkCMCTreeNode *node; - node = summary_find_prev_flagged_msg - (summaryview, summaryview->selected, MSG_NEW, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg + (summaryview, summaryview->selected, MSG_NEW, TRUE); + else + node = summary_find_next_flagged_msg + (summaryview, summaryview->selected, MSG_NEW, TRUE); if (!node || node == summaryview->selected) { AlertValue val = 0; @@ -1930,8 +1946,12 @@ void summary_select_prev_new(SummaryView *summaryview) _("Internal error: unexpected value for prefs_common.next_unread_msg_dialog\n")); } if (val != G_ALERTALTERNATE) return; - node = summary_find_prev_flagged_msg(summaryview, NULL, - MSG_NEW, FALSE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg(summaryview, NULL, + MSG_NEW, FALSE); + else + node = summary_find_next_flagged_msg(summaryview, NULL, + MSG_NEW, FALSE); } if (!node) @@ -1944,8 +1964,12 @@ void summary_select_next_new(SummaryView *summaryview) { GtkCMCTreeNode *node = summaryview->selected; - node = summary_find_next_flagged_msg - (summaryview, node, MSG_NEW, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_next_flagged_msg + (summaryview, node, MSG_NEW, TRUE); + else + node = summary_find_prev_flagged_msg + (summaryview, node, MSG_NEW, TRUE); if (node) summary_select_node(summaryview, node, -1); @@ -1978,8 +2002,12 @@ void summary_select_prev_marked(SummaryView *summaryview) { GtkCMCTreeNode *node; - node = summary_find_prev_flagged_msg - (summaryview, summaryview->selected, MSG_MARKED, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg + (summaryview, summaryview->selected, MSG_MARKED, TRUE); + else + node = summary_find_next_flagged_msg + (summaryview, summaryview->selected, MSG_MARKED, TRUE); if (!node) { AlertValue val; @@ -2003,8 +2031,12 @@ void summary_select_next_marked(SummaryView *summaryview) { GtkCMCTreeNode *node = summaryview->selected; - node = summary_find_next_flagged_msg - (summaryview, node, MSG_MARKED, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_next_flagged_msg + (summaryview, node, MSG_MARKED, TRUE); + else + node = summary_find_prev_flagged_msg + (summaryview, node, MSG_MARKED, TRUE); if (node) summary_select_node(summaryview, node, -1); @@ -2037,8 +2069,12 @@ void summary_select_prev_labeled(SummaryView *summaryview) { GtkCMCTreeNode *node; - node = summary_find_prev_flagged_msg - (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_prev_flagged_msg + (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); + else + node = summary_find_next_flagged_msg + (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); if (!node) { AlertValue val; @@ -2062,8 +2098,12 @@ void summary_select_next_labeled(SummaryView *summaryview) { GtkCMCTreeNode *node; - node = summary_find_next_flagged_msg - (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_next_flagged_msg + (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); + else + node = summary_find_prev_flagged_msg + (summaryview, summaryview->selected, MSG_CLABEL_FLAG_MASK, TRUE); if (!node) { AlertValue val; @@ -2073,8 +2113,12 @@ void summary_select_next_labeled(SummaryView *summaryview) "Search from the beginning?"), GTK_STOCK_NO, "+"GTK_STOCK_YES, NULL); if (val != G_ALERTALTERNATE) return; - node = summary_find_next_flagged_msg(summaryview, NULL, - MSG_CLABEL_FLAG_MASK, TRUE); + if (summaryview->sort_type == SORT_ASCENDING) + node = summary_find_next_flagged_msg(summaryview, NULL, + MSG_CLABEL_FLAG_MASK, TRUE); + else + node = summary_find_prev_flagged_msg(summaryview, NULL, + MSG_CLABEL_FLAG_MASK, TRUE); } if (!node)