[evolution] MessageList: Add a "show-deleted" property.



commit b688b36e2d6883f475f653a4f56a160f7b9b2578
Author: Matthew Barnes <mbarnes redhat com>
Date:   Fri Jun 14 15:05:43 2013 -0400

    MessageList: Add a "show-deleted" property.
    
    Bind this to the "show-deleted" GSettings key.
    
    New functions:
    
      message_list_get_show_deleted()
      message_list_set_show_deleted()

 mail/message-list.c                        |   53 ++++++++++++++++++++++++++++
 mail/message-list.h                        |    3 ++
 modules/settings/e-settings-message-list.c |    5 +++
 3 files changed, 61 insertions(+), 0 deletions(-)
---
diff --git a/mail/message-list.c b/mail/message-list.c
index f7c58d2..77b82ef 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -102,6 +102,7 @@ struct _MessageListPrivate {
        struct _MLSelection clipboard;
        gboolean destroyed;
 
+       gboolean show_deleted;
        gboolean thread_latest;
        gboolean thread_subject;
        gboolean any_row_changed; /* save state before regen list when this is set to true */
@@ -156,6 +157,7 @@ enum {
        PROP_FOLDER,
        PROP_PASTE_TARGET_LIST,
        PROP_SESSION,
+       PROP_SHOW_DELETED,
        PROP_THREAD_LATEST,
        PROP_THREAD_SUBJECT
 };
@@ -2691,6 +2693,12 @@ message_list_set_property (GObject *object,
                                g_value_get_object (value));
                        return;
 
+               case PROP_SHOW_DELETED:
+                       message_list_set_show_deleted (
+                               MESSAGE_LIST (object),
+                               g_value_get_boolean (value));
+                       return;
+
                case PROP_THREAD_LATEST:
                        message_list_set_thread_latest (
                                MESSAGE_LIST (object),
@@ -2742,6 +2750,13 @@ message_list_get_property (GObject *object,
                                MESSAGE_LIST (object)));
                        return;
 
+               case PROP_SHOW_DELETED:
+                       g_value_set_boolean (
+                               value,
+                               message_list_get_show_deleted (
+                               MESSAGE_LIST (object)));
+                       return;
+
                case PROP_THREAD_LATEST:
                        g_value_set_boolean (
                                value,
@@ -2944,6 +2959,18 @@ message_list_class_init (MessageListClass *class)
 
        g_object_class_install_property (
                object_class,
+               PROP_SHOW_DELETED,
+               g_param_spec_boolean (
+                       "show-deleted",
+                       "Show Deleted",
+                       "Show messages marked for deletion",
+                       FALSE,
+                       G_PARAM_READWRITE |
+                       G_PARAM_CONSTRUCT |
+                       G_PARAM_STATIC_STRINGS));
+
+       g_object_class_install_property (
+               object_class,
                PROP_THREAD_LATEST,
                g_param_spec_boolean (
                        "thread-latest",
@@ -4018,6 +4045,32 @@ message_list_get_paste_target_list (MessageList *message_list)
 }
 
 gboolean
+message_list_get_show_deleted (MessageList *message_list)
+{
+       g_return_val_if_fail (IS_MESSAGE_LIST (message_list), FALSE);
+
+       return message_list->priv->show_deleted;
+}
+
+void
+message_list_set_show_deleted (MessageList *message_list,
+                               gboolean show_deleted)
+{
+       g_return_if_fail (IS_MESSAGE_LIST (message_list));
+
+       if (show_deleted == message_list->priv->show_deleted)
+               return;
+
+       message_list->priv->show_deleted = show_deleted;
+
+       g_object_notify (G_OBJECT (message_list), "show-deleted");
+
+       /* Changing this property triggers a message list regen. */
+       if (message_list->frozen == 0)
+               mail_regen_list (message_list, message_list->search, FALSE);
+}
+
+gboolean
 message_list_get_thread_latest (MessageList *message_list)
 {
        g_return_val_if_fail (IS_MESSAGE_LIST (message_list), FALSE);
diff --git a/mail/message-list.h b/mail/message-list.h
index ec76cc6..1b05639 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -171,6 +171,9 @@ GtkTargetList *     message_list_get_copy_target_list
                                                (MessageList *message_list);
 GtkTargetList *        message_list_get_paste_target_list
                                                (MessageList *message_list);
+gboolean       message_list_get_show_deleted   (MessageList *message_list);
+void           message_list_set_show_deleted   (MessageList *message_list,
+                                                gboolean show_deleted);
 gboolean       message_list_get_thread_latest  (MessageList *message_list);
 void           message_list_set_thread_latest  (MessageList *message_list,
                                                 gboolean thread_latest);
diff --git a/modules/settings/e-settings-message-list.c b/modules/settings/e-settings-message-list.c
index 35c1274..513069d 100644
--- a/modules/settings/e-settings-message-list.c
+++ b/modules/settings/e-settings-message-list.c
@@ -48,6 +48,11 @@ settings_message_list_constructed (GObject *object)
        settings = g_settings_new ("org.gnome.evolution.mail");
 
        g_settings_bind (
+               settings, "show-deleted",
+               message_list, "show-deleted",
+               G_SETTINGS_BIND_GET);
+
+       g_settings_bind (
                settings, "thread-latest",
                message_list, "thread-latest",
                G_SETTINGS_BIND_GET);


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