aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/e-mail-reader.c554
-rw-r--r--mail/e-mail-reader.h26
-rw-r--r--mail/e-mail-shell-content.c123
-rw-r--r--mail/e-mail-shell-content.h22
-rw-r--r--mail/e-mail-shell-view-actions.c113
-rw-r--r--mail/e-mail-shell-view-actions.h14
-rw-r--r--mail/e-mail-shell-view-private.h2
-rw-r--r--mail/e-mail-shell-view.c19
-rw-r--r--mail/em-folder-view.c80
9 files changed, 604 insertions, 349 deletions
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index 697142aa6d..204141b430 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -31,9 +31,11 @@
#endif
#include "e-util/e-util.h"
+#include "e-util/e-binding.h"
#include "e-util/gconf-bridge.h"
#include "shell/e-shell.h"
#include "widgets/misc/e-charset-picker.h"
+#include "widgets/misc/e-popup-action.h"
#include "mail/e-mail-browser.h"
#include "mail/e-mail-reader-utils.h"
@@ -872,7 +874,6 @@ action_mail_select_all_cb (GtkAction *action,
EMailReader *reader)
{
EMFormatHTMLDisplay *html_display;
- GtkActionGroup *action_group;
GtkHTML *html;
const gchar *action_name;
gboolean selection_active;
@@ -883,8 +884,7 @@ action_mail_select_all_cb (GtkAction *action,
gtk_html_select_all (html);
action_name = "mail-clipboard-copy";
- action_group = e_mail_reader_get_action_group (reader);
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
selection_active = gtk_html_command (html, "is-selection-active");
gtk_action_set_sensitive (action, selection_active);
}
@@ -1484,57 +1484,6 @@ static GtkActionEntry mail_reader_entries[] = {
N_("Decrease the text size"),
G_CALLBACK (action_mail_zoom_out_cb) },
- /*** Popup Menu Variations ***/
-
- { "mail-popup-flag-for-followup",
- "stock_mail-flag-for-followup",
- N_("Mark for Follo_w Up..."),
- NULL,
- N_("Flag the selected messages for follow-up"),
- G_CALLBACK (action_mail_flag_for_followup_cb) },
-
- { "mail-popup-mark-important",
- "mail-mark-important",
- N_("Mark as _Important"),
- NULL,
- N_("Mark the selected messages as important"),
- G_CALLBACK (action_mail_mark_important_cb) },
-
- { "mail-popup-mark-junk",
- "mail-mark-junk",
- N_("Mark as _Junk"),
- NULL,
- N_("Mark the selected messages as junk"),
- G_CALLBACK (action_mail_mark_junk_cb) },
-
- { "mail-popup-mark-notjunk",
- "mail-mark-notjunk",
- N_("Mark as _Not Junk"),
- NULL,
- N_("Mark the selected messages as not being junk"),
- G_CALLBACK (action_mail_mark_notjunk_cb) },
-
- { "mail-popup-mark-read",
- "mail-mark-read",
- N_("Mark as _Read"),
- NULL,
- N_("Mark the selected messages as having been read"),
- G_CALLBACK (action_mail_mark_read_cb) },
-
- { "mail-popup-mark-unimportant",
- NULL,
- N_("Mark as Uni_mportant"),
- NULL,
- N_("Mark the selected message as unimportant"),
- G_CALLBACK (action_mail_mark_unimportant_cb) },
-
- { "mail-popup-mark-unread",
- "mail-mark-unread",
- N_("Mark as _Unread"),
- NULL,
- N_("Mark the selected messages as not having been read"),
- G_CALLBACK (action_mail_mark_unread_cb) },
-
/*** Menus ***/
{ "mail-create-rule-menu",
@@ -1601,6 +1550,77 @@ static GtkActionEntry mail_reader_entries[] = {
NULL }
};
+static EPopupActionEntry mail_reader_popup_entries[] = {
+
+ { "mail-popup-copy",
+ NULL,
+ "mail-copy" },
+
+ { "mail-popup-delete",
+ NULL,
+ "mail-delete" },
+
+ { "mail-popup-flag-for-followup",
+ N_("Mark for Follo_w Up..."),
+ "mail-flag-for-followup" },
+
+ { "mail-popup-forward",
+ NULL,
+ "mail-forward" },
+
+ { "mail-popup-mark-important",
+ N_("Mark as _Important"),
+ "mail-mark-important" },
+
+ { "mail-popup-mark-junk",
+ N_("Mark as _Junk"),
+ "mail-mark-junk" },
+
+ { "mail-popup-mark-notjunk",
+ N_("Mark as _Not Junk"),
+ "mail-mark-notjunk" },
+
+ { "mail-popup-mark-read",
+ N_("Mark as _Read"),
+ "mail-mark-read" },
+
+ { "mail-popup-mark-unimportant",
+ N_("Mark as Uni_mportant"),
+ "mail-mark-unimportant" },
+
+ { "mail-popup-mark-unread",
+ N_("Mark as _Unread"),
+ "mail-mark-unread" },
+
+ { "mail-popup-message-edit",
+ NULL,
+ "mail-message-edit" },
+
+ { "mail-popup-move",
+ NULL,
+ "mail-move" },
+
+ { "mail-popup-print",
+ NULL,
+ "mail-print" },
+
+ { "mail-popup-reply-all",
+ NULL,
+ "mail-reply-all" },
+
+ { "mail-popup-reply-sender",
+ NULL,
+ "mail-reply-sender" },
+
+ { "mail-popup-save-as",
+ NULL,
+ "mail-save-as" },
+
+ { "mail-popup-undelete",
+ NULL,
+ "mail-undelete" }
+};
+
static GtkToggleActionEntry mail_reader_toggle_entries[] = {
{ "mail-caret-mode",
@@ -1659,14 +1679,12 @@ mail_reader_html_button_release_event_cb (EMailReader *reader,
GdkEventButton *button,
GtkHTML *html)
{
- GtkActionGroup *action_group;
GtkAction *action;
const gchar *action_name;
gboolean selection_active;
action_name = "mail-clipboard-copy";
- action_group = e_mail_reader_get_action_group (reader);
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
selection_active = gtk_html_command (html, "is-selection-active");
gtk_action_set_sensitive (action, selection_active);
@@ -1860,6 +1878,8 @@ mail_reader_message_loaded_cb (CamelFolder *folder,
camel_exception_clear (ex);
}
+ e_mail_reader_update_actions (reader);
+
/* We referenced this in the call to mail_get_messagex(). */
g_object_unref (reader);
}
@@ -2066,6 +2086,9 @@ e_mail_reader_init (EMailReader *reader)
gtk_action_group_add_actions (
action_group, mail_reader_entries,
G_N_ELEMENTS (mail_reader_entries), reader);
+ e_action_group_add_popup_actions (
+ action_group, mail_reader_popup_entries,
+ G_N_ELEMENTS (mail_reader_popup_entries));
gtk_action_group_add_toggle_actions (
action_group, mail_reader_toggle_entries,
G_N_ELEMENTS (mail_reader_toggle_entries), reader);
@@ -2078,34 +2101,34 @@ e_mail_reader_init (EMailReader *reader)
action_name = "mail-caret-mode";
key = "/apps/evolution/mail/display/caret_mode";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
gconf_bridge_bind_property (bridge, key, G_OBJECT (action), "active");
action_name = "mail-show-all-headers";
key = "/apps/evolution/mail/display/show_all_headers";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
gconf_bridge_bind_property (bridge, key, G_OBJECT (action), "active");
/* Fine tuning. */
action_name = "mail-clipboard-copy";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
gtk_action_set_sensitive (action, FALSE);
action_name = "mail-delete";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
g_object_set (action, "short-label", _("Delete"), NULL);
action_name = "mail-next";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
g_object_set (action, "short-label", _("Next"), NULL);
action_name = "mail-previous";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
g_object_set (action, "short-label", _("Previous"), NULL);
action_name = "mail-reply-sender";
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
g_object_set (action, "short-label", _("Reply"), NULL);
/* Connect signals. */
@@ -2147,6 +2170,405 @@ e_mail_reader_changed (EMailReader *reader)
g_signal_emit (reader, signals[CHANGED], 0);
}
+guint32
+e_mail_reader_check_state (EMailReader *reader)
+{
+ MessageList *message_list;
+ GPtrArray *uids;
+ CamelFolder *folder;
+ CamelStore *store = NULL;
+ const gchar *folder_uri;
+ const gchar *tag;
+ gboolean can_clear_flags = FALSE;
+ gboolean can_flag_completed = FALSE;
+ gboolean can_flag_for_followup = FALSE;
+ gboolean has_deleted = FALSE;
+ gboolean has_important = FALSE;
+ gboolean has_junk = FALSE;
+ gboolean has_not_junk = FALSE;
+ gboolean has_read = FALSE;
+ gboolean has_undeleted = FALSE;
+ gboolean has_unimportant = FALSE;
+ gboolean has_unread = FALSE;
+ gboolean draft_or_outbox;
+ guint32 state = 0;
+ guint ii;
+
+ g_return_val_if_fail (E_IS_MAIL_READER (reader), 0);
+
+ message_list = e_mail_reader_get_message_list (reader);
+ uids = message_list_get_selected (message_list);
+ folder_uri = message_list->folder_uri;
+ folder = message_list->folder;
+
+ if (folder != NULL)
+ store = CAMEL_STORE (folder->parent_store);
+
+ draft_or_outbox =
+ em_utils_folder_is_drafts (folder, folder_uri) ||
+ em_utils_folder_is_outbox (folder, folder_uri);
+ if (!draft_or_outbox && store != NULL) {
+ has_junk = !(store->flags & CAMEL_STORE_VJUNK);
+ has_not_junk = TRUE;
+ }
+
+ for (ii = 0; ii < uids->len; ii++) {
+ CamelMessageInfo *info;
+ guint32 flags;
+
+ info = camel_folder_get_message_info (
+ folder, uids->pdata[ii]);
+ if (info == NULL)
+ continue;
+
+ flags = camel_message_info_flags (info);
+
+ if (flags & CAMEL_MESSAGE_SEEN)
+ has_read = TRUE;
+ else
+ has_unread = TRUE;
+
+ if (flags & CAMEL_MESSAGE_DELETED)
+ has_deleted = TRUE;
+ else
+ has_undeleted = TRUE;
+
+ if (flags & CAMEL_MESSAGE_FLAGGED)
+ has_important = TRUE;
+ else
+ has_unimportant = TRUE;
+
+ tag = camel_message_info_user_tag (info, "follow-up");
+ if (tag != NULL && *tag != '\0') {
+ can_clear_flags = TRUE;
+ tag = camel_message_info_user_tag (
+ info, "completed-on");
+ if (tag != NULL && *tag != '\0')
+ can_flag_completed = TRUE;
+ } else
+ can_flag_for_followup = TRUE;
+ }
+
+ if (uids->len == 1)
+ state |= E_MAIL_READER_SELECTION_SINGLE;
+ if (uids->len > 1)
+ state |= E_MAIL_READER_SELECTION_MULTIPLE;
+ if (!draft_or_outbox && uids->len == 1)
+ state |= E_MAIL_READER_SELECTION_CAN_ADD_SENDER;
+#if 0 /* FIXME */
+ if (can_edit)
+ state |= E_MAIL_READER_SELECTION_CAN_EDIT;
+#endif
+ if (can_clear_flags)
+ state |= E_MAIL_READER_SELECTION_FLAG_CLEAR;
+ if (can_flag_completed)
+ state |= E_MAIL_READER_SELECTION_FLAG_COMPLETED;
+ if (can_flag_for_followup)
+ state |= E_MAIL_READER_SELECTION_FLAG_FOLLOWUP;
+ if (has_deleted)
+ state |= E_MAIL_READER_SELECTION_HAS_DELETED;
+ if (has_important)
+ state |= E_MAIL_READER_SELECTION_HAS_IMPORTANT;
+ if (has_junk)
+ state |= E_MAIL_READER_SELECTION_HAS_JUNK;
+ if (has_not_junk)
+ state |= E_MAIL_READER_SELECTION_HAS_NOT_JUNK;
+ if (has_read)
+ state |= E_MAIL_READER_SELECTION_HAS_READ;
+ if (has_undeleted)
+ state |= E_MAIL_READER_SELECTION_HAS_UNDELETED;
+ if (has_unimportant)
+ state |= E_MAIL_READER_SELECTION_HAS_UNIMPORTANT;
+ if (has_unread)
+ state |= E_MAIL_READER_SELECTION_HAS_UNREAD;
+#if 0 /* FIXME */
+ if (has_callto_uri)
+ state |= E_MAIL_READER_SELECTION_HAS_URI_CALLTO;
+ if (has_http_uri)
+ state |= E_MAIL_READER_SELECTION_HAS_URI_HTTP;
+ if (has_mailto_uri)
+ state |= E_MAIL_READER_SELECTION_HAS_URI_MAILTO;
+ if (is_mailing_list)
+ state |= E_MAIL_READER_SELECTION_IS_MAILING_LIST;
+#endif
+
+ em_utils_uids_free (uids);
+
+ return state;
+
+}
+
+void
+e_mail_reader_update_actions (EMailReader *reader)
+{
+ GtkAction *action;
+ GtkActionGroup *action_group;
+ const gchar *action_name;
+ gboolean sensitive;
+ guint32 state;
+
+ /* Be descriptive. */
+ gboolean any_messages_selected;
+ gboolean enable_flag_clear;
+ gboolean enable_flag_completed;
+ gboolean enable_flag_for_followup;
+ gboolean single_message_selected;
+ gboolean multiple_messages_selected;
+ gboolean selection_has_deleted_messages;
+ gboolean selection_has_important_messages;
+ gboolean selection_has_junk_messages;
+ gboolean selection_has_not_junk_messages;
+ gboolean selection_has_read_messages;
+ gboolean selection_has_undeleted_messages;
+ gboolean selection_has_unimportant_messages;
+ gboolean selection_has_unread_messages;
+ gboolean selection_is_mailing_list;
+
+ g_return_if_fail (E_IS_MAIL_READER (reader));
+
+ action_group = e_mail_reader_get_action_group (reader);
+ state = e_mail_reader_check_state (reader);
+
+ single_message_selected =
+ (state & E_MAIL_READER_SELECTION_SINGLE);
+ multiple_messages_selected =
+ (state & E_MAIL_READER_SELECTION_MULTIPLE);
+ /* FIXME Missing booleans */
+ enable_flag_clear =
+ (state & E_MAIL_READER_SELECTION_FLAG_CLEAR);
+ enable_flag_completed =
+ (state & E_MAIL_READER_SELECTION_FLAG_COMPLETED);
+ enable_flag_for_followup =
+ (state & E_MAIL_READER_SELECTION_FLAG_FOLLOWUP);
+ selection_has_deleted_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_DELETED);
+ selection_has_important_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_IMPORTANT);
+ selection_has_junk_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_JUNK);
+ selection_has_not_junk_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_NOT_JUNK);
+ selection_has_read_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_READ);
+ selection_has_undeleted_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_UNDELETED);
+ selection_has_unimportant_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_UNIMPORTANT);
+ selection_has_unread_messages =
+ (state & E_MAIL_READER_SELECTION_HAS_UNREAD);
+ /* FIXME Missing booleans */
+ selection_is_mailing_list =
+ (state & E_MAIL_READER_SELECTION_IS_MAILING_LIST);
+
+ any_messages_selected =
+ (single_message_selected || multiple_messages_selected);
+
+ action_name = "mail-check-for-junk";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-copy";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-delete";
+ sensitive = selection_has_undeleted_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-filters-apply";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-forward";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-forward-attached";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-forward-inline";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-forward-quoted";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-load-images";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-important";
+ sensitive = selection_has_unimportant_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-junk";
+ sensitive = selection_has_not_junk_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-notjunk";
+ sensitive = selection_has_junk_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-read";
+ sensitive = selection_has_unread_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-unimportant";
+ sensitive = selection_has_important_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-mark-unread";
+ sensitive = selection_has_read_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-message-edit";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-message-open";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-move";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-next-important";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-next-thread";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-next-unread";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-previous-important";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-previous-unread";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-print";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-print-preview";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-redirect";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-reply-all";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-reply-list";
+ sensitive = single_message_selected && selection_is_mailing_list;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-reply-post";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-reply-sender";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-save-as";
+ sensitive = any_messages_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-select-all";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-show-source";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-undelete";
+ sensitive = selection_has_deleted_messages;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-zoom-100";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-zoom-in";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+
+ action_name = "mail-zoom-out";
+ sensitive = single_message_selected;
+ action = e_mail_reader_get_action (reader, action_name);
+ gtk_action_set_sensitive (action, sensitive);
+}
+
+GtkAction *
+e_mail_reader_get_action (EMailReader *reader,
+ const gchar *action_name)
+{
+ GtkActionGroup *action_group;
+ GtkAction *action;
+
+ g_return_val_if_fail (E_IS_MAIL_READER (reader), NULL);
+ g_return_val_if_fail (action_name != NULL, NULL);
+
+ action_group = e_mail_reader_get_action_group (reader);
+ action = gtk_action_group_get_action (action_group, action_name);
+
+ if (action == NULL)
+ g_critical (
+ "%s: action `%s' not found", G_STRFUNC, action_name);
+
+ return action;
+}
+
GtkActionGroup *
e_mail_reader_get_action_group (EMailReader *reader)
{
@@ -2284,7 +2706,6 @@ e_mail_reader_create_charset_menu (EMailReader *reader,
GtkUIManager *ui_manager,
guint merge_id)
{
- GtkActionGroup *action_group;
GtkAction *action;
const gchar *action_name;
const gchar *path;
@@ -2294,8 +2715,7 @@ e_mail_reader_create_charset_menu (EMailReader *reader,
g_return_if_fail (GTK_IS_UI_MANAGER (ui_manager));
action_name = "mail-charset-default";
- action_group = e_mail_reader_get_action_group (reader);
- action = gtk_action_group_get_action (action_group, action_name);
+ action = e_mail_reader_get_action (reader, action_name);
g_return_if_fail (action != NULL);
list = gtk_radio_action_get_group (GTK_RADIO_ACTION (action));
diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h
index bf8f986145..4ddf844b6a 100644
--- a/mail/e-mail-reader.h
+++ b/mail/e-mail-reader.h
@@ -49,6 +49,28 @@ G_BEGIN_DECLS
typedef struct _EMailReader EMailReader;
typedef struct _EMailReaderIface EMailReaderIface;
+enum {
+ E_MAIL_READER_SELECTION_SINGLE = 1 << 0,
+ E_MAIL_READER_SELECTION_MULTIPLE = 1 << 1,
+ E_MAIL_READER_SELECTION_CAN_ADD_SENDER = 1 << 2,
+ E_MAIL_READER_SELECTION_CAN_EDIT = 1 << 3,
+ E_MAIL_READER_SELECTION_FLAG_CLEAR = 1 << 4,
+ E_MAIL_READER_SELECTION_FLAG_COMPLETED = 1 << 5,
+ E_MAIL_READER_SELECTION_FLAG_FOLLOWUP = 1 << 6,
+ E_MAIL_READER_SELECTION_HAS_DELETED = 1 << 7,
+ E_MAIL_READER_SELECTION_HAS_IMPORTANT = 1 << 8,
+ E_MAIL_READER_SELECTION_HAS_JUNK = 1 << 9,
+ E_MAIL_READER_SELECTION_HAS_NOT_JUNK = 1 << 10,
+ E_MAIL_READER_SELECTION_HAS_READ = 1 << 11,
+ E_MAIL_READER_SELECTION_HAS_UNDELETED = 1 << 12,
+ E_MAIL_READER_SELECTION_HAS_UNIMPORTANT = 1 << 13,
+ E_MAIL_READER_SELECTION_HAS_UNREAD = 1 << 14,
+ E_MAIL_READER_SELECTION_HAS_URI_CALLTO = 1 << 15,
+ E_MAIL_READER_SELECTION_HAS_URI_HTTP = 1 << 16,
+ E_MAIL_READER_SELECTION_HAS_URI_MAILTO = 1 << 17,
+ E_MAIL_READER_SELECTION_IS_MAILING_LIST = 1 << 18
+};
+
struct _EMailReaderIface {
GTypeInterface parent_iface;
@@ -72,6 +94,10 @@ struct _EMailReaderIface {
GType e_mail_reader_get_type (void);
void e_mail_reader_init (EMailReader *reader);
void e_mail_reader_changed (EMailReader *reader);
+guint32 e_mail_reader_check_state (EMailReader *reader);
+void e_mail_reader_update_actions (EMailReader *reader);
+GtkAction * e_mail_reader_get_action (EMailReader *reader,
+ const gchar *action_name);
GtkActionGroup *
e_mail_reader_get_action_group (EMailReader *reader);
gboolean e_mail_reader_get_hide_deleted (EMailReader *reader);
diff --git a/mail/e-mail-shell-content.c b/mail/e-mail-shell-content.c
index d0d51baf1b..747794b662 100644
--- a/mail/e-mail-shell-content.c
+++ b/mail/e-mail-shell-content.c
@@ -238,128 +238,7 @@ mail_shell_content_constructed (GObject *object)
static guint32
mail_shell_content_check_state (EShellContent *shell_content)
{
- EMailReader *reader;
- EMailShellContent *mail_shell_content;
- MessageList *message_list;
- GPtrArray *uids;
- CamelFolder *folder;
- CamelStore *store;
- const gchar *folder_uri;
- const gchar *tag;
- gboolean can_clear_flags = FALSE;
- gboolean can_flag_completed = FALSE;
- gboolean can_flag_for_followup = FALSE;
- gboolean has_deleted = FALSE;
- gboolean has_important = FALSE;
- gboolean has_junk = FALSE;
- gboolean has_not_junk = FALSE;
- gboolean has_read = FALSE;
- gboolean has_undeleted = FALSE;
- gboolean has_unimportant = FALSE;
- gboolean has_unread = FALSE;
- gboolean draft_or_outbox;
- guint32 state = 0;
- guint ii;
-
- reader = E_MAIL_READER (shell_content);
- message_list = e_mail_reader_get_message_list (reader);
- mail_shell_content = E_MAIL_SHELL_CONTENT (shell_content);
- uids = message_list_get_selected (message_list);
- folder_uri = message_list->folder_uri;
- folder = message_list->folder;
- store = CAMEL_STORE (folder->parent_store);
-
- draft_or_outbox =
- em_utils_folder_is_drafts (folder, folder_uri) ||
- em_utils_folder_is_outbox (folder, folder_uri);
- if (!draft_or_outbox) {
- has_junk = !(store->flags & CAMEL_STORE_VJUNK);
- has_not_junk = TRUE;
- }
-
- for (ii = 0; ii < uids->len; ii++) {
- CamelMessageInfo *info;
- guint32 flags;
-
- info = camel_folder_get_message_info (
- folder, uids->pdata[ii]);
- if (info == NULL)
- continue;
-
- flags = camel_message_info_flags (info);
-
- if (flags & CAMEL_MESSAGE_SEEN)
- has_read = TRUE;
- else
- has_unread = TRUE;
-
- if (flags & CAMEL_MESSAGE_DELETED)
- has_deleted = TRUE;
- else
- has_undeleted = TRUE;
-
- if (flags & CAMEL_MESSAGE_FLAGGED)
- has_important = TRUE;
- else
- has_unimportant = TRUE;
-
- tag = camel_message_info_user_tag (info, "follow-up");
- if (tag != NULL && *tag != '\0') {
- can_clear_flags = TRUE;
- tag = camel_message_info_user_tag (
- info, "completed-on");
- if (tag != NULL && *tag != '\0')
- can_flag_completed = TRUE;
- } else
- can_flag_for_followup = TRUE;
- }
-
- if (uids->len == 1)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_SINGLE;
- if (uids->len > 1)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_MULTIPLE;
- if (!draft_or_outbox && uids->len == 1)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_CAN_ADD_SENDER;
-#if 0 /* FIXME */
- if (can_edit)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_CAN_EDIT;
-#endif
- if (can_clear_flags)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_FLAG_CLEAR;
- if (can_flag_completed)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_FLAG_COMPLETED;
- if (can_flag_for_followup)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_FLAG_FOLLOWUP;
- if (has_deleted)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_DELETED;
- if (has_important)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_IMPORTANT;
- if (has_junk)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_JUNK;
- if (has_not_junk)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_NOT_JUNK;
- if (has_read)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_READ;
- if (has_undeleted)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNDELETED;
- if (has_unimportant)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNIMPORTANT;
- if (has_unread)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNREAD;
-#if 0 /* FIXME */
- if (has_callto_uri)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_CALLTO;
- if (has_http_uri)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_HTTP;
- if (has_mailto_uri)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_MAILTO;
- if (is_mailing_list)
- state |= E_MAIL_SHELL_CONTENT_SELECTION_IS_MAILING_LIST;
-#endif
-
- em_utils_uids_free (uids);
-
- return state;
+ return e_mail_reader_check_state (E_MAIL_READER (shell_content));
}
static GtkActionGroup *
diff --git a/mail/e-mail-shell-content.h b/mail/e-mail-shell-content.h
index 5a94df559c..9d2358590f 100644
--- a/mail/e-mail-shell-content.h
+++ b/mail/e-mail-shell-content.h
@@ -52,28 +52,6 @@ typedef struct _EMailShellContent EMailShellContent;
typedef struct _EMailShellContentClass EMailShellContentClass;
typedef struct _EMailShellContentPrivate EMailShellContentPrivate;
-enum {
- E_MAIL_SHELL_CONTENT_SELECTION_SINGLE = 1 << 0,
- E_MAIL_SHELL_CONTENT_SELECTION_MULTIPLE = 1 << 1,
- E_MAIL_SHELL_CONTENT_SELECTION_CAN_ADD_SENDER = 1 << 2,
- E_MAIL_SHELL_CONTENT_SELECTION_CAN_EDIT = 1 << 3,
- E_MAIL_SHELL_CONTENT_SELECTION_FLAG_CLEAR = 1 << 4,
- E_MAIL_SHELL_CONTENT_SELECTION_FLAG_COMPLETED = 1 << 5,
- E_MAIL_SHELL_CONTENT_SELECTION_FLAG_FOLLOWUP = 1 << 6,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_DELETED = 1 << 7,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_IMPORTANT = 1 << 8,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_JUNK = 1 << 9,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_NOT_JUNK = 1 << 10,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_READ = 1 << 11,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNDELETED = 1 << 12,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNIMPORTANT = 1 << 13,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_UNREAD = 1 << 14,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_CALLTO = 1 << 15,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_HTTP = 1 << 16,
- E_MAIL_SHELL_CONTENT_SELECTION_HAS_URI_MAILTO = 1 << 17,
- E_MAIL_SHELL_CONTENT_SELECTION_IS_MAILING_LIST = 1 << 18
-};
-
struct _EMailShellContent {
EShellContent parent;
EMailShellContentPrivate *priv;
diff --git a/mail/e-mail-shell-view-actions.c b/mail/e-mail-shell-view-actions.c
index 8037470ffe..a3d7397372 100644
--- a/mail/e-mail-shell-view-actions.c
+++ b/mail/e-mail-shell-view-actions.c
@@ -725,72 +725,64 @@ static GtkActionEntry mail_entries[] = {
N_("Subscribe or unsubscribe to folders on remote servers"),
G_CALLBACK (action_mail_tools_subscriptions_cb) },
- /*** Popup Menu Variations ***/
+ /*** Menus ***/
- { "mail-popup-folder-copy",
- "folder-copy",
- N_("_Copy Folder To..."),
+ { "mail-folder-menu",
NULL,
- N_("Copy the selected folder into another folder"),
- G_CALLBACK (action_mail_folder_copy_cb) },
-
- { "mail-popup-folder-delete",
- GTK_STOCK_DELETE,
+ N_("F_older"),
NULL,
NULL,
- N_("Permanently remove this folder"),
- G_CALLBACK (action_mail_folder_delete_cb) },
+ NULL },
- { "mail-popup-folder-move",
- "folder-move",
- N_("_Move Folder To..."),
+ { "mail-preview-menu",
NULL,
- N_("Move the selected folder into another folder"),
- G_CALLBACK (action_mail_folder_move_cb) },
-
- { "mail-popup-folder-new",
- "folder-new",
- N_("_New Folder..."),
+ N_("_Preview"),
NULL,
- N_("Create a new folder for storing mail"),
- G_CALLBACK (action_mail_folder_new_cb) },
+ NULL,
+ NULL }
+};
- { "mail-popup-folder-properties",
- GTK_STOCK_PROPERTIES,
+static EPopupActionEntry mail_popup_entries[] = {
+
+ { "mail-popup-account-disable",
NULL,
+ "mail-account-disable" },
+
+ { "mail-popup-empty-trash",
NULL,
- N_("Change the properties of this folder"),
- G_CALLBACK (action_mail_folder_properties_cb) },
+ "mail-empty-trash" },
- { "mail-popup-folder-refresh",
- GTK_STOCK_REFRESH,
+ { "mail-popup-flush-outbox",
NULL,
+ "mail-flush-outbox" },
+
+ { "mail-popup-folder-copy",
NULL,
- N_("Refresh the folder"),
- G_CALLBACK (action_mail_folder_refresh_cb) },
+ "mail-folder-copy" },
- { "mail-popup-folder-rename",
+ { "mail-popup-folder-delete",
NULL,
- N_("_Rename..."),
+ "mail-folder-delete" },
+
+ { "mail-popup-folder-move",
NULL,
- N_("Change the name of this folder"),
- G_CALLBACK (action_mail_folder_rename_cb) },
+ "mail-folder-move" },
- /*** Menus ***/
+ { "mail-popup-folder-new",
+ N_("_New Folder..."),
+ "mail-folder-new" },
- { "mail-folder-menu",
- NULL,
- N_("F_older"),
- NULL,
+ { "mail-popup-folder-properties",
NULL,
- NULL },
+ "mail-folder-properties" },
- { "mail-preview-menu",
- NULL,
- N_("_Preview"),
+ { "mail-popup-folder-refresh",
NULL,
+ "mail-folder-refresh" },
+
+ { "mail-popup-folder-rename",
NULL,
- NULL }
+ "mail-folder-rename" }
};
static GtkToggleActionEntry mail_toggle_entries[] = {
@@ -1054,6 +1046,9 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
gtk_action_group_add_actions (
action_group, mail_entries,
G_N_ELEMENTS (mail_entries), mail_shell_view);
+ e_action_group_add_popup_actions (
+ action_group, mail_popup_entries,
+ G_N_ELEMENTS (mail_popup_entries));
gtk_action_group_add_toggle_actions (
action_group, mail_toggle_entries,
G_N_ELEMENTS (mail_toggle_entries), mail_shell_view);
@@ -1088,34 +1083,4 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
object = G_OBJECT (ACTION (MAIL_VIEW_VERTICAL));
key = "/apps/evolution/mail/display/layout";
gconf_bridge_bind_property (bridge, key, object, "current-value");
-
- /* Fine tuning. */
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_COPY)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_COPY)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_DELETE)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_DELETE)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_MOVE)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_MOVE)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_NEW)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_NEW)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_PROPERTIES)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_PROPERTIES)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_REFRESH)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_REFRESH)), "visible");
-
- e_binding_new (
- G_OBJECT (ACTION (MAIL_FOLDER_RENAME)), "sensitive",
- G_OBJECT (ACTION (MAIL_POPUP_FOLDER_RENAME)), "visible");
}
diff --git a/mail/e-mail-shell-view-actions.h b/mail/e-mail-shell-view-actions.h
index 55125657b6..7e144ad4d7 100644
--- a/mail/e-mail-shell-view-actions.h
+++ b/mail/e-mail-shell-view-actions.h
@@ -135,20 +135,6 @@
E_SHELL_WINDOW_ACTION ((window), "mail-next-thread")
#define E_SHELL_WINDOW_ACTION_MAIL_NEXT_UNREAD(window) \
E_SHELL_WINDOW_ACTION ((window), "mail-next-unread")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_COPY(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-copy")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_DELETE(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-delete")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_MOVE(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-move")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_NEW(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-new")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_PROPERTIES(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-properties")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_REFRESH(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-refresh")
-#define E_SHELL_WINDOW_ACTION_MAIL_POPUP_FOLDER_RENAME(window) \
- E_SHELL_WINDOW_ACTION ((window), "mail-popup-folder-rename")
#define E_SHELL_WINDOW_ACTION_MAIL_PREVIEW(window) \
E_SHELL_WINDOW_ACTION ((window), "mail-preview")
#define E_SHELL_WINDOW_ACTION_MAIL_PREVIOUS(window) \
diff --git a/mail/e-mail-shell-view-private.h b/mail/e-mail-shell-view-private.h
index af9cc1a673..a3f7b8d99e 100644
--- a/mail/e-mail-shell-view-private.h
+++ b/mail/e-mail-shell-view-private.h
@@ -29,8 +29,8 @@
#include <camel/camel-vtrash-folder.h>
#include "e-util/e-util.h"
-#include "e-util/e-binding.h"
#include "e-util/gconf-bridge.h"
+#include "widgets/misc/e-popup-action.h"
#include "widgets/menus/gal-view-instance.h"
#include "e-mail-reader.h"
diff --git a/mail/e-mail-shell-view.c b/mail/e-mail-shell-view.c
index f93e72c043..5a338ab011 100644
--- a/mail/e-mail-shell-view.c
+++ b/mail/e-mail-shell-view.c
@@ -88,6 +88,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
{
EMailShellViewPrivate *priv;
EMailShellSidebar *mail_shell_sidebar;
+ EShellContent *shell_content;
EShellSidebar *shell_sidebar;
EShellWindow *shell_window;
EMFolderTree *folder_tree;
@@ -96,7 +97,6 @@ mail_shell_view_update_actions (EShellView *shell_view)
const gchar *label;
gchar *uri;
gboolean sensitive;
- gboolean visible;
guint32 state;
/* Be descriptive. */
@@ -112,6 +112,9 @@ mail_shell_view_update_actions (EShellView *shell_view)
shell_window = e_shell_view_get_shell_window (shell_view);
+ shell_content = e_shell_view_get_shell_content (shell_view);
+ e_mail_reader_update_actions (E_MAIL_READER (shell_content));
+
mail_shell_sidebar = priv->mail_shell_sidebar;
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
@@ -144,21 +147,21 @@ mail_shell_view_update_actions (EShellView *shell_view)
}
action = ACTION (MAIL_ACCOUNT_DISABLE);
- visible = (account != NULL) && folder_is_store;
+ sensitive = (account != NULL) && folder_is_store;
if (account_is_groupwise)
label = _("Proxy _Logout");
else
label = _("_Disable Account");
- gtk_action_set_visible (action, visible);
+ gtk_action_set_sensitive (action, sensitive);
g_object_set (action, "label", label, NULL);
action = ACTION (MAIL_EMPTY_TRASH);
- visible = folder_is_trash;
- gtk_action_set_visible (action, visible);
+ sensitive = folder_is_trash;
+ gtk_action_set_sensitive (action, sensitive);
action = ACTION (MAIL_FLUSH_OUTBOX);
- visible = folder_is_outbox;
- gtk_action_set_visible (action, visible);
+ sensitive = folder_is_outbox;
+ gtk_action_set_sensitive (action, sensitive);
action = ACTION (MAIL_FOLDER_COPY);
sensitive = !folder_is_store;
@@ -182,9 +185,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
action = ACTION (MAIL_FOLDER_REFRESH);
sensitive = !folder_is_store;
- visible = !folder_is_outbox;
gtk_action_set_sensitive (action, sensitive);
- gtk_action_set_visible (action, visible);
action = ACTION (MAIL_FOLDER_RENAME);
sensitive = !folder_is_store && folder_can_be_deleted;
diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c
index 51846a2bcb..4d94ec3309 100644
--- a/mail/em-folder-view.c
+++ b/mail/em-folder-view.c
@@ -110,54 +110,54 @@ static const EMFolderViewEnable emfv_enable_map[] = {
{ "EditCut", EM_POPUP_SELECT_MANY },
{ "EditCopy", EM_FOLDER_VIEW_SELECT_SELECTION },
{ "EditPaste", EM_POPUP_SELECT_FOLDER },
- { "SelectAllText", EM_POPUP_SELECT_ONE },
+// { "SelectAllText", EM_POPUP_SELECT_ONE },
/* FIXME: should these be single-selection? */
{ "MailNext", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_NEXT_MSG },
- { "MailNextFlagged", EM_POPUP_SELECT_MANY },
- { "MailNextUnread", EM_POPUP_SELECT_MANY },
- { "MailNextThread", EM_POPUP_SELECT_MANY },
+// { "MailNextFlagged", EM_POPUP_SELECT_MANY },
+// { "MailNextUnread", EM_POPUP_SELECT_MANY },
+// { "MailNextThread", EM_POPUP_SELECT_MANY },
{ "MailPrevious", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_PREV_MSG },
- { "MailPreviousFlagged", EM_POPUP_SELECT_MANY },
- { "MailPreviousUnread", EM_POPUP_SELECT_MANY },
+// { "MailPreviousFlagged", EM_POPUP_SELECT_MANY },
+// { "MailPreviousUnread", EM_POPUP_SELECT_MANY },
{ "AddSenderToAddressbook", EM_POPUP_SELECT_ADD_SENDER },
- { "MessageApplyFilters", EM_POPUP_SELECT_MANY },
- { "MessageFilterJunk", EM_POPUP_SELECT_MANY },
- { "MessageCopy", EM_POPUP_SELECT_MANY },
- { "MessageDelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_DELETE },
- { "MessageDeleteKey", EM_POPUP_SELECT_MANY},
- { "MessageForward", EM_POPUP_SELECT_MANY },
- { "MessageForwardAttached", EM_POPUP_SELECT_MANY },
- { "MessageForwardInline", EM_POPUP_SELECT_ONE },
- { "MessageForwardQuoted", EM_POPUP_SELECT_ONE },
- { "MessageRedirect", EM_POPUP_SELECT_ONE },
- { "MessageMarkAsRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_READ },
- { "MessageMarkAsUnRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNREAD },
- { "MessageMarkAsImportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_IMPORTANT },
- { "MessageMarkAsUnimportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNIMPORTANT },
- { "MessageMarkAsJunk", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_JUNK },
- { "MessageMarkAsNotJunk", EM_POPUP_SELECT_MANY},
+// { "MessageApplyFilters", EM_POPUP_SELECT_MANY },
+// { "MessageFilterJunk", EM_POPUP_SELECT_MANY },
+// { "MessageCopy", EM_POPUP_SELECT_MANY },
+// { "MessageDelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_DELETE },
+// { "MessageDeleteKey", EM_POPUP_SELECT_MANY},
+// { "MessageForward", EM_POPUP_SELECT_MANY },
+// { "MessageForwardAttached", EM_POPUP_SELECT_MANY },
+// { "MessageForwardInline", EM_POPUP_SELECT_ONE },
+// { "MessageForwardQuoted", EM_POPUP_SELECT_ONE },
+// { "MessageRedirect", EM_POPUP_SELECT_ONE },
+// { "MessageMarkAsRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_READ },
+// { "MessageMarkAsUnRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNREAD },
+// { "MessageMarkAsImportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_IMPORTANT },
+// { "MessageMarkAsUnimportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNIMPORTANT },
+// { "MessageMarkAsJunk", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_JUNK },
+// { "MessageMarkAsNotJunk", EM_POPUP_SELECT_MANY},
{ "MessageFollowUpFlag", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_FOLLOWUP },
{ "MessageFollowUpComplete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_COMPLETED },
{ "MessageFollowUpClear", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_CLEAR },
- { "MessageMove", EM_POPUP_SELECT_MANY },
- { "MessageOpen", EM_POPUP_SELECT_MANY },
- { "MessagePostReply", EM_POPUP_SELECT_ONE },
- { "MessageReplyAll", EM_POPUP_SELECT_ONE },
- { "MessageReplyList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST },
- { "MessageReplySender", EM_POPUP_SELECT_ONE },
- { "MessageEdit", EM_POPUP_SELECT_ONE },
- { "MessageSaveAs", EM_POPUP_SELECT_MANY },
+// { "MessageMove", EM_POPUP_SELECT_MANY },
+// { "MessageOpen", EM_POPUP_SELECT_MANY },
+// { "MessagePostReply", EM_POPUP_SELECT_ONE },
+// { "MessageReplyAll", EM_POPUP_SELECT_ONE },
+// { "MessageReplyList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST },
+// { "MessageReplySender", EM_POPUP_SELECT_ONE },
+// { "MessageEdit", EM_POPUP_SELECT_ONE },
+// { "MessageSaveAs", EM_POPUP_SELECT_MANY },
{ "MessageSearch", EM_POPUP_SELECT_ONE| EM_FOLDER_VIEW_PREVIEW_PRESENT },
- { "MessageUndelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_UNDELETE },
- { "PrintMessage", EM_POPUP_SELECT_ONE },
- { "PrintPreviewMessage", EM_POPUP_SELECT_ONE },
+// { "MessageUndelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_UNDELETE },
+// { "PrintMessage", EM_POPUP_SELECT_ONE },
+// { "PrintPreviewMessage", EM_POPUP_SELECT_ONE },
- { "TextZoomIn", EM_POPUP_SELECT_ONE },
- { "TextZoomOut", EM_POPUP_SELECT_ONE },
- { "TextZoomReset", EM_POPUP_SELECT_ONE },
+// { "TextZoomIn", EM_POPUP_SELECT_ONE },
+// { "TextZoomOut", EM_POPUP_SELECT_ONE },
+// { "TextZoomReset", EM_POPUP_SELECT_ONE },
{ "ToolsFilterMailingList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST},
{ "ToolsFilterRecipient", EM_POPUP_SELECT_ONE },
@@ -168,11 +168,11 @@ static const EMFolderViewEnable emfv_enable_map[] = {
{ "ToolsVFolderSender", EM_POPUP_SELECT_ONE },
{ "ToolsVFolderSubject", EM_POPUP_SELECT_ONE },
- { "ViewLoadImages", EM_POPUP_SELECT_ONE },
- { "ViewSource", EM_POPUP_SELECT_ONE },
+// { "ViewLoadImages", EM_POPUP_SELECT_ONE },
+// { "ViewSource", EM_POPUP_SELECT_ONE },
- /* always enabled */
- { "MailStop", 0 },
+// /* always enabled */
+// { "MailStop", 0 },
{ NULL },
};