[evolution] Bug #725615 - Disable Delete button in a vTrash folder



commit ddffaf3bcef9daf894e85911cd6179b9458ee502
Author: Milan Crha <mcrha redhat com>
Date:   Thu Mar 6 11:49:03 2014 +0100

    Bug #725615 - Disable Delete button in a vTrash folder

 mail/e-mail-reader.c |    9 +++++++--
 mail/e-mail-reader.h |    3 ++-
 2 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index d0a8512..e1c477e 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -3326,8 +3326,9 @@ mail_reader_update_actions (EMailReader *reader,
         * advance the cursor even if the message is already deleted. */
        action_name = "mail-delete";
        sensitive =
-               single_message_selected ||
-               selection_has_undeleted_messages;
+               (single_message_selected ||
+               selection_has_undeleted_messages) &&
+               (state & E_MAIL_READER_FOLDER_IS_VTRASH) == 0;
        action = e_mail_reader_get_action (reader, action_name);
        gtk_action_set_sensitive (action, sensitive);
 
@@ -4042,6 +4043,7 @@ e_mail_reader_check_state (EMailReader *reader)
        gboolean store_supports_vjunk = FALSE;
        gboolean is_mailing_list;
        gboolean is_junk_folder = FALSE;
+       gboolean is_vtrash_folder = FALSE;
        guint32 state = 0;
        guint ii;
 
@@ -4062,6 +4064,7 @@ e_mail_reader_check_state (EMailReader *reader)
                store_supports_vjunk = (store->flags & CAMEL_STORE_VJUNK);
                is_junk_folder =
                        (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
+               is_vtrash_folder = (store->flags & CAMEL_STORE_VTRASH) != 0 && (folder->folder_flags & 
CAMEL_FOLDER_IS_TRASH) != 0;
                drafts_or_outbox =
                        em_utils_folder_is_drafts (registry, folder) ||
                        em_utils_folder_is_outbox (registry, folder);
@@ -4189,6 +4192,8 @@ e_mail_reader_check_state (EMailReader *reader)
                state |= E_MAIL_READER_SELECTION_IS_MAILING_LIST;
        if (is_junk_folder)
                state |= E_MAIL_READER_FOLDER_IS_JUNK;
+       if (is_vtrash_folder)
+               state |= E_MAIL_READER_FOLDER_IS_VTRASH;
 
        g_clear_object (&folder);
        g_ptr_array_unref (uids);
diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h
index 90e86f4..5d081c2 100644
--- a/mail/e-mail-reader.h
+++ b/mail/e-mail-reader.h
@@ -86,7 +86,8 @@ enum {
        E_MAIL_READER_SELECTION_HAS_UNREAD = 1 << 14,
        E_MAIL_READER_SELECTION_HAS_ATTACHMENTS = 1 << 15,
        E_MAIL_READER_SELECTION_IS_MAILING_LIST = 1 << 16,
-       E_MAIL_READER_FOLDER_IS_JUNK = 1 << 17
+       E_MAIL_READER_FOLDER_IS_JUNK = 1 << 17,
+       E_MAIL_READER_FOLDER_IS_VTRASH = 1 << 18
 };
 
 struct _EMailReaderInterface {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]