From 76bbd700763e4b45614df6ad6174fe831ddb932e Mon Sep 17 00:00:00 2001 From: nobody Date: Thu, 24 Jan 2002 19:01:46 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'EVOLUTION_1_0_2'. svn path=/tags/EVOLUTION_1_0_2/; revision=15455 --- mail/folder-browser.c | 150 +++++++++++++------------------------------------- 1 file changed, 38 insertions(+), 112 deletions(-) (limited to 'mail/folder-browser.c') diff --git a/mail/folder-browser.c b/mail/folder-browser.c index a7213a55ff..ddcc305fe6 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -40,8 +40,6 @@ #include #include -#include -#include #include #include "filter/vfolder-rule.h" @@ -57,6 +55,7 @@ #include "mail.h" #include "mail-callbacks.h" #include "mail-tools.h" +#include "message-list.h" #include "mail-ops.h" #include "mail-vfolder.h" #include "mail-autofilter.h" @@ -719,7 +718,7 @@ static void update_status_bar(FolderBrowser *fb) { CORBA_Environment ev; - int tmp, total; + int tmp; GString *work; extern CamelFolder *outbox_folder, *sent_folder; @@ -728,49 +727,44 @@ update_status_bar(FolderBrowser *fb) || fb->shell_view == CORBA_OBJECT_NIL) return; + work = g_string_new(""); + g_string_sprintfa(work, _("%d new"), camel_folder_get_unread_message_count(fb->folder)); + tmp = message_list_hidden(fb->message_list); + if (tmp) { + g_string_append(work, _(", ")); + g_string_sprintfa(work, _("%d hidden"), tmp); + } + tmp = e_selection_model_selected_count(e_tree_get_selection_model(fb->message_list->tree)); + if (tmp) { + g_string_append(work, _(", ")); + g_string_sprintfa(work, _("%d selected"), tmp); + } if (!fb->message_list->hidedeleted || !camel_folder_has_summary_capability(fb->folder)) { - total = camel_folder_get_message_count(fb->folder); + tmp = camel_folder_get_message_count(fb->folder); } else { GPtrArray *sum = camel_folder_get_summary(fb->folder); int i; if (sum) { - total = 0; + tmp = 0; for (i=0;ilen;i++) { CamelMessageInfo *info = sum->pdata[i]; if ((info->flags & CAMEL_MESSAGE_DELETED) == 0) - total++; + tmp++; } camel_folder_free_summary(fb->folder, sum); } else { - total = camel_folder_get_message_count(fb->folder); + tmp = camel_folder_get_message_count(fb->folder); } } - - work = g_string_new(""); - g_string_sprintfa(work, _("%d new"), camel_folder_get_unread_message_count(fb->folder)); - tmp = message_list_hidden(fb->message_list); - if (0 < tmp && tmp < total) { - g_string_append(work, _(", ")); - if (tmp < total / 2) - g_string_sprintfa(work, _("%d hidden"), tmp); - else - g_string_sprintfa(work, _("%d visible"), total - tmp); - } - tmp = e_selection_model_selected_count(e_tree_get_selection_model(fb->message_list->tree)); - if (tmp) { - g_string_append(work, _(", ")); - g_string_sprintfa(work, _("%d selected"), tmp); - } g_string_append(work, _(", ")); - if (fb->folder == outbox_folder) - g_string_sprintfa(work, _("%d unsent"), total); + g_string_sprintfa(work, _("%d unsent"), tmp); else if (fb->folder == sent_folder) - g_string_sprintfa(work, _("%d sent"), total); + g_string_sprintfa(work, _("%d sent"), tmp); else - g_string_sprintfa(work, _("%d total"), total); + g_string_sprintfa(work, _("%d total"), tmp); CORBA_exception_init(&ev); GNOME_Evolution_ShellView_setFolderBarLabel(fb->shell_view, work->str, &ev); @@ -1418,17 +1412,15 @@ hide_sender(GtkWidget *w, FolderBrowser *fb) } enum { - SELECTION_SET = 1<<1, - CAN_MARK_READ = 1<<2, - CAN_MARK_UNREAD = 1<<3, - CAN_DELETE = 1<<4, - CAN_UNDELETE = 1<<5, - IS_MAILING_LIST = 1<<6, - CAN_RESEND = 1<<7, - CAN_MARK_IMPORTANT = 1<<8, - CAN_MARK_UNIMPORTANT = 1<<9, - CAN_MARK_NEEDS_REPLY = 1<<10, - CAN_MARK_DOESNT_NEED_REPLY = 1<<11 + SELECTION_SET = 2, + CAN_MARK_READ = 4, + CAN_MARK_UNREAD = 8, + CAN_DELETE = 16, + CAN_UNDELETE = 32, + IS_MAILING_LIST = 64, + CAN_RESEND = 128, + CAN_MARK_IMPORTANT = 256, + CAN_MARK_UNIMPORTANT = 512 }; #define MLIST_VFOLDER (3) @@ -1455,7 +1447,7 @@ static EPopupMenu context_menu[] = { { N_("_Open"), NULL, GTK_SIGNAL_FUNC (open_msg), NULL, 0 }, { N_("_Edit as New Message..."), NULL, GTK_SIGNAL_FUNC (resend_msg), NULL, CAN_RESEND }, { N_("_Save As..."), NULL, GTK_SIGNAL_FUNC (save_msg), NULL, 0 }, - { N_("_Print"), NULL, GTK_SIGNAL_FUNC (print_msg), NULL, 0 }, + { N_("_Print"), NULL, GTK_SIGNAL_FUNC (print_msg), NULL, SELECTION_SET }, E_POPUP_SEPARATOR, @@ -1468,8 +1460,6 @@ static EPopupMenu context_menu[] = { { N_("Mark as U_nread"), NULL, GTK_SIGNAL_FUNC (mark_as_unseen), NULL, CAN_MARK_UNREAD }, { N_("Mark as _Important"), NULL, GTK_SIGNAL_FUNC (mark_as_important), NULL, CAN_MARK_IMPORTANT }, { N_("Mark as Unim_portant"), NULL, GTK_SIGNAL_FUNC (mark_as_unimportant), NULL, CAN_MARK_UNIMPORTANT }, - { N_("Mark as Needing Reply"), NULL, GTK_SIGNAL_FUNC (mark_as_needing_reply), NULL, CAN_MARK_NEEDS_REPLY }, - { N_("Mark as Not Needing Reply"), NULL, GTK_SIGNAL_FUNC (mark_as_not_needing_reply), NULL, CAN_MARK_DOESNT_NEED_REPLY }, E_POPUP_SEPARATOR, @@ -1511,7 +1501,7 @@ context_menu_position_func (GtkMenu *menu, gint *x, gint *y, } /* handle context menu over message-list */ -static int +static gint on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event, FolderBrowser *fb) { extern CamelFolder *sent_folder; @@ -1560,8 +1550,6 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event gboolean have_unseen = FALSE; gboolean have_important = FALSE; gboolean have_unimportant = FALSE; - gboolean have_needs_reply = FALSE; - gboolean have_doesnt_need_reply = FALSE; for (i = 0; i < uids->len; i++) { info = camel_folder_get_message_info (fb->folder, uids->pdata[i]); @@ -1583,11 +1571,6 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event else have_unimportant = TRUE; - if (info->flags & CAMEL_MESSAGE_NEEDS_REPLY) - have_needs_reply = TRUE; - else - have_doesnt_need_reply = TRUE; - camel_folder_free_message_info (fb->folder, info); if (have_seen && have_unseen && have_deleted && have_undeleted) @@ -1609,11 +1592,6 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event if (!have_important) enable_mask |= CAN_MARK_UNIMPORTANT; - if (!have_needs_reply) - enable_mask |= CAN_MARK_DOESNT_NEED_REPLY; - if (!have_doesnt_need_reply) - enable_mask |= CAN_MARK_NEEDS_REPLY; - /* * Hide items that wont get used. */ @@ -1637,13 +1615,6 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event else hide_mask |= CAN_MARK_UNIMPORTANT; } - - if (!(have_needs_reply && have_doesnt_need_reply)) { - if (have_needs_reply) - hide_mask |= CAN_MARK_NEEDS_REPLY; - else - hide_mask |= CAN_MARK_DOESNT_NEED_REPLY; - } } /* free uids */ @@ -1683,68 +1654,25 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event return TRUE; } -static int -html_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer data) -{ - FolderBrowser *fb = data; - HTMLEngine *engine; - HTMLPoint *point; - ETreePath *path; - int row; - - if (event->type != GDK_BUTTON_PRESS || event->button != 3) - return FALSE; - - engine = GTK_HTML (widget)->engine; - point = html_engine_get_point_at (engine, event->x + engine->x_offset, - event->y + engine->y_offset, FALSE); - - if (point) { - /* don't popup a menu if the mouse is hovering over a - url or a source image because those situations are - handled in mail-display.c's button_press_event - callback */ - const char *src, *url; - - url = html_object_get_url (point->object); - src = html_object_get_src (point->object); - - if (url || src) { - html_point_destroy (point); - return FALSE; - } - - html_point_destroy (point); - } - - path = e_tree_get_cursor (fb->message_list->tree); - row = e_tree_row_of_node (fb->message_list->tree, path); - - on_right_click (fb->message_list->tree, row, path, 2, - (GdkEvent *) event, fb); - - return TRUE; -} - -static int +static gint on_key_press (GtkWidget *widget, GdkEventKey *key, gpointer data) { FolderBrowser *fb = data; ETreePath *path; int row; - + if (key->state & GDK_CONTROL_MASK) return FALSE; - + path = e_tree_get_cursor (fb->message_list->tree); row = e_tree_row_of_node (fb->message_list->tree, path); - + switch (key->keyval) { case GDK_Delete: case GDK_KP_Delete: delete_msg (NULL, fb); return TRUE; - + case GDK_Menu: on_right_click (fb->message_list->tree, row, path, 2, (GdkEvent *)key, fb); @@ -1753,7 +1681,7 @@ on_key_press (GtkWidget *widget, GdkEventKey *key, gpointer data) toggle_as_important (NULL, fb, NULL); return TRUE; } - + return FALSE; } @@ -2037,8 +1965,6 @@ my_folder_browser_init (GtkObject *object) gtk_signal_connect (GTK_OBJECT (fb->mail_display->html), "key_press_event", GTK_SIGNAL_FUNC (on_key_press), fb); - gtk_signal_connect (GTK_OBJECT (fb->mail_display->html), - "button_press_event", GTK_SIGNAL_FUNC (html_button_press_event), fb); gtk_signal_connect (GTK_OBJECT (fb->message_list->tree), "key_press", GTK_SIGNAL_FUNC (etree_key), fb); -- cgit v1.2.3