diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-09-12 11:58:39 -0400 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-09-12 13:00:29 -0400 |
commit | 5cae2fd4e84574ee915443352ffc9262695ecacf (patch) | |
tree | 801052da3f97934d32a4e68011376bff3f624e4d | |
parent | e2b8984c3b1a87e5aa1b41e38c469a0231d53a5d (diff) | |
download | evolution-data-server-5cae2fd4e84574ee915443352ffc9262695ecacf.tar.gz |
CamelIMAPXStoreSummary cleanups.
CamelIMAPXStoreSummary has no public or private members, so no reason
to cast pointers to that type. Stick with plain (CamelStoreSummary *).
Removed functions:
camel_imapx_store_summary_new()
-rw-r--r-- | camel/camel-imapx-folder.c | 17 | ||||
-rw-r--r-- | camel/camel-imapx-server.c | 8 | ||||
-rw-r--r-- | camel/camel-imapx-store-summary.c | 104 | ||||
-rw-r--r-- | camel/camel-imapx-store-summary.h | 26 | ||||
-rw-r--r-- | camel/camel-imapx-store.c | 93 | ||||
-rw-r--r-- | camel/camel-imapx-store.h | 3 | ||||
-rw-r--r-- | camel/camel-imapx-utils.c | 8 | ||||
-rw-r--r-- | docs/reference/camel/camel-sections.txt | 1 |
8 files changed, 106 insertions, 154 deletions
diff --git a/camel/camel-imapx-folder.c b/camel/camel-imapx-folder.c index 54cafc3e5..fd06a2cb1 100644 --- a/camel/camel-imapx-folder.c +++ b/camel/camel-imapx-folder.c @@ -193,7 +193,7 @@ imapx_folder_dispose (GObject *object) store = camel_folder_get_parent_store (CAMEL_FOLDER (folder)); if (store != NULL) { camel_store_summary_disconnect_folder_summary ( - (CamelStoreSummary *) ((CamelIMAPXStore *) store)->summary, + CAMEL_IMAPX_STORE (store)->summary, CAMEL_FOLDER (folder)->summary); } @@ -1104,8 +1104,7 @@ imapx_rename (CamelFolder *folder, imapx_store = CAMEL_IMAPX_STORE (store); camel_store_summary_disconnect_folder_summary ( - CAMEL_STORE_SUMMARY (imapx_store->summary), - folder->summary); + imapx_store->summary, folder->summary); /* Chain up to parent's rename() method. */ CAMEL_FOLDER_CLASS (camel_imapx_folder_parent_class)-> @@ -1114,8 +1113,7 @@ imapx_rename (CamelFolder *folder, folder_name = camel_folder_get_full_name (folder); camel_store_summary_connect_folder_summary ( - CAMEL_STORE_SUMMARY (imapx_store->summary), - folder_name, folder->summary); + imapx_store->summary, folder_name, folder->summary); } static void @@ -1303,7 +1301,7 @@ camel_imapx_folder_new (CamelStore *store, } camel_store_summary_connect_folder_summary ( - (CamelStoreSummary *) ((CamelIMAPXStore *) store)->summary, + CAMEL_IMAPX_STORE (store)->summary, folder_name, folder->summary); return folder; @@ -1386,7 +1384,6 @@ camel_imapx_folder_list_mailbox (CamelIMAPXFolder *folder, CamelIMAPXServer *server = NULL; CamelIMAPXMailbox *mailbox; CamelStore *parent_store; - CamelStoreSummary *store_summary; CamelStoreInfo *store_info; CamelIMAPXStoreInfo *imapx_store_info; gchar *folder_path = NULL; @@ -1408,9 +1405,9 @@ camel_imapx_folder_list_mailbox (CamelIMAPXFolder *folder, parent_store = camel_folder_get_parent_store (CAMEL_FOLDER (folder)); imapx_store = CAMEL_IMAPX_STORE (parent_store); - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - store_info = camel_store_summary_path (store_summary, folder_path); + store_info = camel_store_summary_path ( + imapx_store->summary, folder_path); /* This should never fail. We needed the CamelStoreInfo * to instantiate the CamelIMAPXFolder in the first place. */ @@ -1419,7 +1416,7 @@ camel_imapx_folder_list_mailbox (CamelIMAPXFolder *folder, imapx_store_info = (CamelIMAPXStoreInfo *) store_info; mailbox_name = g_strdup (imapx_store_info->mailbox_name); - camel_store_summary_info_unref (store_summary, store_info); + camel_store_summary_info_unref (imapx_store->summary, store_info); /* See if the CamelIMAPXServer already has the mailbox. */ diff --git a/camel/camel-imapx-server.c b/camel/camel-imapx-server.c index a557f1607..7b25fb59c 100644 --- a/camel/camel-imapx-server.c +++ b/camel/camel-imapx-server.c @@ -7116,7 +7116,7 @@ imapx_command_sync_changes_done (CamelIMAPXServer *is, CamelStoreInfo *si; /* ... and store's summary when folder's summary is dirty */ - si = camel_store_summary_path ((CamelStoreSummary *)((CamelIMAPXStore *) parent_store)->summary, full_name); + si = camel_store_summary_path (CAMEL_IMAPX_STORE (parent_store)->summary, full_name); if (si) { if (si->total != camel_folder_summary_get_saved_count (folder->summary) || si->unread != camel_folder_summary_get_unread_count (folder->summary)) { @@ -7126,15 +7126,15 @@ imapx_command_sync_changes_done (CamelIMAPXServer *is, * have downloaded is little. */ if (!mobile_mode) si->unread = camel_folder_summary_get_unread_count (folder->summary); - camel_store_summary_touch ((CamelStoreSummary *)((CamelIMAPXStore *) parent_store)->summary); + camel_store_summary_touch (CAMEL_IMAPX_STORE (parent_store)->summary); } - camel_store_summary_info_unref ((CamelStoreSummary *)((CamelIMAPXStore *) parent_store)->summary, si); + camel_store_summary_info_unref (CAMEL_IMAPX_STORE (parent_store)->summary, si); } } camel_folder_summary_save_to_db (folder->summary, NULL); - camel_store_summary_save ((CamelStoreSummary *)((CamelIMAPXStore *) parent_store)->summary); + camel_store_summary_save (CAMEL_IMAPX_STORE (parent_store)->summary); imapx_unregister_job (is, job); } diff --git a/camel/camel-imapx-store-summary.c b/camel/camel-imapx-store-summary.c index 58a97a692..d1d063254 100644 --- a/camel/camel-imapx-store-summary.c +++ b/camel/camel-imapx-store-summary.c @@ -1,22 +1,19 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - * Authors: Michael Zucchi <notzed@ximian.com> + * camel-imapx-store-summary.c * * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU Lesser General Public - * License as published by the Free Software Foundation. + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. + * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * License along with the program; if not, see <http://www.gnu.org/licenses/> + * */ #ifdef HAVE_CONFIG_H @@ -48,7 +45,6 @@ G_DEFINE_TYPE ( camel_imapx_store_summary, CAMEL_TYPE_STORE_SUMMARY) - static gboolean namespace_load (FILE *in) { @@ -95,7 +91,7 @@ exit: } static gint -imapx_store_summary_summary_header_load (CamelStoreSummary *s, +imapx_store_summary_summary_header_load (CamelStoreSummary *summary, FILE *in) { CamelStoreSummaryClass *store_summary_class; @@ -106,7 +102,7 @@ imapx_store_summary_summary_header_load (CamelStoreSummary *s, camel_imapx_store_summary_parent_class); /* Chain up to parent's summary_header_load() method. */ - if (store_summary_class->summary_header_load (s, in) == -1) + if (store_summary_class->summary_header_load (summary, in) == -1) return -1; if (camel_file_util_decode_fixed_int32 (in, &version) == -1) @@ -132,7 +128,7 @@ imapx_store_summary_summary_header_load (CamelStoreSummary *s, } static gint -imapx_store_summary_summary_header_save (CamelStoreSummary *s, +imapx_store_summary_summary_header_save (CamelStoreSummary *summary, FILE *out) { CamelStoreSummaryClass *store_summary_class; @@ -142,11 +138,12 @@ imapx_store_summary_summary_header_save (CamelStoreSummary *s, camel_imapx_store_summary_parent_class); /* Chain up to parent's summary_header_save() method. */ - if (store_summary_class->summary_header_save (s, out) == -1) + if (store_summary_class->summary_header_save (summary, out) == -1) return -1; /* always write as latest version */ - if (camel_file_util_encode_fixed_int32 (out, CAMEL_IMAPX_STORE_SUMMARY_VERSION) == -1) + if (camel_file_util_encode_fixed_int32 ( + out, CAMEL_IMAPX_STORE_SUMMARY_VERSION) == -1) return -1; if (camel_file_util_encode_fixed_int32 (out, 0) == -1) @@ -169,7 +166,7 @@ imapx_store_summary_summary_header_save (CamelStoreSummary *s, } static CamelStoreInfo * -imapx_store_summary_store_info_load (CamelStoreSummary *s, +imapx_store_summary_store_info_load (CamelStoreSummary *summary, FILE *in) { CamelStoreSummaryClass *store_summary_class; @@ -182,17 +179,17 @@ imapx_store_summary_store_info_load (CamelStoreSummary *s, camel_imapx_store_summary_parent_class); /* Chain up to parent's store_info_load() method. */ - si = store_summary_class->store_info_load (s, in); + si = store_summary_class->store_info_load (summary, in); if (si == NULL) return NULL; if (camel_file_util_decode_string (in, &separator) == -1) { - camel_store_summary_info_unref (s, si); + camel_store_summary_info_unref (summary, si); return NULL; } if (camel_file_util_decode_string (in, &mailbox_name) == -1) { - camel_store_summary_info_unref (s, si); + camel_store_summary_info_unref (summary, si); return NULL; } @@ -213,7 +210,7 @@ imapx_store_summary_store_info_load (CamelStoreSummary *s, } static gint -imapx_store_summary_store_info_save (CamelStoreSummary *s, +imapx_store_summary_store_info_save (CamelStoreSummary *summary, FILE *out, CamelStoreInfo *si) { @@ -229,7 +226,7 @@ imapx_store_summary_store_info_save (CamelStoreSummary *s, separator[0] = ((CamelIMAPXStoreInfo *) si)->separator; /* Chain up to parent's store_info_save() method. */ - if (store_summary_class->store_info_save (s, out, si) == -1) + if (store_summary_class->store_info_save (summary, out, si) == -1) return -1; if (camel_file_util_encode_string (out, separator) == -1) @@ -242,7 +239,7 @@ imapx_store_summary_store_info_save (CamelStoreSummary *s, } static void -imapx_store_summary_store_info_free (CamelStoreSummary *s, +imapx_store_summary_store_info_free (CamelStoreSummary *summary, CamelStoreInfo *si) { CamelStoreSummaryClass *store_summary_class; @@ -254,7 +251,7 @@ imapx_store_summary_store_info_free (CamelStoreSummary *s, g_free (((CamelIMAPXStoreInfo *) si)->mailbox_name); /* Chain up to parent's store_info_free() method. */ - store_summary_class->store_info_free (s, si); + store_summary_class->store_info_free (summary, si); } static void @@ -271,40 +268,28 @@ camel_imapx_store_summary_class_init (CamelIMAPXStoreSummaryClass *class) } static void -camel_imapx_store_summary_init (CamelIMAPXStoreSummary *s) +camel_imapx_store_summary_init (CamelIMAPXStoreSummary *summary) { - ((CamelStoreSummary *) s)->store_info_size = sizeof (CamelIMAPXStoreInfo); -} - -/** - * camel_imapx_store_summary_new: - * - * Create a new CamelIMAPXStoreSummary object. - * - * Returns: A new CamelIMAPXStoreSummary widget. - **/ -CamelIMAPXStoreSummary * -camel_imapx_store_summary_new (void) -{ - return g_object_new (CAMEL_TYPE_IMAPX_STORE_SUMMARY, NULL); + /* FIXME This should be per-class, not per-instance. */ + CAMEL_STORE_SUMMARY (summary)->store_info_size = + sizeof (CamelIMAPXStoreInfo); } /** * camel_imapx_store_summary_mailbox: - * @s: - * @mailbox_name: + * @summary: a #CamelStoreSummary + * @mailbox_name: a mailbox name * * Retrieve a summary item by mailbox name. * - * A referenced to the summary item is returned, which may be - * ref'd or free'd as appropriate. + * The returned #CamelIMAPXStoreInfo is referenced for thread-safety + * and should be unreferenced with camel_store_summary_info_unref() + * when finished with it. * - * Returns: The summary item, or NULL if the @mailbox_name - * is not available. - * It must be freed using camel_store_summary_info_unref(). + * Returns: a #CamelIMAPXStoreInfo, or %NULL **/ CamelIMAPXStoreInfo * -camel_imapx_store_summary_mailbox (CamelIMAPXStoreSummary *s, +camel_imapx_store_summary_mailbox (CamelStoreSummary *summary, const gchar *mailbox_name) { CamelStoreInfo *match = NULL; @@ -312,9 +297,12 @@ camel_imapx_store_summary_mailbox (CamelIMAPXStoreSummary *s, gboolean find_inbox; guint ii; + g_return_val_if_fail (CAMEL_IS_IMAPX_STORE_SUMMARY (summary), NULL); + g_return_val_if_fail (mailbox_name != NULL, NULL); + find_inbox = camel_imapx_mailbox_is_inbox (mailbox_name); - array = camel_store_summary_array (CAMEL_STORE_SUMMARY (s)); + array = camel_store_summary_array (summary); for (ii = 0; ii < array->len; ii++) { CamelIMAPXStoreInfo *info; @@ -325,26 +313,24 @@ camel_imapx_store_summary_mailbox (CamelIMAPXStoreSummary *s, if (find_inbox && is_inbox) { match = camel_store_summary_info_ref ( - CAMEL_STORE_SUMMARY (s), - (CamelStoreInfo *) info); + summary, (CamelStoreInfo *) info); break; } if (g_str_equal (info->mailbox_name, mailbox_name)) { match = camel_store_summary_info_ref ( - CAMEL_STORE_SUMMARY (s), - (CamelStoreInfo *) info); + summary, (CamelStoreInfo *) info); break; } } - camel_store_summary_array_free (CAMEL_STORE_SUMMARY (s), array); + camel_store_summary_array_free (summary, array); return (CamelIMAPXStoreInfo *) match; } CamelIMAPXStoreInfo * -camel_imapx_store_summary_add_from_mailbox (CamelIMAPXStoreSummary *s, +camel_imapx_store_summary_add_from_mailbox (CamelStoreSummary *summary, CamelIMAPXMailbox *mailbox) { CamelIMAPXStoreInfo *info; @@ -352,17 +338,16 @@ camel_imapx_store_summary_add_from_mailbox (CamelIMAPXStoreSummary *s, gchar *folder_path; gchar separator; - g_return_val_if_fail (CAMEL_IS_IMAPX_STORE_SUMMARY (s), NULL); + g_return_val_if_fail (CAMEL_IS_IMAPX_STORE_SUMMARY (summary), NULL); g_return_val_if_fail (CAMEL_IS_IMAPX_MAILBOX (mailbox), NULL); mailbox_name = camel_imapx_mailbox_get_name (mailbox); separator = camel_imapx_mailbox_get_separator (mailbox); - info = camel_imapx_store_summary_mailbox (s, mailbox_name); + info = camel_imapx_store_summary_mailbox (summary, mailbox_name); if (info != NULL) { camel_store_summary_info_unref ( - CAMEL_STORE_SUMMARY (s), - (CamelStoreInfo *) info); + summary, (CamelStoreInfo *) info); return info; } @@ -370,8 +355,7 @@ camel_imapx_store_summary_add_from_mailbox (CamelIMAPXStoreSummary *s, mailbox_name, separator); info = (CamelIMAPXStoreInfo *) - camel_store_summary_add_from_path ( - CAMEL_STORE_SUMMARY (s), folder_path); + camel_store_summary_add_from_path (summary, folder_path); g_free (folder_path); diff --git a/camel/camel-imapx-store-summary.h b/camel/camel-imapx-store-summary.h index 8f26091ea..c0f43196e 100644 --- a/camel/camel-imapx-store-summary.h +++ b/camel/camel-imapx-store-summary.h @@ -1,22 +1,19 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ /* - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - * Authors: Michael Zucchi <notzed@ximian.com> + * camel-imapx-store-summary.h * * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU Lesser General Public - * License as published by the Free Software Foundation. + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. + * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the - * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. + * License along with the program; if not, see <http://www.gnu.org/licenses/> + * */ #if !defined (__CAMEL_H_INSIDE__) && !defined (CAMEL_COMPILATION) @@ -69,16 +66,15 @@ struct _CamelIMAPXStoreSummaryClass { CamelStoreSummaryClass parent_class; }; -GType camel_imapx_store_summary_get_type (void); -CamelIMAPXStoreSummary * - camel_imapx_store_summary_new (void); +GType camel_imapx_store_summary_get_type + (void) G_GNUC_CONST; CamelIMAPXStoreInfo * camel_imapx_store_summary_mailbox - (CamelIMAPXStoreSummary *s, + (CamelStoreSummary *summary, const gchar *mailbox_name); CamelIMAPXStoreInfo * camel_imapx_store_summary_add_from_mailbox - (CamelIMAPXStoreSummary *s, + (CamelStoreSummary *summary, CamelIMAPXMailbox *mailbox); G_END_DECLS diff --git a/camel/camel-imapx-store.c b/camel/camel-imapx-store.c index e830f9a01..75de63fa2 100644 --- a/camel/camel-imapx-store.c +++ b/camel/camel-imapx-store.c @@ -239,14 +239,11 @@ imapx_store_rename_folder_info (CamelIMAPXStore *imapx_store, const gchar *old_folder_path, const gchar *new_folder_path) { - CamelStoreSummary *store_summary; GPtrArray *array; gint olen = strlen (old_folder_path); guint ii; - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - - array = camel_store_summary_array (store_summary); + array = camel_store_summary_array (imapx_store->summary); for (ii = 0; ii < array->len; ii++) { CamelStoreInfo *si; @@ -256,7 +253,7 @@ imapx_store_rename_folder_info (CamelIMAPXStore *imapx_store, gchar *new_mailbox_name; si = g_ptr_array_index (array, ii); - path = camel_store_info_path (store_summary, si); + path = camel_store_info_path (imapx_store->summary, si); /* We need to adjust not only the entry for the renamed * folder, but also the entries for all the descendants @@ -272,7 +269,7 @@ imapx_store_rename_folder_info (CamelIMAPXStore *imapx_store, new_path = g_strdup (new_folder_path); camel_store_info_set_string ( - store_summary, si, + imapx_store->summary, si, CAMEL_STORE_INFO_PATH, new_path); imapx_si = (CamelIMAPXStoreInfo *) si; @@ -286,12 +283,12 @@ imapx_store_rename_folder_info (CamelIMAPXStore *imapx_store, g_free (imapx_si->mailbox_name); imapx_si->mailbox_name = new_mailbox_name; - camel_store_summary_touch (store_summary); + camel_store_summary_touch (imapx_store->summary); g_free (new_path); } - camel_store_summary_array_free (store_summary, array); + camel_store_summary_array_free (imapx_store->summary, array); } static void @@ -395,7 +392,6 @@ imapx_store_process_mailbox_attributes (CamelIMAPXStore *store, CamelFolderInfo *fi; CamelIMAPXStoreInfo *si; CamelStoreInfoFlags flags; - CamelStoreSummary *summary; CamelSettings *settings; gboolean use_subscriptions; gboolean mailbox_is_subscribed; @@ -409,8 +405,6 @@ imapx_store_process_mailbox_attributes (CamelIMAPXStore *store, const gchar *mailbox_name; gchar separator; - summary = CAMEL_STORE_SUMMARY (store->summary); - settings = camel_service_ref_settings (CAMEL_SERVICE (store)); use_subscriptions = camel_imapx_settings_get_use_subscriptions ( CAMEL_IMAPX_SETTINGS (settings)); @@ -454,10 +448,11 @@ imapx_store_process_mailbox_attributes (CamelIMAPXStore *store, if ((flags ^ si->info.flags) & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED) { si->info.flags &= ~CAMEL_FOLDER_SUBSCRIBED; si->info.flags |= flags & CAMEL_FOLDER_SUBSCRIBED; - camel_store_summary_touch (summary); + camel_store_summary_touch (store->summary); } - folder_path = camel_store_info_path (summary, (CamelStoreInfo *) si); + folder_path = camel_store_info_path ( + store->summary, (CamelStoreInfo *) si); fi = imapx_store_build_folder_info (store, folder_path, flags); /* Figure out which signals to emit, if any. */ @@ -1034,14 +1029,12 @@ get_folder_offline (CamelStore *store, CamelFolder *new_folder = NULL; CamelStoreInfo *si; CamelService *service; - CamelStoreSummary *store_summary; const gchar *user_cache_dir; service = CAMEL_SERVICE (store); user_cache_dir = camel_service_get_user_cache_dir (service); - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - si = camel_store_summary_path (store_summary, folder_name); + si = camel_store_summary_path (imapx_store->summary, folder_name); if (si != NULL) { gchar *base_dir; @@ -1054,7 +1047,7 @@ get_folder_offline (CamelStore *store, g_free (folder_dir); g_free (base_dir); - camel_store_summary_info_unref (store_summary, si); + camel_store_summary_info_unref (imapx_store->summary, si); } else { g_set_error ( error, CAMEL_STORE_ERROR, @@ -1117,19 +1110,16 @@ imapx_unmark_folder_subscribed (CamelIMAPXStore *imapx_store, const gchar *folder_path, gboolean emit_signal) { - CamelStoreSummary *store_summary; CamelStoreInfo *si; - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - - si = camel_store_summary_path (store_summary, folder_path); + si = camel_store_summary_path (imapx_store->summary, folder_path); if (si != NULL) { if (si->flags & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED) { si->flags &= ~CAMEL_STORE_INFO_FOLDER_SUBSCRIBED; - camel_store_summary_touch (store_summary); - camel_store_summary_save (store_summary); + camel_store_summary_touch (imapx_store->summary); + camel_store_summary_save (imapx_store->summary); } - camel_store_summary_info_unref (store_summary, si); + camel_store_summary_info_unref (imapx_store->summary, si); } if (emit_signal) { @@ -1181,9 +1171,8 @@ imapx_delete_folder_from_cache (CamelIMAPXStore *imapx_store, g_free (folder_dir); event: - camel_store_summary_remove_path ( - (CamelStoreSummary *) imapx_store->summary, folder_path); - camel_store_summary_save ((CamelStoreSummary *) imapx_store->summary); + camel_store_summary_remove_path (imapx_store->summary, folder_path); + camel_store_summary_save (imapx_store->summary); fi = imapx_store_build_folder_info (imapx_store, folder_path, 0); camel_store_folder_deleted (CAMEL_STORE (imapx_store), fi); @@ -1199,7 +1188,6 @@ get_folder_info_offline (CamelStore *store, CamelIMAPXStore *imapx_store = CAMEL_IMAPX_STORE (store); CamelService *service; CamelSettings *settings; - CamelStoreSummary *store_summary; gboolean include_inbox = FALSE; CamelFolderInfo *fi; GPtrArray *folders; @@ -1230,9 +1218,7 @@ get_folder_info_offline (CamelStore *store, * the moment. So let it do the right thing by bailing out if it's * not a folder we're explicitly interested in. */ - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - - array = camel_store_summary_array (store_summary); + array = camel_store_summary_array (imapx_store->summary); for (ii = 0; ii < array->len; ii++) { CamelStoreInfo *si; @@ -1241,7 +1227,7 @@ get_folder_info_offline (CamelStore *store, gboolean si_is_match; si = g_ptr_array_index (array, ii); - folder_path = camel_store_info_path (store_summary, si); + folder_path = camel_store_info_path (imapx_store->summary, si); si_is_inbox = (g_ascii_strcasecmp (folder_path, "INBOX") == 0); /* Filter by folder path. */ @@ -1301,7 +1287,7 @@ get_folder_info_offline (CamelStore *store, g_ptr_array_add (folders, fi); } - camel_store_summary_array_free (store_summary, array); + camel_store_summary_array_free (imapx_store->summary, array); fi = camel_folder_info_build (folders, top, '/', TRUE); @@ -1315,14 +1301,11 @@ collect_folder_info_for_list (CamelIMAPXStore *imapx_store, CamelIMAPXMailbox *mailbox, GHashTable *folder_info_results) { - CamelStoreSummary *store_summary; CamelIMAPXStoreInfo *si; CamelFolderInfo *fi; const gchar *folder_path; const gchar *mailbox_name; - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - mailbox_name = camel_imapx_mailbox_get_name (mailbox); si = camel_imapx_store_summary_mailbox ( @@ -1330,7 +1313,7 @@ collect_folder_info_for_list (CamelIMAPXStore *imapx_store, g_return_if_fail (si != NULL); folder_path = camel_store_info_path ( - store_summary, (CamelStoreInfo *) si); + imapx_store->summary, (CamelStoreInfo *) si); fi = imapx_store_build_folder_info (imapx_store, folder_path, 0); /* Takes ownership of the CamelFolderInfo. */ @@ -1515,7 +1498,6 @@ sync_folders (CamelIMAPXStore *imapx_store, GError **error) { CamelIMAPXServer *server; - CamelStoreSummary *store_summary; GHashTable *folder_info_results; GPtrArray *array; guint ii; @@ -1525,8 +1507,6 @@ sync_folders (CamelIMAPXStore *imapx_store, if (server == NULL) return FALSE; - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - /* mailbox name -> CamelFolderInfo */ folder_info_results = g_hash_table_new_full ( (GHashFunc) imapx_name_hash, @@ -1568,7 +1548,7 @@ sync_folders (CamelIMAPXStore *imapx_store, if (!success) goto exit; - array = camel_store_summary_array (store_summary); + array = camel_store_summary_array (imapx_store->summary); for (ii = 0; ii < array->len; ii++) { CamelStoreInfo *si; @@ -1578,7 +1558,7 @@ sync_folders (CamelIMAPXStore *imapx_store, gboolean pattern_match; si = g_ptr_array_index (array, ii); - si_path = camel_store_info_path (store_summary, si); + si_path = camel_store_info_path (imapx_store->summary, si); mailbox_name = ((CamelIMAPXStoreInfo *) si)->mailbox_name; if (mailbox_name == NULL || *mailbox_name == '\0') @@ -1603,12 +1583,13 @@ sync_folders (CamelIMAPXStore *imapx_store, imapx_store, dup_folder_path); g_free (dup_folder_path); } else { - camel_store_summary_remove (store_summary, si); + camel_store_summary_remove ( + imapx_store->summary, si); } } } - camel_store_summary_array_free (store_summary, array); + camel_store_summary_array_free (imapx_store->summary, array); exit: g_hash_table_destroy (folder_info_results); @@ -1643,7 +1624,7 @@ imapx_refresh_finfo (CamelSession *session, sync_folders (store, NULL, 0, cancellable, error); - camel_store_summary_save (CAMEL_STORE_SUMMARY (store->summary)); + camel_store_summary_save (store->summary); exit: camel_operation_pop_message (cancellable); @@ -1811,13 +1792,11 @@ imapx_store_get_folder_info_sync (CamelStore *store, CamelFolderInfo *fi = NULL; CamelService *service; CamelSettings *settings; - CamelStoreSummary *store_summary; gboolean initial_setup = FALSE; gboolean use_subscriptions; service = CAMEL_SERVICE (store); imapx_store = CAMEL_IMAPX_STORE (store); - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); settings = camel_service_ref_settings (service); @@ -1874,7 +1853,7 @@ imapx_store_get_folder_info_sync (CamelStore *store, if (!sync_folders (imapx_store, top, flags, cancellable, error)) goto exit; - camel_store_summary_save (store_summary); + camel_store_summary_save (imapx_store->summary); /* ensure the INBOX is subscribed if lsub was preferred*/ if (initial_setup && use_subscriptions) @@ -2276,11 +2255,12 @@ imapx_store_initable_init (GInitable *initable, service = CAMEL_SERVICE (initable); user_cache_dir = camel_service_get_user_cache_dir (service); - imapx_store->summary = camel_imapx_store_summary_new (); + imapx_store->summary = + g_object_new (CAMEL_TYPE_IMAPX_STORE_SUMMARY, NULL); summary = g_build_filename (user_cache_dir, ".ev-store-summary", NULL); - camel_store_summary_set_filename ((CamelStoreSummary *) imapx_store->summary, summary); - camel_store_summary_load ((CamelStoreSummary *) imapx_store->summary); + camel_store_summary_set_filename (imapx_store->summary, summary); + camel_store_summary_load (imapx_store->summary); g_free (summary); @@ -2338,12 +2318,11 @@ imapx_store_folder_is_subscribed (CamelSubscribable *subscribable, if (folder_name && *folder_name == '/') folder_name++; - si = camel_store_summary_path ( - (CamelStoreSummary *) imapx_store->summary, folder_name); - if (si) { - is_subscribed = (si->flags & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED) != 0; - camel_store_summary_info_unref ( - (CamelStoreSummary *) imapx_store->summary, si); + si = camel_store_summary_path (imapx_store->summary, folder_name); + if (si != NULL) { + if (si->flags & CAMEL_STORE_INFO_FOLDER_SUBSCRIBED) + is_subscribed = TRUE; + camel_store_summary_info_unref (imapx_store->summary, si); } return is_subscribed; diff --git a/camel/camel-imapx-store.h b/camel/camel-imapx-store.h index 909a33cc8..6d75c4f91 100644 --- a/camel/camel-imapx-store.h +++ b/camel/camel-imapx-store.h @@ -31,7 +31,6 @@ #include <camel/camel.h> #include "camel-imapx-server.h" -#include "camel-imapx-store-summary.h" /* Standard GObject macros */ #define CAMEL_TYPE_IMAPX_STORE \ @@ -62,7 +61,7 @@ struct _CamelIMAPXStore { CamelOfflineStore parent; CamelIMAPXStorePrivate *priv; - CamelIMAPXStoreSummary *summary; /* in-memory list of folders */ + CamelStoreSummary *summary; /* in-memory list of folders */ }; struct _CamelIMAPXStoreClass { diff --git a/camel/camel-imapx-utils.c b/camel/camel-imapx-utils.c index f94581e2f..0cde67b8b 100644 --- a/camel/camel-imapx-utils.c +++ b/camel/camel-imapx-utils.c @@ -339,7 +339,6 @@ imapx_update_store_summary (CamelFolder *folder) { CamelStoreInfo *si; CamelStore *parent_store; - CamelStoreSummary *store_summary; CamelIMAPXStore *imapx_store; const gchar *full_name; guint32 total; @@ -351,9 +350,8 @@ imapx_update_store_summary (CamelFolder *folder) parent_store = camel_folder_get_parent_store (folder); imapx_store = CAMEL_IMAPX_STORE (parent_store); - store_summary = CAMEL_STORE_SUMMARY (imapx_store->summary); - si = camel_store_summary_path (store_summary, full_name); + si = camel_store_summary_path (imapx_store->summary, full_name); if (si == NULL) return; @@ -364,8 +362,8 @@ imapx_update_store_summary (CamelFolder *folder) si->unread = unread; si->total = total; - camel_store_summary_touch (store_summary); - camel_store_summary_save (store_summary); + camel_store_summary_touch (imapx_store->summary); + camel_store_summary_save (imapx_store->summary); } } diff --git a/docs/reference/camel/camel-sections.txt b/docs/reference/camel/camel-sections.txt index a2d19bd15..05b50ff66 100644 --- a/docs/reference/camel/camel-sections.txt +++ b/docs/reference/camel/camel-sections.txt @@ -1133,7 +1133,6 @@ CamelIMAPXStorePrivate <TITLE>CamelIMAPXStoreSummary</TITLE> CamelIMAPXStoreInfo CamelIMAPXStoreSummary -camel_imapx_store_summary_new camel_imapx_store_summary_mailbox camel_imapx_store_summary_add_from_mailbox <SUBSECTION Standard> |