aboutsummaryrefslogtreecommitdiffstats
path: root/mail/e-mail-shell-content.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2009-01-20 08:05:40 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2009-01-20 08:05:40 +0800
commit22d41a51fae2d18315887b05000cf7facc36e887 (patch)
tree044eaaa852ca31a11ea70ec8bfa33c6df8c01891 /mail/e-mail-shell-content.c
parent8e546420df08f5fe243aa4227be44915fd79b86b (diff)
downloadgsoc2013-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/e-mail-shell-content.c')
-rw-r--r--mail/e-mail-shell-content.c123
1 files changed, 1 insertions, 122 deletions
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 *