/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2008 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define SUMMARY_COL_LOCKED_WIDTH 13
#define SUMMARY_COL_MIME_WIDTH 11
-
+static int normal_row_height = -1;
static GtkStyle *bold_style;
static GtkStyle *bold_marked_style;
static GtkStyle *bold_deleted_style;
static gint summary_toggle_pressed (GtkWidget *eventbox,
GdkEventButton *event,
SummaryView *summaryview);
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
static void summary_toggle_multiple_pressed
(GtkWidget *widget,
SummaryView *summaryview);
static void summary_reply_cb (SummaryView *summaryview,
guint action,
GtkWidget *widget);
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
static void summary_show_all_header_cb (SummaryView *summaryview,
guint action,
GtkWidget *widget);
static void summary_create_filter_cb (SummaryView *summaryview,
guint action,
GtkWidget *widget);
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
static void summary_create_processing_cb(SummaryView *summaryview,
guint action,
GtkWidget *widget);
static GtkItemFactoryEntry summary_popup_entries[] =
{
{N_("/_Reply"), "<control>R", summary_reply_cb, COMPOSE_REPLY, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/Repl_y to"), NULL, NULL, 0, "<Branch>"},
{N_("/Repl_y to/_all"), "<shift><control>R", summary_reply_cb, COMPOSE_REPLY_TO_ALL, NULL},
{N_("/Repl_y to/_sender"), NULL, summary_reply_cb, COMPOSE_REPLY_TO_SENDER, NULL},
{"/---", NULL, NULL, 0, "<Separator>"},
#endif
{N_("/_Forward"), "<control><alt>F", summary_reply_cb, COMPOSE_FORWARD_INLINE, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/For_ward as attachment"), NULL, summary_reply_cb, COMPOSE_FORWARD_AS_ATTACH, NULL},
{N_("/Redirect"), NULL, summary_reply_cb, COMPOSE_REDIRECT, NULL},
#endif
{N_("/M_ove..."), "<control>O", summary_move_to, 0, NULL},
{N_("/_Copy..."), "<shift><control>O", summary_copy_to, 0, NULL},
{N_("/Move to _trash"), "<control>D", summary_delete_trash, 0, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/_Delete..."), NULL, summary_delete, 0, NULL},
#endif
{"/---", NULL, NULL, 0, "<Separator>"},
{N_("/Ta_gs"), NULL, NULL, 0, NULL},
{"/---", NULL, NULL, 0, "<Separator>"},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/Add sender to address boo_k"),
NULL, summary_add_address_cb, 0, NULL},
#endif
NULL, summary_create_filter_cb, FILTER_BY_TO, NULL},
{N_("/Create f_ilter rule/by _Subject"),
NULL, summary_create_filter_cb, FILTER_BY_SUBJECT, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/Create processing rule"), NULL, NULL, 0, "<Branch>"},
{N_("/Create processing rule/_Automatically"),
NULL, summary_create_processing_cb, FILTER_BY_AUTO, NULL},
{N_("/_View/Open in new _window"),
"<control><alt>N", summary_open_msg, 0, NULL},
{N_("/_View/Message _source"), "<control>U", summary_view_source, 0, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/_View/All _headers"), "<control>H", summary_show_all_header_cb, 0, "<ToggleItem>"},
#endif
{"/---", NULL, NULL, 0, "<Separator>"},
{N_("/_Save as..."), "<control>S", summary_save_as, 0, NULL},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{N_("/_Print..."), "<control>P", summary_print, 0, NULL},
#endif
}; /* see also list in menu_connect_identical_items() in menu.c if this changes */
GtkWidget *statlabel_msgs;
GtkWidget *hbox_spc;
GtkWidget *toggle_eventbox;
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
GtkWidget *multiple_sel_togbtn;
#endif
GtkWidget *toggle_arrow;
G_CALLBACK(summary_toggle_pressed),
summaryview);
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
multiple_sel_togbtn = gtk_toggle_button_new();
gtk_widget_show(multiple_sel_togbtn);
gtk_box_pack_end(GTK_BOX(hbox), multiple_sel_togbtn, FALSE, FALSE, 4);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
-#ifndef MAEMO
- gtk_box_pack_start(GTK_BOX(vbox), scrolledwin, TRUE, TRUE, 0);
+ summaryview->mainwidget_book = gtk_notebook_new();
+ gtk_notebook_set_show_tabs(GTK_NOTEBOOK(summaryview->mainwidget_book), FALSE);
+ gtk_notebook_set_show_border(GTK_NOTEBOOK(summaryview->mainwidget_book), FALSE);
+#ifndef GENERIC_UMPC
+ gtk_container_add(GTK_CONTAINER(summaryview->mainwidget_book),
+ scrolledwin);
+ gtk_box_pack_start(GTK_BOX(vbox), summaryview->mainwidget_book, TRUE, TRUE, 0);
#endif
gtk_widget_set_size_request(vbox,
prefs_common.summaryview_width,
quicksearch = quicksearch_new();
gtk_box_pack_start(GTK_BOX(vbox), quicksearch_get_widget(quicksearch), FALSE, FALSE, 0);
-#ifdef MAEMO
- gtk_box_pack_start(GTK_BOX(vbox), scrolledwin, TRUE, TRUE, 0);
+#ifdef GENERIC_UMPC
+ gtk_container_add(GTK_CONTAINER(summaryview->mainwidget_book),
+ scrolledwin);
+ gtk_box_pack_start(GTK_BOX(vbox), summaryview->mainwidget_book, TRUE, TRUE, 0);
#endif
quicksearch_set_execute_callback(quicksearch, quicksearch_execute_cb, summaryview);
summaryview->statlabel_msgs = statlabel_msgs;
summaryview->toggle_eventbox = toggle_eventbox;
summaryview->toggle_arrow = toggle_arrow;
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
summaryview->multiple_sel_togbtn = multiple_sel_togbtn;
#endif
summaryview->toggle_search = toggle_search;
break;
}
+ summary_set_column_order(summaryview);
+
gtk_widget_unref(summaryview->hbox_l);
gtk_widget_unref(summaryview->statlabel_msgs);
quicksearch_relayout(summaryview->quicksearch);
gtk_widget_show(pixmap);
summaryview->quick_search_pixmap = pixmap;
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
pixmap = stock_pixmap_widget(summaryview->hbox, STOCK_PIXMAP_SELECTION);
gtk_container_add(GTK_CONTAINER(summaryview->multiple_sel_togbtn), pixmap);
gtk_widget_show(pixmap);
&& (!g_ascii_strcasecmp(m->folder->name,item->name)) )
#define FOLDER_SHOWS_TO_HDR(i) \
-( folder_has_parent_of_type(i, F_OUTBOX) \
- || folder_has_parent_of_type(i, F_DRAFT) \
- || folder_has_parent_of_type(i, F_QUEUE) )
+( i && (folder_has_parent_of_type(i, F_OUTBOX) \
+ || folder_has_parent_of_type(i, F_DRAFT) \
+ || folder_has_parent_of_type(i, F_QUEUE)) )
static void summary_switch_from_to(SummaryView *summaryview, FolderItem *item)
{
SummaryColumnState *col_state = summaryview->col_state;
GtkCTree *ctree = GTK_CTREE(summaryview->ctree);
- if (!item)
+ if (!item || (prefs_common.layout_mode == VERTICAL_LAYOUT && prefs_common.two_line_vert) )
return;
if (FOLDER_SHOWS_TO_HDR(item))
show_to = TRUE;
static gboolean summary_check_consistency(FolderItem *item, GSList *mlist)
{
- int u = 0, n = 0, m = 0, t = 0;
+ int u = 0, n = 0, m = 0, t = 0, r = 0, f = 0, l = 0, i = 0, w = 0;
GSList *cur;
START_TIMING("");
for(cur = mlist ; cur != NULL && cur->data != NULL ; cur = g_slist_next(cur)) {
u++;
if (MSG_IS_MARKED(msginfo->flags))
m++;
+ if (MSG_IS_REPLIED(msginfo->flags))
+ r++;
+ if (MSG_IS_FORWARDED(msginfo->flags))
+ f++;
+ if (MSG_IS_LOCKED(msginfo->flags))
+ l++;
+ if (MSG_IS_IGNORE_THREAD(msginfo->flags))
+ i++;
+ if (MSG_IS_WATCH_THREAD(msginfo->flags))
+ w++;
}
if (t != item->total_msgs
|| n != item->new_msgs
|| u != item->unread_msgs
|| m != item->marked_msgs
+ || r != item->replied_msgs
+ || f != item->forwarded_msgs
+ || l != item->locked_msgs
+ || i != item->ignored_msgs
+ || w != item->watched_msgs
|| (m == 0 && item->unreadmarked_msgs != 0)
|| item->unreadmarked_msgs < 0) {
debug_print("Inconsistency\n");
is_refresh = (item == summaryview->folder_item) ? TRUE : FALSE;
+ if (item && item->folder->klass->item_opened) {
+ item->folder->klass->item_opened(item);
+ }
+
if (!is_refresh) {
main_create_mailing_list_menu (summaryview->mainwin, NULL);
if (prefs_common.layout_mode == SMALL_LAYOUT) {
GtkItemFactory *ifactory = summaryview->popupfactory;
SensitiveCond state;
gboolean sensitive;
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
GtkWidget *menuitem;
#endif
gint i;
SensitiveCond cond;
} entry[] = {
{"/Reply" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/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},
#endif
{"/Forward" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/Forward as attachment" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Redirect" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
#endif
{"/Move..." , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
{"/Copy..." , M_TARGET_EXIST|M_EXEC},
{"/Move to trash" , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/Delete..." , M_TARGET_EXIST|M_ALLOW_DELETE},
#endif
{"/Color label" , M_TARGET_EXIST},
{"/Tags" , M_TARGET_EXIST},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/Add sender to address book" , M_SINGLE_TARGET_EXIST},
#endif
{"/Create filter rule" , M_SINGLE_TARGET_EXIST|M_UNLOCKED},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/Create processing rule" , M_SINGLE_TARGET_EXIST|M_UNLOCKED},
#endif
{"/View" , M_SINGLE_TARGET_EXIST},
{"/View/Open in new window" , M_SINGLE_TARGET_EXIST},
{"/View/Message source" , M_SINGLE_TARGET_EXIST},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/View/All headers" , M_SINGLE_TARGET_EXIST},
#endif
{"/Save as..." , M_TARGET_EXIST},
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
{"/Print..." , M_TARGET_EXIST},
#endif
{NULL, 0}
summary_lock(summaryview);
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
menuitem = gtk_item_factory_get_widget(ifactory, "/View/All headers");
if (summaryview->messageview
&& summaryview->messageview->mimeview
gchar *itstr;
GList *rowlist, *cur;
guint n_selected = 0, n_new = 0, n_unread = 0, n_total = 0;
- off_t sel_size = 0, n_size = 0;
+ guint n_marked = 0, n_replied = 0, n_forwarded = 0, n_locked = 0, n_ignored = 0, n_watched = 0;
+ goffset sel_size = 0, n_size = 0;
MsgInfo *msginfo;
gchar *name;
+#if GTK_CHECK_VERSION(2, 12, 0)
+ gchar *tooltip;
+#endif
if (!summaryview->folder_item) {
gtk_label_set_text(GTK_LABEL(summaryview->statlabel_folder), "");
n_new++;
if (MSG_IS_UNREAD(msginfo->flags))
n_unread++;
+ if (MSG_IS_MARKED(msginfo->flags))
+ n_marked++;
+ if (MSG_IS_REPLIED(msginfo->flags))
+ n_replied++;
+ if (MSG_IS_FORWARDED(msginfo->flags))
+ n_forwarded++;
+ if (MSG_IS_LOCKED(msginfo->flags))
+ n_locked++;
+ if (MSG_IS_IGNORE_THREAD(msginfo->flags))
+ n_ignored++;
+ if (MSG_IS_WATCH_THREAD(msginfo->flags))
+ n_watched++;
}
}
} else {
n_new = summaryview->folder_item->new_msgs;
n_unread = summaryview->folder_item->unread_msgs;
+ n_marked = summaryview->folder_item->marked_msgs;
+ n_replied = summaryview->folder_item->replied_msgs;
+ n_forwarded = summaryview->folder_item->forwarded_msgs;
+ n_locked = summaryview->folder_item->locked_msgs;
+ n_ignored = summaryview->folder_item->ignored_msgs;
+ n_watched = summaryview->folder_item->watched_msgs;
n_total = summaryview->folder_item->total_msgs;
n_size = summaryview->total_size;
}
spc = "";
if (n_selected) {
- sel = g_strdup_printf(" (%s)", to_human_readable(sel_size));
+ sel = g_strdup_printf(" (%s)", to_human_readable((goffset)sel_size));
if (n_selected == 1)
itstr = g_strdup(_(" item selected"));
else
g_free(str);
str = g_strdup_printf(_("%d new, %d unread, %d total (%s)"),
-
n_new, n_unread, n_total,
- to_human_readable(n_size));
+ to_human_readable((goffset)n_size));
+
gtk_label_set_text(GTK_LABEL(summaryview->statlabel_msgs), str);
g_free(str);
+#if GTK_CHECK_VERSION(2, 12, 0)
+ tooltip = g_strdup_printf(_("<b>Message summary</b>\n"
+ "<b>New:</b> %d\n"
+ "<b>Unread:</b> %d\n"
+ "<b>Total:</b> %d\n"
+ "<b>Size:</b> %s\n\n"
+ "<b>Marked:</b> %d\n"
+ "<b>Replied:</b> %d\n"
+ "<b>Forwarded:</b> %d\n"
+ "<b>Locked:</b> %d\n"
+ "<b>Ignored:</b> %d\n"
+ "<b>Watched:</b> %d"),
+ n_new, n_unread, n_total,
+ to_human_readable((goffset)n_size),
+ n_marked,n_replied,n_forwarded,
+ n_locked,n_ignored,n_watched);
+
+ gtk_widget_set_tooltip_markup(GTK_WIDGET(summaryview->statlabel_msgs),
+ tooltip);
+ g_free(tooltip);
+#endif
} else {
gchar *ssize, *tsize;
if (n_selected) {
- ssize = g_strdup(to_human_readable(sel_size));
- tsize = g_strdup(to_human_readable(n_size));
+ ssize = g_strdup(to_human_readable((goffset)sel_size));
+ tsize = g_strdup(to_human_readable((goffset)n_size));
str = g_strdup_printf(_("%d/%d selected (%s/%s), %d unread"),
n_selected, n_total, ssize, tsize, n_unread);
g_free(ssize);
g_free(tsize);
} else
str = g_strdup_printf(_("%d new, %d unread, %d total (%s)"),
- n_new, n_unread, n_total, to_human_readable(n_size));
+ n_new, n_unread, n_total, to_human_readable((goffset)n_size));
g_free(sel);
g_free(del);
g_free(mv);
hbox = gtk_hbox_new(FALSE, 4);
label = gtk_label_new(title);
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
gtk_widget_set_size_request(hbox, -1, 20);
#endif
gint *col_pos = summaryview->col_pos;
const gchar *msgid = msginfo->msgid;
GHashTable *msgid_table = summaryview->msgid_table;
-
+ gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT);
+
summary_set_header(summaryview, text, msginfo);
gtk_sctree_set_node_info(ctree, cnode, text[col_pos[S_COL_SUBJECT]], 2,
if (summaryview->col_state[summaryview->col_pos[S_COL_TAGS]].visible)
SET_TEXT(S_COL_TAGS);
+ if (vert && prefs_common.two_line_vert)
+ g_free(text[summaryview->col_pos[S_COL_SUBJECT]]);
+
#undef SET_TEXT
GTKUT_CTREE_NODE_SET_ROW_DATA(cnode, msginfo);
GHashTable *msgid_table;
GHashTable *subject_table = NULL;
GSList * cur;
+ gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT);
+
START_TIMING("");
if (!mlist) return;
(ctree, NULL, node, text, 2,
NULL, NULL, NULL, NULL,
FALSE, FALSE);
+ if (vert && prefs_common.two_line_vert)
+ g_free(text[summaryview->col_pos[S_COL_SUBJECT]]);
GTKUT_CTREE_NODE_SET_ROW_DATA(node, msginfo);
summary_set_marks_func(ctree, node, summaryview);
gint *col_pos = summaryview->col_pos;
gchar *from_text = NULL, *to_text = NULL, *tags_text = NULL;
gboolean should_swap = FALSE;
-
+ gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT);
+#if GTK_CHECK_VERSION(2,12,0)
+ static const gchar *color_dim_rgb = NULL;
+ if (!color_dim_rgb)
+ color_dim_rgb = gdk_color_to_string(&summaryview->color_dim);
+#else
+ static const gchar *color_dim_rgb = "#888888";
+#endif
text[col_pos[S_COL_FROM]] = "";
text[col_pos[S_COL_TO]] = "";
text[col_pos[S_COL_SUBJECT]]= "";
text[col_pos[S_COL_TAGS]] = "";
/* slow! */
- if (summaryview->col_state[summaryview->col_pos[S_COL_DATE]].visible) {
+ if (summaryview->col_state[summaryview->col_pos[S_COL_DATE]].visible ||
+ (vert && prefs_common.two_line_vert)) {
if (msginfo->date_t) {
procheader_date_get_localtime(date_modified,
sizeof(date_modified),
else
text[col_pos[S_COL_SUBJECT]] = msginfo->subject ? msginfo->subject :
_("(No Subject)");
+ if (vert && prefs_common.two_line_vert) {
+ if (!FOLDER_SHOWS_TO_HDR(summaryview->folder_item)) {
+ gchar *tmp = g_markup_printf_escaped(_("%s\n<span color='%s' style='italic'>From: %s, on %s</span>"),
+ text[col_pos[S_COL_SUBJECT]],
+ color_dim_rgb,
+ text[col_pos[S_COL_FROM]],
+ text[col_pos[S_COL_DATE]]);
+ text[col_pos[S_COL_SUBJECT]] = tmp;
+ } else {
+ gchar *tmp = g_markup_printf_escaped(_("%s\n<span color='%s' style='italic'>To: %s, on %s</span>"),
+ text[col_pos[S_COL_SUBJECT]],
+ color_dim_rgb,
+ text[col_pos[S_COL_TO]],
+ text[col_pos[S_COL_DATE]]);
+ text[col_pos[S_COL_SUBJECT]] = tmp;
+ }
+ }
}
static void summary_display_msg(SummaryView *summaryview, GtkCTreeNode *row)
}
if (val == 0 && MSG_IS_UNREAD(msginfo->flags)) {
- if (prefs_common.mark_as_read_delay) {
+ if (!prefs_common.mark_as_read_on_new_window &&
+ prefs_common.mark_as_read_delay) {
MarkAsReadData *data = g_new0(MarkAsReadData, 1);
data->summaryview = summaryview;
data->msginfo = msginfo;
return TRUE;
}
+gboolean summary_is_list(SummaryView *summaryview)
+{
+ return (gtk_notebook_get_current_page(
+ GTK_NOTEBOOK(summaryview->mainwidget_book)) == 0);
+}
+
void summary_toggle_view(SummaryView *summaryview)
{
if (prefs_common.layout_mode == SMALL_LAYOUT)
return;
if (!messageview_is_visible(summaryview->messageview) &&
- summaryview->selected)
+ summaryview->selected && summary_is_list(summaryview))
summary_display_msg(summaryview,
summaryview->selected);
else
GtkCTreeNode *row = GTK_CTREE_NODE(cur->data);
msginfo = gtk_ctree_node_get_row_data(ctree, row);
if (msginfo && msginfo->total_size != 0 &&
- msginfo->size != (off_t)msginfo->total_size)
+ msginfo->size != (goffset)msginfo->total_size)
partial_mark_for_delete(msginfo);
}
return TRUE;
}
-#if GTK_CHECK_VERSION(2,12,0) && !MAEMO
+#if GTK_CHECK_VERSION(2,12,0) && !GENERIC_UMPC
static gchar *summaryview_get_tooltip_text(SummaryView *summaryview, MsgInfo *info, gint column)
{
MsgFlags flags;
-
if (!info)
return NULL;
gchar *formatted = NULL;
MsgInfo *info = NULL;
GdkRectangle rect;
+ gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT);
if (!prefs_common.show_tooltips)
return FALSE;
formatted = g_strdup(text);
g_strstrip(formatted);
-
- gtk_tooltip_set_text (tooltip, formatted);
+
+ if (!vert)
+ gtk_tooltip_set_text (tooltip, formatted);
+ else if (prefs_common.two_line_vert)
+ gtk_tooltip_set_markup (tooltip, formatted);
g_free(formatted);
rect.x = x - 2;
gchar *titles[N_SUMMARY_COLS];
SummaryColumnType type;
gint pos;
+ gboolean vert = (prefs_common.layout_mode == VERTICAL_LAYOUT);
memset(titles, 0, sizeof(titles));
ctree = gtk_sctree_new_with_titles
(N_SUMMARY_COLS, col_pos[S_COL_SUBJECT], titles);
+ /* get normal row height */
+ gtk_clist_set_row_height(GTK_CLIST(ctree), 0);
+ normal_row_height = GTK_CLIST(ctree)->row_height;
+
if (prefs_common.show_col_headers == FALSE)
gtk_clist_column_titles_hide(GTK_CLIST(ctree));
for (pos = 0; pos < N_SUMMARY_COLS; pos++) {
GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(ctree)->column[pos].button,
GTK_CAN_FOCUS);
- gtk_clist_set_column_visibility
- (GTK_CLIST(ctree), pos, col_state[pos].visible);
+ if (((pos == summaryview->col_pos[S_COL_FROM] && !FOLDER_SHOWS_TO_HDR(summaryview->folder_item)) ||
+ (pos == summaryview->col_pos[S_COL_TO] && FOLDER_SHOWS_TO_HDR(summaryview->folder_item)) ||
+ pos == summaryview->col_pos[S_COL_DATE]) && vert &&
+ prefs_common.two_line_vert)
+ gtk_clist_set_column_visibility
+ (GTK_CLIST(ctree), pos, FALSE);
+ else
+ gtk_clist_set_column_visibility
+ (GTK_CLIST(ctree), pos, col_state[pos].visible);
}
+ if (prefs_common.two_line_vert)
+ gtk_sctree_set_use_markup(GTK_SCTREE(ctree), summaryview->col_pos[S_COL_SUBJECT], vert);
/* connect signal to the buttons for sorting */
#define CLIST_BUTTON_SIGNAL_CONNECT(col, func) \
G_CALLBACK(summary_drag_motion_cb),
summaryview);
-#if GTK_CHECK_VERSION(2,12,0) && !MAEMO
+#if GTK_CHECK_VERSION(2,12,0) && !GENERIC_UMPC
g_object_set (G_OBJECT(ctree), "has-tooltip", TRUE, NULL);
g_signal_connect(G_OBJECT(ctree), "query-tooltip",
G_CALLBACK(tooltip_cb),
summary_select_by_msgnum(summaryview, selected_msgnum);
+ summaryview->selected = summary_find_msg_by_msgnum(summaryview, selected_msgnum);
summaryview->displayed = summary_find_msg_by_msgnum(summaryview, displayed_msgnum);
summaryview->last_displayed = summaryview->displayed;
if (!summaryview->displayed)
messageview_clear(summaryview->messageview);
else
summary_redisplay_msg(summaryview);
+
+ if (prefs_common.layout_mode == VERTICAL_LAYOUT &&
+ prefs_common.two_line_vert) {
+ gtk_clist_set_row_height(GTK_CLIST(summaryview->ctree), 2*normal_row_height + 2);
+ } else {
+ gtk_clist_set_row_height(GTK_CLIST(summaryview->ctree), 0);
+ }
}
summary_toggle_view(summaryview);
return TRUE;
}
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
static void summary_toggle_multiple_pressed(GtkWidget *widget,
SummaryView *summaryview)
{
gboolean summary_pass_key_press_event(SummaryView *summaryview, GdkEventKey *event)
{
- return summary_key_pressed(summaryview->ctree, event, summaryview);
+ if (summary_is_list(summaryview))
+ return summary_key_pressed(summaryview->ctree, event, summaryview);
+ else
+ return FALSE;
}
#define BREAK_ON_MODIFIER_KEY() \
case GDK_KP_Enter:
handled = TRUE;
if (summaryview->displayed != summaryview->selected) {
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
summary_display_msg(summaryview,
summaryview->selected);
#else
!MSG_IS_COPY(msginfo->flags)) {
if (MSG_IS_MARKED(msginfo->flags)) {
summary_unmark_row(summaryview, row);
+ summary_status_show(summaryview);
} else {
summary_mark_row(summaryview, row);
+ summary_status_show(summaryview);
}
}
break;
break;
case S_COL_LOCKED:
if (MSG_IS_LOCKED(msginfo->flags)) {
- summary_msginfo_unset_flags(msginfo, MSG_LOCKED, 0);
- summary_set_row_marks(summaryview, row);
+ summary_unlock_row(summaryview, row);
+ summary_status_show(summaryview);
}
- else
+ else {
summary_lock_row(summaryview, row);
+ summary_status_show(summaryview);
+ }
break;
default:
break;
compose_reply_from_messageview(msgview, msginfo_list, action);
g_slist_free(msginfo_list);
}
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
static void summary_show_all_header_cb(SummaryView *summaryview,
guint action, GtkWidget *widget)
{
{
summary_filter_open(summaryview, (PrefsFilterType)action, 0);
}
-#ifndef MAEMO
+#ifndef GENERIC_UMPC
static void summary_create_processing_cb(SummaryView *summaryview,
guint action, GtkWidget *widget)
{
gtk_widget_show(pixmap);
summaryview->quick_search_pixmap = pixmap;
-#ifdef MAEMO
+#ifdef GENERIC_UMPC
pixmap = stock_pixmap_widget(summaryview->hbox, STOCK_PIXMAP_SELECTION);
gtk_container_remove (GTK_CONTAINER(summaryview->multiple_sel_togbtn),
summaryview->multiple_sel_image);
void summary_update_unread(SummaryView *summaryview, FolderItem *removed_item)
{
guint new, unread, unreadmarked, marked, total;
+ guint replied, forwarded, locked, ignored, watched;
static gboolean tips_initialized = FALSE;
if (prefs_common.layout_mode != SMALL_LAYOUT) {
}
return;
}
- folder_count_total_msgs(&new, &unread, &unreadmarked, &marked, &total);
+ folder_count_total_msgs(&new, &unread, &unreadmarked, &marked, &total,
+ &replied, &forwarded, &locked, &ignored,
+ &watched);
if (removed_item) {
total -= removed_item->total_msgs;
new -= removed_item->new_msgs;