summary_clear_list(summaryview);
summary_set_column_titles(summaryview);
summary_colorlabel_menu_create(summaryview, FALSE);
+ main_create_mailing_list_menu (summaryview->mainwin, NULL);
summary_set_menu_sensitive(summaryview);
}
is_refresh = (item == summaryview->folder_item) ? TRUE : FALSE;
+ if (!is_refresh)
+ main_create_mailing_list_menu (summaryview->mainwin, NULL);
+
if (!prefs_common.summary_quicksearch_sticky
&& !prefs_common.summary_quicksearch_recurse
&& !quicksearch_is_running(summaryview->quicksearch)
}
} else {
switch (prefs_common.select_on_entry) {
- case SELECTONENTRY_NEW:
+ case SELECTONENTRY_MNU:
node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
MSG_NEW, FALSE);
if (node == NULL)
node = summary_find_next_flagged_msg(summaryview, NULL,
MSG_UNREAD, FALSE);
break;
- case SELECTONENTRY_UNREAD:
+ case SELECTONENTRY_MUN:
node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
MSG_UNREAD, FALSE);
if (node == NULL)
node = summary_find_next_flagged_msg(summaryview, NULL,
MSG_NEW, FALSE);
break;
+ case SELECTONENTRY_NMU:
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_NEW, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_UNREAD, FALSE);
+ break;
+ case SELECTONENTRY_NUM:
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_NEW, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_UNREAD, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ break;
+ case SELECTONENTRY_UNM:
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_UNREAD, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_NEW, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ break;
+ case SELECTONENTRY_UMN:
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_UNREAD, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_MARKED, FALSE);
+ if (node == NULL)
+ node = summary_find_next_flagged_msg(summaryview, NULL,
+ MSG_NEW, FALSE);
+ break;
default:
node = NULL;
}
gchar *const entry;
SensitiveCond cond;
} entry[] = {
- {"/Reply" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Reply to" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Reply to/all" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Reply to/sender" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Reply to/mailing list" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Reply" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Reply to" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Reply to/all" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Reply to/sender" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Reply to/mailing list" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Forward" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Forward as attachment" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
- {"/Redirect" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Redirect" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Move..." , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
{"/Copy..." , M_TARGET_EXIST|M_EXEC},
Xstrdup_a(email_addr, addr, return NULL);
extract_address(email_addr);
- g_return_val_if_fail(*email_addr, NULL);
+ if (!*email_addr)
+ return NULL;
/*
* completion stuff must be already initialized
{
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
GtkCTreeNode *node;
+ AlertValue val;
+ if (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,
+ TRUE, NULL, ALERT_QUESTION, G_ALERTALTERNATE);
+
+ if (val == G_ALERTDEFAULT ||
+ val == (G_ALERTDEFAULT|G_ALERTDISABLE))
+ return;
+ else if (val == (G_ALERTALTERNATE|G_ALERTDISABLE))
+ prefs_common.ask_mark_all_read = FALSE;
+ }
+
START_LONG_OPERATION(summaryview);
folder_item_set_batch(summaryview->folder_item, TRUE);
for (node = GTK_CTREE_NODE(GTK_CLIST(ctree)->row_list); node != NULL;
summaryview->colorlabel_menu = menu;
}
+static gboolean summary_popup_menu(GtkWidget *widget, gpointer data)
+{
+ SummaryView *summaryview = (SummaryView *)data;
+ summaryview->display_msg = messageview_is_visible(summaryview->messageview);
+
+ gtk_menu_popup(GTK_MENU(summaryview->popupmenu), NULL, NULL,
+ NULL, NULL, 0, gtk_get_current_event_time());
+ return TRUE;
+}
+
static GtkWidget *summary_ctree_create(SummaryView *summaryview)
{
GtkWidget *ctree;
g_signal_connect(G_OBJECT(ctree), "button_press_event",
G_CALLBACK(summary_button_pressed),
summaryview);
+ g_signal_connect(G_OBJECT(ctree), "popup-menu",
+ G_CALLBACK(summary_popup_menu), summaryview);
g_signal_connect(G_OBJECT(ctree), "button_release_event",
G_CALLBACK(summary_button_released),
summaryview);
return FALSE;
}
-void summary_pass_key_press_event(SummaryView *summaryview, GdkEventKey *event)
+gboolean summary_pass_key_press_event(SummaryView *summaryview, GdkEventKey *event)
{
- summary_key_pressed(summaryview->ctree, event, summaryview);
+ return summary_key_pressed(summaryview->ctree, event, summaryview);
}
#define BREAK_ON_MODIFIER_KEY() \
msginfo = gtk_ctree_node_get_row_data(ctree, row);
g_return_if_fail(msginfo != NULL);
+ main_create_mailing_list_menu (summaryview->mainwin, msginfo);
toolbar_set_learn_button
(summaryview->mainwin->toolbar,
MSG_IS_SPAM(msginfo->flags)?LEARN_HAM:LEARN_SPAM);
summary_select_node(summaryview, node, TRUE, TRUE);
}
-void summaryview_export_mbox_list(SummaryView *summaryview)
+gint summaryview_export_mbox_list(SummaryView *summaryview)
+/* return values: -2 skipped, -1 error, 0 OK */
{
GSList *list = summary_get_selected_msg_list(summaryview);
gchar *mbox = filesel_select_file_save(_("Export to mbox file"), NULL);
+ gint ret;
if (mbox == NULL || list == NULL)
- return;
+ return -1;
- export_list_to_mbox(list, mbox);
+ ret = export_list_to_mbox(list, mbox);
g_slist_free(list);
g_free(mbox);
+ return ret;
}
void summaryview_lock(SummaryView *summaryview, FolderItem *item)