From ff736e48b2d4375d86af8bbb9ab535f62180e61d Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 17 Aug 2009 12:15:57 -0400 Subject: =?UTF-8?q?Bug=C2=A0592034=20-=20Reply=20to=20List=20doesn't=20wor?= =?UTF-8?q?k?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mail/e-mail-reader.c | 22 ++++++++++------------ mail/e-mail-reader.h | 27 ++++++++++++--------------- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c index 0362cb110a..ed70753719 100644 --- a/mail/e-mail-reader.c +++ b/mail/e-mail-reader.c @@ -2141,6 +2141,7 @@ e_mail_reader_check_state (EMailReader *reader) gboolean has_unread = FALSE; gboolean drafts_or_outbox; gboolean store_supports_vjunk = FALSE; + gboolean is_mailing_list; guint32 state = 0; guint ii; @@ -2160,8 +2161,13 @@ e_mail_reader_check_state (EMailReader *reader) em_utils_folder_is_drafts (folder, folder_uri) || em_utils_folder_is_outbox (folder, folder_uri); + /* Initialize this flag based on whether there are any + * messages selected. We will update it in the loop. */ + is_mailing_list = (uids->len > 0); + for (ii = 0; ii < uids->len; ii++) { CamelMessageInfo *info; + const gchar *string; guint32 flags; info = camel_folder_get_message_info ( @@ -2227,6 +2233,9 @@ e_mail_reader_check_state (EMailReader *reader) can_flag_completed = TRUE; } else can_flag_for_followup = TRUE; + + string = camel_message_info_mlist (info); + is_mailing_list &= (string != NULL && *string != '\0'); } if (em_utils_check_user_can_send_mail ()) @@ -2237,10 +2246,6 @@ e_mail_reader_check_state (EMailReader *reader) state |= E_MAIL_READER_SELECTION_MULTIPLE; if (!drafts_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) @@ -2263,14 +2268,8 @@ e_mail_reader_check_state (EMailReader *reader) state |= E_MAIL_READER_SELECTION_HAS_UNIMPORTANT; if (has_unread) state |= E_MAIL_READER_SELECTION_HAS_UNREAD; -#if 0 /* FIXME */ - 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); @@ -2327,7 +2326,7 @@ e_mail_reader_update_actions (EMailReader *reader) (state & E_MAIL_READER_SELECTION_SINGLE); multiple_messages_selected = (state & E_MAIL_READER_SELECTION_MULTIPLE); - /* FIXME Missing booleans */ + /* FIXME Missing CAN_ADD_SENDER */ enable_flag_clear = (state & E_MAIL_READER_SELECTION_FLAG_CLEAR); enable_flag_completed = @@ -2350,7 +2349,6 @@ e_mail_reader_update_actions (EMailReader *reader) (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); diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h index 08d6f23e51..0fb557f5b7 100644 --- a/mail/e-mail-reader.h +++ b/mail/e-mail-reader.h @@ -60,21 +60,18 @@ enum { E_MAIL_READER_SELECTION_SINGLE = 1 << 1, E_MAIL_READER_SELECTION_MULTIPLE = 1 << 2, E_MAIL_READER_SELECTION_CAN_ADD_SENDER = 1 << 3, - E_MAIL_READER_SELECTION_CAN_EDIT = 1 << 4, - E_MAIL_READER_SELECTION_FLAG_CLEAR = 1 << 5, - E_MAIL_READER_SELECTION_FLAG_COMPLETED = 1 << 6, - E_MAIL_READER_SELECTION_FLAG_FOLLOWUP = 1 << 7, - E_MAIL_READER_SELECTION_HAS_DELETED = 1 << 8, - E_MAIL_READER_SELECTION_HAS_IMPORTANT = 1 << 9, - E_MAIL_READER_SELECTION_HAS_JUNK = 1 << 10, - E_MAIL_READER_SELECTION_HAS_NOT_JUNK = 1 << 11, - E_MAIL_READER_SELECTION_HAS_READ = 1 << 12, - E_MAIL_READER_SELECTION_HAS_UNDELETED = 1 << 13, - E_MAIL_READER_SELECTION_HAS_UNIMPORTANT = 1 << 14, - E_MAIL_READER_SELECTION_HAS_UNREAD = 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 + 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_IS_MAILING_LIST = 1 << 15 }; struct _EMailReaderIface { -- cgit v1.2.3