static GtkActionEntry summary_popup_entries[] =
{
- {"SummaryViewPopup", NULL, "SummaryViewPopup" },
- {"SummaryViewPopup/ReplyTo", NULL, N_("Repl_y to") },
- {"SummaryViewPopup/Mark", NULL, N_("_Mark") },
- {"SummaryViewPopup/ColorLabel", NULL, N_("Color la_bel") },
- {"SummaryViewPopup/Tags", NULL, N_("Ta_gs") },
- {"SummaryViewPopup/CreateFilterRule", NULL, N_("Create _filter rule") },
+ {"SummaryViewPopup", NULL, "SummaryViewPopup", NULL, NULL, NULL },
+ {"SummaryViewPopup/ReplyTo", NULL, N_("Repl_y to"), NULL, NULL, NULL },
+ {"SummaryViewPopup/Mark", NULL, N_("_Mark"), NULL, NULL, NULL },
+ {"SummaryViewPopup/ColorLabel", NULL, N_("Color la_bel"), NULL, NULL, NULL },
+ {"SummaryViewPopup/Tags", NULL, N_("Ta_gs"), NULL, NULL, NULL },
+ {"SummaryViewPopup/CreateFilterRule", NULL, N_("Create _filter rule"), NULL, NULL, NULL },
#ifndef GENERIC_UMPC
- {"SummaryViewPopup/CreateProcessingRule", NULL, N_("Create processing rule") },
+ {"SummaryViewPopup/CreateProcessingRule", NULL, N_("Create processing rule"), NULL, NULL, NULL },
#endif
- {"SummaryViewPopup/View", NULL, N_("_View") },
+ {"SummaryViewPopup/View", NULL, N_("_View"), NULL, NULL, NULL },
};
static const gchar *const col_label[N_SUMMARY_COLS] = {
- "", /* S_COL_MARK */
- N_("S"), /* S_COL_STATUS */
- "", /* S_COL_MIME */
- N_("Subject"), /* S_COL_SUBJECT */
- N_("From"), /* S_COL_FROM */
- N_("To"), /* S_COL_TO */
- N_("Date"), /* S_COL_DATE */
- N_("Size"), /* S_COL_SIZE */
- N_("#"), /* S_COL_NUMBER */
- N_("Score"), /* S_COL_SCORE */
- "", /* S_COL_LOCKED */
- N_("Tags"), /* S_COL_TAGS */
+ "", /* S_COL_MARK */
+ N_("S"), /* S_COL_STATUS */
+ "", /* S_COL_MIME */
+ N_("Subject"), /* S_COL_SUBJECT */
+ N_("From"), /* S_COL_FROM */
+ N_("To"), /* S_COL_TO */
+ N_("Date"), /* S_COL_DATE */
+ N_("Size"), /* S_COL_SIZE */
+ N_("#"), /* S_COL_NUMBER */
+ N_("Score"), /* S_COL_SCORE */
+ "", /* S_COL_LOCKED */
+ N_("Tags"), /* S_COL_TAGS */
};
void summary_freeze(SummaryView *summaryview)
else
open_selected = 0;
}
- summary_select_node(summaryview, node, open_selected);
+ summary_select_node_no_mark_read(summaryview, node, open_selected);
}
summary_lock(summaryview);
GtkCMCTreeNode *node = summaryview->selected;
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
- node = gtkut_ctree_node_prev(ctree, node);
+ if (summaryview->sort_type == SORT_ASCENDING)
+ node = gtkut_ctree_node_prev(ctree, node);
+ else
+ node = gtkut_ctree_node_next(ctree, node);
if (node && node != summaryview->selected)
summary_select_node(summaryview, node, -1);
GtkCMCTreeNode *node = summaryview->selected;
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
- node = gtkut_ctree_node_next(ctree, node);
+ if (summaryview->sort_type == SORT_ASCENDING)
+ node = gtkut_ctree_node_next(ctree, node);
+ else
+ node = gtkut_ctree_node_prev(ctree, node);
if (node && node != summaryview->selected)
summary_select_node(summaryview, node, -1);
* 1, display the corresponding message in the message view, if
* @force_display is -1, obey prefs_common.always_show_msg.
**/
+static void summary_select_node_real(SummaryView *summaryview, GtkCMCTreeNode *node,
+ gint force_display, gboolean ignore_mark_read);
+
void summary_select_node(SummaryView *summaryview, GtkCMCTreeNode *node,
gint force_display)
+{
+ summary_select_node_real(summaryview, node, force_display, FALSE);
+
+}
+
+void summary_select_node_no_mark_read(SummaryView *summaryview, GtkCMCTreeNode *node,
+ gint force_display, gboolean ignore_mark_read)
+{
+ summary_select_node_real(summaryview, node, force_display, TRUE);
+
+}
+
+static void summary_select_node_real(SummaryView *summaryview, GtkCMCTreeNode *node,
+ gint force_display, gboolean ignore_mark_read)
{
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
gboolean display_msg;
if (!summaryview->folder_item)
return;
if (node) {
- summary_cancel_mark_read_timeout(summaryview);
+ if (!ignore_mark_read)
+ summary_cancel_mark_read_timeout(summaryview);
gtkut_ctree_expand_parent_all(ctree, node);
summary_lock(summaryview);
summary_status_show(summaryview);
}
-void summary_mark_all_read(SummaryView *summaryview)
+void summary_mark_all_read(SummaryView *summaryview, gboolean ask_if_needed)
{
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
GtkCMCTreeNode *node;
AlertValue val;
gboolean froze = FALSE;
- if (prefs_common.ask_mark_all_read) {
+ /* ask_if_needed is FALSE when user-asking is performed by caller,
+ commonly when the caller is a mark-as-read-recursive func */
+ if (ask_if_needed && prefs_common.ask_mark_all_read) {
val = alertpanel_full(_("Mark all as read"),
_("Do you really want to mark all mails in this folder as read?"),
GTK_STOCK_NO, GTK_STOCK_YES, NULL,
summary_status_show(summaryview);
}
-void summary_mark_all_unread(SummaryView *summaryview)
+void summary_mark_all_unread(SummaryView *summaryview, gboolean ask_if_needed)
{
GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
GtkCMCTreeNode *node;
AlertValue val;
gboolean froze = FALSE;
- if (prefs_common.ask_mark_all_read) {
- val = alertpanel_full(_("Mark all as unread"),
+ /* ask_if_needed is FALSE when user-asking is performed by caller,
+ commonly when the caller is a mark-as-unread-recursive func */
+ if (ask_if_needed && prefs_common.ask_mark_all_read) {
+ val = alertpanel_full(_("FOO Mark all as unread"),
_("Do you really want to mark all mails in this folder as unread?"),
GTK_STOCK_NO, GTK_STOCK_YES, NULL,
TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);