[evolution/wip/camel-more-gobject] Seal CamelFolder properties



commit ea338924f4878e60ad932c43447198cf3094105e
Author: Milan Crha <mcrha redhat com>
Date:   Wed Nov 2 23:20:37 2016 +0100

    Seal CamelFolder properties

 src/libemail-engine/mail-folder-cache.c      |    2 +-
 src/mail/e-mail-backend.c                    |    2 +-
 src/mail/e-mail-reader.c                     |    7 +++--
 src/mail/em-folder-properties.c              |    4 +-
 src/mail/message-list.c                      |   31 ++++++++++++++-----------
 src/modules/itip-formatter/itip-view.c       |    2 +-
 src/modules/mail/e-mail-shell-view-actions.c |    4 +-
 src/modules/mail/e-mail-shell-view-private.c |   17 +++++++------
 src/plugins/templates/e-templates-store.c    |    8 +++---
 9 files changed, 41 insertions(+), 36 deletions(-)
---
diff --git a/src/libemail-engine/mail-folder-cache.c b/src/libemail-engine/mail-folder-cache.c
index 5c68cf2..cb17722 100644
--- a/src/libemail-engine/mail-folder-cache.c
+++ b/src/libemail-engine/mail-folder-cache.c
@@ -819,7 +819,7 @@ update_1folder (MailFolderCache *cache,
                                if (deleted > 0)
                                        unread -= deleted;
 
-                               junked = camel_folder_summary_get_junk_count (folder->summary);
+                               junked = camel_folder_summary_get_junk_count (camel_folder_get_folder_summary 
(folder));
                                if (junked > 0)
                                        unread -= junked;
                        }
diff --git a/src/mail/e-mail-backend.c b/src/mail/e-mail-backend.c
index 9e76425..242576d 100644
--- a/src/mail/e-mail-backend.c
+++ b/src/mail/e-mail-backend.c
@@ -510,7 +510,7 @@ mail_backend_quit_requested_cb (EShell *shell,
        if (folder == NULL)
                return;
 
-       if (camel_folder_summary_get_visible_count (folder->summary) == 0)
+       if (camel_folder_summary_get_visible_count (camel_folder_get_folder_summary (folder)) == 0)
                return;
 
        app_windows = gtk_application_get_windows (GTK_APPLICATION (shell));
diff --git a/src/mail/e-mail-reader.c b/src/mail/e-mail-reader.c
index d99ef32..6ca3a50 100644
--- a/src/mail/e-mail-reader.c
+++ b/src/mail/e-mail-reader.c
@@ -4542,11 +4542,12 @@ e_mail_reader_check_state (EMailReader *reader)
 
        if (folder != NULL) {
                gchar *archive_folder;
+               guint32 folder_flags;
 
                store = camel_folder_get_parent_store (folder);
-               is_junk_folder =
-                       (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
-               is_vtrash_folder = (camel_store_get_flags (store) & CAMEL_STORE_VTRASH) != 0 && 
(folder->folder_flags & CAMEL_FOLDER_IS_TRASH) != 0;
+               folder_flags = camel_folder_get_flags (folder);
+               is_junk_folder = (folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
+               is_vtrash_folder = (camel_store_get_flags (store) & CAMEL_STORE_VTRASH) != 0 && (folder_flags 
& CAMEL_FOLDER_IS_TRASH) != 0;
                drafts_or_outbox =
                        em_utils_folder_is_drafts (registry, folder) ||
                        em_utils_folder_is_outbox (registry, folder);
diff --git a/src/mail/em-folder-properties.c b/src/mail/em-folder-properties.c
index e63205d..1aae208 100644
--- a/src/mail/em-folder-properties.c
+++ b/src/mail/em-folder-properties.c
@@ -727,7 +727,7 @@ emfp_dialog_run (AsyncContext *context)
        /* Get number of VISIBLE and DELETED messages, instead of TOTAL
         * messages.  VISIBLE+DELETED gives the correct count that matches
         * the label below the Send & Receive button. */
-       summary = context->folder->summary;
+       summary = camel_folder_get_folder_summary (context->folder);
        context->total = camel_folder_summary_get_visible_count (summary);
        context->unread = camel_folder_summary_get_unread_count (summary);
        deleted = camel_folder_summary_get_deleted_count (summary);
@@ -751,7 +751,7 @@ emfp_dialog_run (AsyncContext *context)
         */
        if (camel_store_get_flags (parent_store) & CAMEL_STORE_VJUNK)
                context->total = camel_folder_summary_count (
-                       context->folder->summary);
+                       camel_folder_get_folder_summary (context->folder));
 
        name = camel_folder_get_display_name (context->folder);
 
diff --git a/src/mail/message-list.c b/src/mail/message-list.c
index 5a4822b..0b442f8 100644
--- a/src/mail/message-list.c
+++ b/src/mail/message-list.c
@@ -3918,6 +3918,8 @@ static gboolean
 message_list_get_hide_junk (MessageList *message_list,
                             CamelFolder *folder)
 {
+       guint32 folder_flags;
+
        if (folder == NULL)
                return FALSE;
 
@@ -3927,10 +3929,12 @@ message_list_get_hide_junk (MessageList *message_list,
        if (!folder_store_supports_vjunk_folder (folder))
                return FALSE;
 
-       if (folder->folder_flags & CAMEL_FOLDER_IS_JUNK)
+       folder_flags = camel_folder_get_flags (folder);
+
+       if (folder_flags & CAMEL_FOLDER_IS_JUNK)
                return FALSE;
 
-       if (folder->folder_flags & CAMEL_FOLDER_IS_TRASH)
+       if (folder_flags & CAMEL_FOLDER_IS_TRASH)
                return FALSE;
 
        if (CAMEL_IS_VEE_FOLDER (folder)) {
@@ -3960,7 +3964,7 @@ message_list_get_hide_deleted (MessageList *message_list,
 
        non_trash_folder =
                ((camel_store_get_flags (store) & CAMEL_STORE_VTRASH) == 0) ||
-               ((folder->folder_flags & CAMEL_FOLDER_IS_TRASH) == 0);
+               ((camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_TRASH) == 0);
 
        if (non_trash_folder && CAMEL_IS_VEE_FOLDER (folder)) {
                const gchar *expr = camel_vee_folder_get_expression (CAMEL_VEE_FOLDER (folder));
@@ -3980,7 +3984,7 @@ is_node_selectable (MessageList *message_list,
        CamelFolder *folder;
        gboolean is_junk_folder;
        gboolean is_trash_folder;
-       guint32 flags;
+       guint32 flags, folder_flags;
        gboolean flag_junk;
        gboolean flag_deleted;
        gboolean hide_junk;
@@ -3994,12 +3998,11 @@ is_node_selectable (MessageList *message_list,
        g_return_val_if_fail (folder != NULL, FALSE);
 
        store_has_vjunk = folder_store_supports_vjunk_folder (folder);
+       folder_flags = camel_folder_get_flags (folder);
 
        /* check folder type */
-       is_junk_folder =
-               store_has_vjunk &&
-               (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
-       is_trash_folder = folder->folder_flags & CAMEL_FOLDER_IS_TRASH;
+       is_junk_folder = store_has_vjunk && (folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
+       is_trash_folder = folder_flags & CAMEL_FOLDER_IS_TRASH;
 
        hide_junk = message_list_get_hide_junk (message_list, folder);
        hide_deleted = message_list_get_hide_deleted (message_list, folder);
@@ -4762,10 +4765,10 @@ message_list_set_folder (MessageList *message_list,
 
                non_trash_folder =
                        ((camel_store_get_flags (store) & CAMEL_STORE_VTRASH) == 0) ||
-                       ((folder->folder_flags & CAMEL_FOLDER_IS_TRASH) == 0);
+                       ((camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_TRASH) == 0);
                non_junk_folder =
                        ((camel_store_get_flags (store) & CAMEL_STORE_VJUNK) == 0) ||
-                       ((folder->folder_flags & CAMEL_FOLDER_IS_JUNK) == 0);
+                       ((camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_JUNK) == 0);
 
                strikeout_col = -1;
                strikeout_color_col = -1;
@@ -5135,7 +5138,7 @@ on_click (ETree *tree,
        flags = camel_message_info_get_flags (info);
 
        folder_is_trash =
-               ((folder->folder_flags & CAMEL_FOLDER_IS_TRASH) != 0);
+               ((camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_TRASH) != 0);
 
        /* If a message was marked as deleted and the user flags it as
         * important or unread in a non-Trash folder, then undelete the
@@ -5622,7 +5625,7 @@ ml_sort_uids_by_tree (MessageList *message_list,
                g_ptr_array_add (sort_data.sort_columns, data);
        }
 
-       camel_folder_summary_prepare_fetch_all (folder->summary, NULL);
+       camel_folder_summary_prepare_fetch_all (camel_folder_get_folder_summary (folder), NULL);
 
        for (i = 0;
             i < uids->len
@@ -5657,7 +5660,7 @@ ml_sort_uids_by_tree (MessageList *message_list,
                        cmp_array_uids,
                        &sort_data);
 
-       camel_folder_summary_unlock (folder->summary);
+       camel_folder_summary_unlock (camel_folder_get_folder_summary (folder));
 
        /* FIXME Teach the hash table to destroy its own data. */
        g_hash_table_foreach (
@@ -5875,7 +5878,7 @@ message_list_regen_thread (GSimpleAsyncResult *simple,
                camel_folder_sort_uids (folder, uids);
                regen_data->summary = g_ptr_array_new ();
 
-               camel_folder_summary_prepare_fetch_all (folder->summary, NULL);
+               camel_folder_summary_prepare_fetch_all (camel_folder_get_folder_summary (folder), NULL);
 
                for (ii = 0; ii < uids->len; ii++) {
                        const gchar *uid;
diff --git a/src/modules/itip-formatter/itip-view.c b/src/modules/itip-formatter/itip-view.c
index e6d470a..5703011 100644
--- a/src/modules/itip-formatter/itip-view.c
+++ b/src/modules/itip-formatter/itip-view.c
@@ -5708,7 +5708,7 @@ in_proper_folder (CamelFolder *folder)
                        ));
        } else {
                /* cannot check for Inbox folder here */
-               res = (folder->folder_flags & (CAMEL_FOLDER_IS_TRASH | CAMEL_FOLDER_IS_JUNK)) == 0 && (
+               res = (camel_folder_get_flags (folder) & (CAMEL_FOLDER_IS_TRASH | CAMEL_FOLDER_IS_JUNK)) == 0 
&& (
                      (CAMEL_IS_VEE_FOLDER (folder)) || (
                      !em_utils_folder_is_sent (registry, folder) &&
                      !em_utils_folder_is_outbox (registry, folder) &&
diff --git a/src/modules/mail/e-mail-shell-view-actions.c b/src/modules/mail/e-mail-shell-view-actions.c
index a2b77b3..0ee28a8 100644
--- a/src/modules/mail/e-mail-shell-view-actions.c
+++ b/src/modules/mail/e-mail-shell-view-actions.c
@@ -761,8 +761,8 @@ action_mail_folder_mark_all_as_read_cb (GtkAction *action,
        folder = e_mail_reader_ref_folder (reader);
        g_return_if_fail (folder != NULL);
 
-       if (folder->summary != NULL &&
-           camel_folder_summary_get_unread_count (folder->summary) == 0) {
+       if (camel_folder_get_folder_summary (folder) != NULL &&
+           camel_folder_summary_get_unread_count (camel_folder_get_folder_summary (folder)) == 0) {
                g_object_unref (folder);
                return;
        }
diff --git a/src/modules/mail/e-mail-shell-view-private.c b/src/modules/mail/e-mail-shell-view-private.c
index e8bed96..a8b6cb9 100644
--- a/src/modules/mail/e-mail-shell-view-private.c
+++ b/src/modules/mail/e-mail-shell-view-private.c
@@ -886,6 +886,7 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
        CamelStore *parent_store;
        CamelFolder *folder;
        CamelFolderInfoFlags flags = 0;
+       CamelFolderSummary *folder_summary;
        MailFolderCache *folder_cache;
        MessageList *message_list;
        guint selected_count;
@@ -934,18 +935,18 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
 
        folder_name = camel_folder_get_display_name (folder);
        parent_store = camel_folder_get_parent_store (folder);
+       folder_summary = camel_folder_get_folder_summary (folder);
 
        folder_cache = e_mail_session_get_folder_cache (
                e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend)));
        mail_folder_cache_get_folder_info_flags (folder_cache, parent_store, folder_name, &flags);
        is_inbox = (flags & CAMEL_FOLDER_TYPE_MASK) == CAMEL_FOLDER_TYPE_INBOX;
 
-       num_deleted = camel_folder_summary_get_deleted_count (folder->summary);
-       num_junked = camel_folder_summary_get_junk_count (folder->summary);
-       num_junked_not_deleted =
-               camel_folder_summary_get_junk_not_deleted_count (folder->summary);
-       num_unread = camel_folder_summary_get_unread_count (folder->summary);
-       num_visible = camel_folder_summary_get_visible_count (folder->summary);
+       num_deleted = camel_folder_summary_get_deleted_count (folder_summary);
+       num_junked = camel_folder_summary_get_junk_count (folder_summary);
+       num_junked_not_deleted = camel_folder_summary_get_junk_not_deleted_count (folder_summary);
+       num_unread = camel_folder_summary_get_unread_count (folder_summary);
+       num_visible = camel_folder_summary_get_visible_count (folder_summary);
 
        buffer = g_string_sized_new (256);
        message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader));
@@ -957,7 +958,7 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
                        selected_count), selected_count);
 
        /* "Trash" folder (virtual or real) */
-       if (folder->folder_flags & CAMEL_FOLDER_IS_TRASH) {
+       if (camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_TRASH) {
                if (CAMEL_IS_VTRASH_FOLDER (folder)) {
                        /* For a virtual Trash folder, count
                         * the messages marked for deletion. */
@@ -984,7 +985,7 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
                }
 
        /* "Junk" folder (virtual or real) */
-       } else if (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) {
+       } else if (camel_folder_get_flags (folder) & CAMEL_FOLDER_IS_JUNK) {
                if (e_mail_reader_get_hide_deleted (reader)) {
                        /* Junk folder with deleted messages hidden. */
                        g_string_append_printf (
diff --git a/src/plugins/templates/e-templates-store.c b/src/plugins/templates/e-templates-store.c
index b8668ee..1f4017b 100644
--- a/src/plugins/templates/e-templates-store.c
+++ b/src/plugins/templates/e-templates-store.c
@@ -445,10 +445,10 @@ tmpl_folder_data_update_sync (TmplFolderData *tfd,
        g_return_val_if_fail (CAMEL_IS_FOLDER (tfd->folder), FALSE);
 
        if (!added_uids || !changed_uids || added_uids->len + changed_uids->len > 10)
-               camel_folder_summary_prepare_fetch_all (tfd->folder->summary, NULL);
+               camel_folder_summary_prepare_fetch_all (camel_folder_get_folder_summary (tfd->folder), NULL);
 
        if (!added_uids && !changed_uids) {
-               all_uids = camel_folder_summary_get_array (tfd->folder->summary);
+               all_uids = camel_folder_summary_get_array (camel_folder_get_folder_summary (tfd->folder));
                added_uids = all_uids;
        }
 
@@ -457,7 +457,7 @@ tmpl_folder_data_update_sync (TmplFolderData *tfd,
        for (ii = 0; added_uids && ii < added_uids->len; ii++) {
                const gchar *uid = added_uids->pdata[ii];
 
-               info = camel_folder_summary_get (tfd->folder->summary, uid);
+               info = camel_folder_summary_get (camel_folder_get_folder_summary (tfd->folder), uid);
                if (info) {
                        if (!(camel_message_info_get_flags (info) & (CAMEL_MESSAGE_JUNK | 
CAMEL_MESSAGE_DELETED))) {
                                /* Sometimes the 'add' notification can come after the 'change',
@@ -474,7 +474,7 @@ tmpl_folder_data_update_sync (TmplFolderData *tfd,
        for (ii = 0; changed_uids && ii < changed_uids->len; ii++) {
                const gchar *uid = changed_uids->pdata[ii];
 
-               info = camel_folder_summary_get (tfd->folder->summary, uid);
+               info = camel_folder_summary_get (camel_folder_get_folder_summary (tfd->folder), uid);
                if (info) {
                        changed = tmpl_folder_data_change_message (tfd, info) || changed;
                        g_clear_object (&info);


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