gtk_cmclist_thaw(GTK_CMCLIST(summaryview->ctree));
}
+void summary_thaw_with_status(SummaryView *summaryview)
+{
+ if (summaryview) {
+ summary_status_show(summaryview);
+ gtk_cmclist_thaw(GTK_CMCLIST(summaryview->ctree));
+ }
+}
+
void summary_grab_focus(SummaryView *summaryview)
{
if (summaryview)
debug_print("Creating summary view...\n");
summaryview = g_new0(SummaryView, 1);
-#if !(GTK_CHECK_VERSION(2,12,0))
- summaryview->tooltips = tips;
-#endif
#define SUMMARY_VBOX_SPACING 3
vbox = gtk_vbox_new(FALSE, SUMMARY_VBOX_SPACING);
msginfo = gtk_cmctree_node_get_row_data(ctree, node);
+ cm_return_if_fail(msginfo != NULL);
+
if (MSG_IS_DELETED(msginfo->flags))
summaryview->deleted++;
gtk_box_pack_start(GTK_BOX(hbox), label,
FALSE, FALSE, 0);
- if (summaryview->sort_key == sort_by[type]) {
+ if (summaryview->sort_key == sort_by[type] ||
+ (summaryview->sort_key == SORT_BY_THREAD_DATE &&
+ sort_by[SORT_BY_DATE] && type == S_COL_DATE)) {
arrow = gtk_arrow_new
(summaryview->sort_type == SORT_ASCENDING
? GTK_ARROW_DOWN : GTK_ARROW_UP,
extract_address(from_text);
}
if (!from_text)
- _("(No From)");
+ from_text = _("(No From)");
} else {
gchar *tmp = summary_complete_address(msginfo->from);
if (tmp) {
from_text = msginfo->from;
else {
from_text = msginfo->from;
- extract_address(from_text);
+ if (from_text)
+ extract_address(from_text);
}
if (!from_text)
- _("(No From)");
+ from_text = _("(No From)");
}
}
data->msginfo = procmsg_msginfo_new_ref(msginfo);
if (summaryview->mark_as_read_timeout_tag != 0)
g_source_remove(summaryview->mark_as_read_timeout_tag);
-
-#if GLIB_CHECK_VERSION(2,14,0)
summaryview->mark_as_read_timeout_tag =
g_timeout_add_seconds(prefs_common.mark_as_read_delay,
msginfo_mark_as_read_timeout, data);
-#else
- summaryview->mark_as_read_timeout_tag =
- g_timeout_add(prefs_common.mark_as_read_delay * 1000,
- msginfo_mark_as_read_timeout, data);
-#endif
} else if (new_window || !prefs_common.mark_as_read_on_new_window) {
msginfo_mark_as_read(summaryview, msginfo, row);
}
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, _("Mark all as read"), NULL,
+ "folder as read?"), GTK_STOCK_NO, GTK_STOCK_YES, NULL,
TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);
if ((val & ~G_ALERTDISABLE) != G_ALERTALTERNATE)
folder_item_set_batch(summaryview->folder_item, FALSE);
END_LONG_OPERATION(summaryview);
- node = summary_find_next_msg(summaryview, sel_last);
+ if (summaryview->sort_type == SORT_ASCENDING)
+ node = summary_find_next_msg(summaryview, sel_last);
if (!node)
node = summary_find_prev_msg(summaryview, sel_last);
if (prefs_common.immediate_exec) {
summary_execute(summaryview);
} else {
- GtkCMCTreeNode *node = summary_find_next_msg(summaryview, sel_last);
+ GtkCMCTreeNode *node;
+ if (summaryview->sort_type == SORT_ASCENDING)
+ node = summary_find_next_msg(summaryview, sel_last);
if (!node)
node = summary_find_prev_msg(summaryview, sel_last);
summary_select_node(summaryview, node, summaryview->display_msg, TRUE);
if (!summaryview->folder_item ||
FOLDER_TYPE(summaryview->folder_item->folder) == F_NEWS) return;
- to_folder = foldersel_folder_sel(summaryview->folder_item->folder,
- FOLDER_SEL_MOVE, NULL, FALSE);
+ to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_MOVE, NULL, FALSE);
summary_move_selected_to(summaryview, to_folder);
}
if (!summaryview->folder_item) return;
- to_folder = foldersel_folder_sel(summaryview->folder_item->folder,
- FOLDER_SEL_COPY, NULL, FALSE);
+ to_folder = foldersel_folder_sel(NULL, FOLDER_SEL_COPY, NULL, FALSE);
summary_copy_selected_to(summaryview, to_folder);
}
if (!new_selected &&
gtkut_ctree_node_is_selected(ctree, node)) {
summary_unselect_all(summaryview);
- new_selected = summary_find_next_msg(summaryview, node);
+ if (summaryview->sort_type == SORT_ASCENDING)
+ new_selected = summary_find_next_msg(summaryview, node);
if (!new_selected)
new_selected = summary_find_prev_msg
(summaryview, node);
return tag_b == NULL ? 0:1;
if (tag_b == NULL)
- return tag_a == NULL ? 0:1;
+ return 1;
return g_utf8_collate(tag_a, tag_b);
}
static void summary_date_clicked(GtkWidget *button, SummaryView *summaryview)
{
- summary_sort_by_column_click(summaryview, SORT_BY_DATE);
+ if (summaryview->sort_key == SORT_BY_DATE)
+ summary_sort_by_column_click(summaryview, SORT_BY_DATE);
+ else
+ summary_sort_by_column_click(summaryview, SORT_BY_THREAD_DATE);
}
static void summary_from_clicked(GtkWidget *button, SummaryView *summaryview)
guint new, unread, unreadmarked, marked, total;
guint replied, forwarded, locked, ignored, watched;
static gboolean tips_initialized = FALSE;
-#if !(GTK_CHECK_VERSION(2,12,0))
- GtkTooltips *tips = summaryview->tooltips;
-#endif
if (prefs_common.layout_mode != SMALL_LAYOUT) {
if (tips_initialized) {