diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-20 08:05:40 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2009-01-20 08:05:40 +0800 |
commit | 22d41a51fae2d18315887b05000cf7facc36e887 (patch) | |
tree | 044eaaa852ca31a11ea70ec8bfa33c6df8c01891 /mail | |
parent | 8e546420df08f5fe243aa4227be44915fd79b86b (diff) | |
download | gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar.gz gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar.bz2 gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar.lz gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar.xz gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.tar.zst gsoc2013-evolution-22d41a51fae2d18315887b05000cf7facc36e887.zip |
Formalize the "no disabled items in popup menus" policy in the form of a
GtkAction subclass called EPopupAction. Migrate all the modules over to
using EPopupActions in their popup menus.
Add sensitivity management of GtkActions to EMailReader. Not finished.
svn path=/branches/kill-bonobo/; revision=37106
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-mail-reader.c | 554 | ||||
-rw-r--r-- | mail/e-mail-reader.h | 26 | ||||
-rw-r--r-- | mail/e-mail-shell-content.c | 123 | ||||
-rw-r--r-- | mail/e-mail-shell-content.h | 22 | ||||
-rw-r--r-- | mail/e-mail-shell-view-actions.c | 113 | ||||
-rw-r--r-- | mail/e-mail-shell-view-actions.h | 14 | ||||
-rw-r--r-- | mail/e-mail-shell-view-private.h | 2 | ||||
-rw-r--r-- | mail/e-mail-shell-view.c | 19 | ||||
-rw-r--r-- | mail/em-folder-view.c | 80 |
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 }, }; |