From c0a255eb90769638d57ae4122932f75c46e4e531 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 11 Sep 2008 15:34:29 +0000 Subject: Merge revisions 36016:36303 from trunk. svn path=/branches/kill-bonobo/; revision=36307 --- mail/mail-folder-cache.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index b610a8a2b5..63a8f2cf90 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -206,6 +206,19 @@ real_flush_updates(void *o, void *event_data, void *data) e_event_emit((EEvent *)e, "folder.changed", (EEventTarget *)t); } + if (CAMEL_IS_VEE_STORE (up->store) && !up->remove) { + /* Normally the vfolder store takes care of the folder_opened event itself, + but we add folder to the noting system later, thus we do not know about + search folders to update them in a tree, thus ensure their changes will + be tracked correctly. */ + CamelFolder *folder = camel_store_get_folder (up->store, up->full_name, 0, NULL); + + if (folder) { + mail_note_folder (folder); + camel_object_unref (folder); + } + } + free_update(up); LOCK(info_lock); -- cgit v1.2.3 From b2cda1d0c6d44f53f71bad9e256f41188677dfba Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 1 Oct 2008 20:56:04 +0000 Subject: Merge revisions 36016:36533 from trunk. svn path=/branches/kill-bonobo/; revision=36534 --- mail/mail-folder-cache.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 63a8f2cf90..546526c8ab 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -1,23 +1,24 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- - * - * Authors: Peter Williams - * Michael Zucchi - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * +/* * This program is free software; you can redistribute it and/or - * modify it under the terms of version 2 of the GNU 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. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see + * + * + * Authors: + * Peter Williams + * Michael Zucchi + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) * - * You should have received a copy of the GNU 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 */ #ifdef HAVE_CONFIG_H -- cgit v1.2.3 From 54b80a7271e8ce1b2f3ccc68bb553940a24b80e2 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 17 Oct 2008 03:48:03 +0000 Subject: Get the mail folder tree compiling, though I'm not yet sure why it's not showing anything. Probably something stupid. Also enabled the composer. svn path=/branches/kill-bonobo/; revision=36623 --- mail/mail-folder-cache.c | 88 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 27 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 546526c8ab..8f85f3f521 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -50,12 +50,13 @@ #include #include #include "e-util/e-util.h" +#include "shell/e-shell.h" #include "mail-mt.h" #include "mail-folder-cache.h" #include "mail-ops.h" #include "mail-session.h" -#include "mail-component.h" +#include "e-mail-shell-module.h" /* For notifications of changes */ #include "mail-vfolder.h" @@ -109,6 +110,8 @@ struct _folder_update { }; struct _store_info { + EShellModule *shell_module; + GHashTable *folders; /* by full_name */ GHashTable *folders_uri; /* by uri */ @@ -149,14 +152,14 @@ free_update(struct _folder_update *up) } static void -real_flush_updates(void *o, void *event_data, void *data) +real_flush_updates (EShellModule *shell_module) { - struct _MailComponent *component; + EShell *shell; struct _EMFolderTreeModel *model; struct _folder_update *up; - component = mail_component_peek (); - model = mail_component_peek_tree_model (component); + shell = e_shell_module_get_shell (shell_module); + model = e_mail_shell_module_get_folder_tree_model (shell_module); LOCK(info_lock); while ((up = (struct _folder_update *)e_dlist_remhead(&updates))) { @@ -195,7 +198,7 @@ real_flush_updates(void *o, void *event_data, void *data) t->name = em_folder_tree_model_get_folder_name (model, up->store, up->full_name); if (t->new > 0) - mail_indicate_new_mail (TRUE); + e_shell_event (shell, "new-mail"); /** @Event: folder.changed * @Title: Folder changed @@ -229,10 +232,13 @@ real_flush_updates(void *o, void *event_data, void *data) } static void -flush_updates(void) +flush_updates (EShellModule *shell_module) { if (update_id == -1 && !e_dlist_empty(&updates)) - update_id = mail_async_event_emit(mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc)real_flush_updates, NULL, NULL, NULL); + update_id = mail_async_event_emit ( + mail_async_event, MAIL_ASYNC_GUI, + (MailAsyncFunc) real_flush_updates, + shell_module, NULL, NULL); } static void @@ -245,7 +251,7 @@ unset_folder_info(struct _folder_info *mfi, int delete, int unsub) if (mfi->folder) { CamelFolder *folder = mfi->folder; - camel_object_unhook_event(folder, "folder_changed", folder_changed, NULL); + camel_object_unhook_event(folder, "folder_changed", folder_changed, mfi->store_info->shell_module); camel_object_unhook_event(folder, "renamed", folder_renamed, NULL); camel_object_unhook_event(folder, "finalize", folder_finalised, NULL); } @@ -262,7 +268,7 @@ unset_folder_info(struct _folder_info *mfi, int delete, int unsub) up->uri = g_strdup(mfi->uri); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(); + flush_updates(mfi->store_info->shell_module); } } @@ -300,21 +306,32 @@ static void update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) { struct _folder_update *up; + EShellModule *shell_module; CamelFolder *folder; + CamelFolder *local_drafts; + CamelFolder *local_outbox; + CamelFolder *local_sent; int unread = -1; int deleted; + shell_module = mfi->store_info->shell_module; + local_drafts = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_SENT); + folder = mfi->folder; if (folder) { d(printf("update 1 folder '%s'\n", folder->full_name)); if ((count_trash && (CAMEL_IS_VTRASH_FOLDER (folder))) - || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) - || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS) - || (count_sent && folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT))) { + || folder == local_drafts + || folder == local_outbox + || (count_sent && folder == local_sent)) { d(printf(" total count\n")); unread = camel_folder_get_message_count (folder); - if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) - || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)) { + if (folder == local_drafts || folder == local_outbox) { guint32 junked = 0; if ((deleted = camel_folder_get_deleted_message_count (folder)) > 0) @@ -348,7 +365,7 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) up->uri = g_strdup(mfi->uri); camel_object_ref(up->store); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(); + flush_updates(shell_module); } static void @@ -382,7 +399,7 @@ setup_folder(CamelFolderInfo *fi, struct _store_info *si) up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(); + flush_updates(si->shell_module); } } @@ -405,8 +422,12 @@ static void folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) { static time_t last_newmail = 0; + EShellModule *shell_module = user_data; CamelFolderChangeInfo *changes = event_data; CamelFolder *folder = (CamelFolder *)o; + CamelFolder *local_drafts; + CamelFolder *local_outbox; + CamelFolder *local_sent; CamelStore *store = folder->parent_store; CamelMessageInfo *info; struct _store_info *si; @@ -417,10 +438,17 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) d(printf("folder '%s' changed\n", folder->full_name)); + local_drafts = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_shell_module_get_folder ( + shell_module, E_MAIL_FOLDER_SENT); + if (!CAMEL_IS_VEE_FOLDER(folder) - && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) - && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS) - && folder != mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT) + && folder != local_drafts + && folder != local_outbox + && folder != local_sent && changes && (changes->uid_added->len > 0)) { /* for each added message, check to see that it is brand new, not junk and not already deleted */ @@ -511,7 +539,7 @@ void mail_note_folder(CamelFolder *folder) UNLOCK(info_lock); - camel_object_hook_event(folder, "folder_changed", folder_changed, NULL); + camel_object_hook_event(folder, "folder_changed", folder_changed, si->shell_module); camel_object_hook_event(folder, "renamed", folder_renamed, NULL); camel_object_hook_event(folder, "finalize", folder_finalised, NULL); } @@ -607,6 +635,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, char *old, *olduri, *oldfile, *newuri, *newfile; struct _folder_info *mfi; struct _folder_update *up; + const gchar *config_dir; up = g_malloc0(sizeof(*up)); @@ -653,7 +682,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(); + flush_updates(si->shell_module); #if 0 if (fi->sibling) rename_folders(si, oldbase, newbase, fi->sibling, folders); @@ -662,17 +691,18 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, #endif /* rename the meta-data we maintain ourselves */ + config_dir = e_shell_module_get_config_dir (si->shell_module); olduri = folder_to_url(si->store, old); e_filename_make_safe(olduri); newuri = folder_to_url(si->store, fi->full_name); e_filename_make_safe(newuri); - oldfile = g_strdup_printf("%s/config/custom_view-%s.xml", mail_component_peek_base_directory(NULL), olduri); - newfile = g_strdup_printf("%s/config/custom_view-%s.xml", mail_component_peek_base_directory(NULL), newuri); + oldfile = g_strdup_printf("%s/custom_view-%s.xml", config_dir, olduri); + newfile = g_strdup_printf("%s/custom_view-%s.xml", config_dir, newuri); g_rename(oldfile, newfile); g_free(oldfile); g_free(newfile); - oldfile = g_strdup_printf("%s/config/current_view-%s.xml", mail_component_peek_base_directory(NULL), olduri); - newfile = g_strdup_printf("%s/config/current_view-%s.xml", mail_component_peek_base_directory(NULL), newuri); + oldfile = g_strdup_printf("%s/current_view-%s.xml", config_dir, olduri); + newfile = g_strdup_printf("%s/current_view-%s.xml", config_dir, newuri); g_rename(oldfile, newfile); g_free(oldfile); g_free(newfile); @@ -776,6 +806,8 @@ mail_note_store_remove(CamelStore *store) if (si) { g_hash_table_remove(stores, store); + g_object_unref(si->shell_module); + camel_object_unhook_event(store, "folder_opened", store_folder_opened, NULL); camel_object_unhook_event(store, "folder_created", store_folder_created, NULL); camel_object_unhook_event(store, "folder_deleted", store_folder_deleted, NULL); @@ -928,7 +960,7 @@ store_online_cb (CamelStore *store, void *data) } void -mail_note_store(CamelStore *store, CamelOperation *op, +mail_note_store(EShellModule *shell_module, CamelStore *store, CamelOperation *op, gboolean (*done)(CamelStore *store, CamelFolderInfo *info, void *data), void *data) { struct _store_info *si; @@ -937,6 +969,7 @@ mail_note_store(CamelStore *store, CamelOperation *op, guint timeout; int hook = 0; + g_return_if_fail (E_IS_SHELL_MODULE (shell_module)); g_return_if_fail (CAMEL_IS_STORE(store)); g_return_if_fail (mail_in_main_thread()); @@ -956,6 +989,7 @@ mail_note_store(CamelStore *store, CamelOperation *op, d(printf("Noting a new store: %p: %s\n", store, camel_url_to_string(((CamelService *)store)->url, 0))); si = g_malloc0(sizeof(*si)); + si->shell_module = g_object_ref (shell_module); si->folders = g_hash_table_new(g_str_hash, g_str_equal); si->folders_uri = g_hash_table_new(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->hash_folder_name, CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->compare_folder_name); -- cgit v1.2.3 From 8c0bd86d5fdd6d87c3170e2a01423e7c7018a981 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 14 Nov 2008 03:56:01 +0000 Subject: Rearranged some of the addressbook code to try and eliminate some circular dependencies in our libraries. The circular dependency between the composer and the mail module is still causing me headaches. And it doesn't help that the addressbook and calendar also want to link to the composer. svn path=/branches/kill-bonobo/; revision=36782 --- mail/mail-folder-cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 8f85f3f521..49479faa7a 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -198,7 +198,7 @@ real_flush_updates (EShellModule *shell_module) t->name = em_folder_tree_model_get_folder_name (model, up->store, up->full_name); if (t->new > 0) - e_shell_event (shell, "new-mail"); + e_shell_event (shell, "new-mail", NULL); /** @Event: folder.changed * @Title: Folder changed -- cgit v1.2.3 From b06cdfab92313ca7b1ce9a88ccb0ffba33cb17ab Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 19 Nov 2008 01:39:19 +0000 Subject: Progress update: - Tighter integration of GalViewInstance and EShellView. - EBinding. Stolen from ExoBinding. Lets you bind GObject properties together to automatically keep their values in sync. This is a godsend. Added to e-util, but might even deserve a place in libedataserver. - EShellSettings. This is the concept I blogged about. Already started ripping apart em-mailer-prefs.c. Others to follow. Any place where we're monitoring GConf keys is a target. - Incremental progress on the calender and mailer. Got EMFolderView somewhat working, but I think I'll be killing off EMFolderBrowser. svn path=/branches/kill-bonobo/; revision=36795 --- mail/mail-folder-cache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 49479faa7a..f46b22850c 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -198,7 +198,8 @@ real_flush_updates (EShellModule *shell_module) t->name = em_folder_tree_model_get_folder_name (model, up->store, up->full_name); if (t->new > 0) - e_shell_event (shell, "new-mail", NULL); + e_shell_event ( + shell, "mail-icon", "mail-unread"); /** @Event: folder.changed * @Title: Folder changed -- cgit v1.2.3 From 2e3a3cf26e4d1894707703b15340529b8874466c Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 15 Jan 2009 03:39:43 +0000 Subject: Merge revisions 37047:37074 from trunk. svn path=/branches/kill-bonobo/; revision=37075 --- mail/mail-folder-cache.c | 1 + 1 file changed, 1 insertion(+) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index f46b22850c..06335a515b 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -462,6 +462,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) ((flags & CAMEL_MESSAGE_DELETED) == 0) && (camel_message_info_date_received (info) > last_newmail)) new++; + camel_message_info_free (info); } } } -- cgit v1.2.3 From bc80332460c353e391cd620f2cc51f7b56eef4de Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 26 Jan 2009 18:49:51 +0000 Subject: Miscellaneous stuff. svn path=/branches/kill-bonobo/; revision=37134 --- mail/mail-folder-cache.c | 1 - 1 file changed, 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 06335a515b..8282625f7d 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -39,7 +39,6 @@ #include #include -#include #include #include #include -- cgit v1.2.3 From faf1c14c11f3e6026f786e9587715c10b13c723e Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 25 Apr 2009 10:16:00 -0400 Subject: Manual conflict resolution --- mail/mail-folder-cache.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 5742be8e5d..46a62e4fc2 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -55,6 +55,7 @@ #include "mail-folder-cache.h" #include "mail-ops.h" #include "mail-session.h" +#include "mail-tools.h" #include "e-mail-shell-module.h" /* For notifications of changes */ @@ -1091,26 +1092,26 @@ int mail_note_get_folder_from_uri(const char *uri, CamelFolder **folderp) return fi.fi != NULL; } -gboolean +gboolean mail_folder_cache_get_folder_info_flags (CamelFolder *folder, int *flags) { char *uri; uri = mail_tools_folder_to_url (folder); - + struct _find_info fi = { uri, NULL, NULL }; if (stores == NULL) return FALSE; - fi.url = camel_url_new(uri, NULL); + fi.url = camel_url_new (uri, NULL); LOCK(info_lock); g_hash_table_foreach(stores, (GHFunc)storeinfo_find_folder_info, &fi); if (flags) { if (fi.fi) { *flags = fi.fi->flags; - } + } } UNLOCK(info_lock); -- cgit v1.2.3 From 16e2beab9e4d412399f495f6165d27da80cb3675 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Thu, 7 May 2009 16:38:32 -0400 Subject: Adapt mail to EShellBackend changes. Again, builds but not tested. Lots of compiler warnings to clean up, but I don't have the energy for it. This was pretty grueling. --- mail/mail-folder-cache.c | 67 ++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 33 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index f4e07f289c..097b9bf9b4 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -56,7 +56,6 @@ #include "mail-ops.h" #include "mail-session.h" #include "mail-tools.h" -#include "e-mail-shell-module.h" /* For notifications of changes */ #include "mail-vfolder.h" @@ -110,7 +109,7 @@ struct _folder_update { }; struct _store_info { - EShellModule *shell_module; + EMailShellBackend *mail_shell_backend; GHashTable *folders; /* by full_name */ GHashTable *folders_uri; /* by uri */ @@ -152,14 +151,14 @@ free_update(struct _folder_update *up) } static void -real_flush_updates (EShellModule *shell_module) +real_flush_updates (EMailShellBackend *mail_shell_backend) { EShell *shell; struct _EMFolderTreeModel *model; struct _folder_update *up; - shell = e_shell_module_get_shell (shell_module); - model = e_mail_shell_module_get_folder_tree_model (shell_module); + shell = e_shell_backend_get_shell (E_SHELL_BACKEND (mail_shell_backend)); + model = e_mail_shell_backend_get_folder_tree_model (mail_shell_backend); LOCK(info_lock); while ((up = (struct _folder_update *)e_dlist_remhead(&updates))) { @@ -233,13 +232,13 @@ real_flush_updates (EShellModule *shell_module) } static void -flush_updates (EShellModule *shell_module) +flush_updates (EMailShellBackend *shell_backend) { if (update_id == -1 && !e_dlist_empty(&updates)) update_id = mail_async_event_emit ( mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) real_flush_updates, - shell_module, NULL, NULL); + shell_backend, NULL, NULL); } static void @@ -252,7 +251,7 @@ unset_folder_info(struct _folder_info *mfi, int delete, int unsub) if (mfi->folder) { CamelFolder *folder = mfi->folder; - camel_object_unhook_event(folder, "folder_changed", folder_changed, mfi->store_info->shell_module); + camel_object_unhook_event(folder, "folder_changed", folder_changed, mfi->store_info->mail_shell_backend); camel_object_unhook_event(folder, "renamed", folder_renamed, NULL); camel_object_unhook_event(folder, "finalize", folder_finalised, NULL); } @@ -269,7 +268,7 @@ unset_folder_info(struct _folder_info *mfi, int delete, int unsub) up->uri = g_strdup(mfi->uri); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(mfi->store_info->shell_module); + flush_updates(mfi->store_info->mail_shell_backend); } } @@ -307,7 +306,7 @@ static void update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) { struct _folder_update *up; - EShellModule *shell_module; + EMailShellBackend *mail_shell_backend; CamelFolder *folder; CamelFolder *local_drafts; CamelFolder *local_outbox; @@ -315,13 +314,13 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) int unread = -1; int deleted; - shell_module = mfi->store_info->shell_module; - local_drafts = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_DRAFTS); - local_outbox = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_OUTBOX); - local_sent = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_SENT); + mail_shell_backend = mfi->store_info->mail_shell_backend; + local_drafts = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_SENT); folder = mfi->folder; if (folder) { @@ -366,7 +365,7 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) up->uri = g_strdup(mfi->uri); camel_object_ref(up->store); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(shell_module); + flush_updates(mail_shell_backend); } static void @@ -400,7 +399,7 @@ setup_folder(CamelFolderInfo *fi, struct _store_info *si) up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(si->shell_module); + flush_updates(si->mail_shell_backend); } } @@ -423,7 +422,7 @@ static void folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) { static time_t last_newmail = 0; - EShellModule *shell_module = user_data; + EMailShellBackend *mail_shell_backend = user_data; CamelFolderChangeInfo *changes = event_data; CamelFolder *folder = (CamelFolder *)o; CamelFolder *local_drafts; @@ -439,12 +438,12 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) d(printf("folder '%s' changed\n", folder->full_name)); - local_drafts = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_DRAFTS); - local_outbox = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_OUTBOX); - local_sent = e_mail_shell_module_get_folder ( - shell_module, E_MAIL_FOLDER_SENT); + local_drafts = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_shell_backend_get_folder ( + mail_shell_backend, E_MAIL_FOLDER_SENT); if (!CAMEL_IS_VEE_FOLDER(folder) && folder != local_drafts @@ -541,7 +540,7 @@ void mail_note_folder(CamelFolder *folder) UNLOCK(info_lock); - camel_object_hook_event(folder, "folder_changed", folder_changed, si->shell_module); + camel_object_hook_event(folder, "folder_changed", folder_changed, si->mail_shell_backend); camel_object_hook_event(folder, "renamed", folder_renamed, NULL); camel_object_hook_event(folder, "finalize", folder_finalised, NULL); } @@ -634,6 +633,7 @@ folder_to_url(CamelStore *store, const char *full_name) static void rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, CamelFolderInfo *fi) { + EShellBackend *shell_backend; char *old, *olduri, *oldfile, *newuri, *newfile; struct _folder_info *mfi; struct _folder_update *up; @@ -684,7 +684,7 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(si->shell_module); + flush_updates(si->mail_shell_backend); #if 0 if (fi->sibling) rename_folders(si, oldbase, newbase, fi->sibling, folders); @@ -693,7 +693,8 @@ rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, #endif /* rename the meta-data we maintain ourselves */ - config_dir = e_shell_module_get_config_dir (si->shell_module); + shell_backend = E_SHELL_BACKEND (si->mail_shell_backend); + config_dir = e_shell_backend_get_config_dir (shell_backend); olduri = folder_to_url(si->store, old); e_filename_make_safe(olduri); newuri = folder_to_url(si->store, fi->full_name); @@ -808,7 +809,7 @@ mail_note_store_remove(CamelStore *store) if (si) { g_hash_table_remove(stores, store); - g_object_unref(si->shell_module); + g_object_unref(si->mail_shell_backend); camel_object_unhook_event(store, "folder_opened", store_folder_opened, NULL); camel_object_unhook_event(store, "folder_created", store_folder_created, NULL); @@ -962,7 +963,7 @@ store_online_cb (CamelStore *store, void *data) } void -mail_note_store(EShellModule *shell_module, CamelStore *store, CamelOperation *op, +mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelOperation *op, gboolean (*done)(CamelStore *store, CamelFolderInfo *info, void *data), void *data) { struct _store_info *si; @@ -971,7 +972,7 @@ mail_note_store(EShellModule *shell_module, CamelStore *store, CamelOperation *o guint timeout; int hook = 0; - g_return_if_fail (E_IS_SHELL_MODULE (shell_module)); + g_return_if_fail (E_IS_MAIL_SHELL_BACKEND (mail_shell_backend)); g_return_if_fail (CAMEL_IS_STORE(store)); g_return_if_fail (mail_in_main_thread()); @@ -991,7 +992,7 @@ mail_note_store(EShellModule *shell_module, CamelStore *store, CamelOperation *o d(printf("Noting a new store: %p: %s\n", store, camel_url_to_string(((CamelService *)store)->url, 0))); si = g_malloc0(sizeof(*si)); - si->shell_module = g_object_ref (shell_module); + si->mail_shell_backend = g_object_ref (mail_shell_backend); si->folders = g_hash_table_new(g_str_hash, g_str_equal); si->folders_uri = g_hash_table_new(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->hash_folder_name, CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->compare_folder_name); -- cgit v1.2.3 From a93d90ffba2e9f52b19fb22f93255f835909953e Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 16 May 2009 23:12:43 -0400 Subject: Fix compiler warnings. --- mail/mail-folder-cache.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 097b9bf9b4..b6a92bc8be 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -1096,10 +1096,7 @@ int mail_note_get_folder_from_uri(const char *uri, CamelFolder **folderp) gboolean mail_folder_cache_get_folder_info_flags (CamelFolder *folder, int *flags) { - char *uri; - - uri = mail_tools_folder_to_url (folder); - + char *uri = mail_tools_folder_to_url (folder); struct _find_info fi = { uri, NULL, NULL }; if (stores == NULL) -- cgit v1.2.3 From e4afd3f9fb962ea1295a0657ec9f83a427829171 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 May 2009 23:21:02 -0400 Subject: Remove trailing whitespace, again. --- mail/mail-folder-cache.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index ed3d583927..a84dfcbf74 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -10,7 +10,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see + * License along with the program; if not, see * * * Authors: @@ -1045,7 +1045,7 @@ int mail_note_get_folder_from_uri(const char *uri, CamelFolder **folderp) return fi.fi != NULL; } -gboolean +gboolean mail_folder_cache_get_folder_info_flags (CamelFolder *folder, int *flags) { char *uri = mail_tools_folder_to_url (folder); @@ -1061,7 +1061,7 @@ mail_folder_cache_get_folder_info_flags (CamelFolder *folder, int *flags) if (flags) { if (fi.fi) { *flags = fi.fi->flags; - } + } } UNLOCK(info_lock); -- cgit v1.2.3 From 948235c3d1076dbe6ed2e57a24c16a083bbd9f01 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 27 May 2009 10:29:19 -0400 Subject: Prefer GLib basic types over C types. --- mail/mail-folder-cache.c | 106 +++++++++++++++++++++++------------------------ 1 file changed, 53 insertions(+), 53 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 23b85acc7f..0d8a3e6336 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -80,8 +80,8 @@ static pthread_mutex_t info_lock = PTHREAD_MUTEX_INITIALIZER; struct _folder_info { struct _store_info *store_info; /* 'parent' link */ - char *full_name; /* full name of folder/folderinfo */ - char *uri; /* uri of folder */ + gchar *full_name; /* full name of folder/folderinfo */ + gchar *uri; /* uri of folder */ guint32 flags; @@ -93,18 +93,18 @@ struct _folder_update { struct _folder_update *next; struct _folder_update *prev; - unsigned int remove:1; /* removing from vfolders */ - unsigned int delete:1; /* deleting as well? */ - unsigned int add:1; /* add to vfolder */ - unsigned int unsub:1; /* unsubcribing? */ - unsigned int new; /* new mail arrived? */ + guint remove:1; /* removing from vfolders */ + guint delete:1; /* deleting as well? */ + guint add:1; /* add to vfolder */ + guint unsub:1; /* unsubcribing? */ + guint new; /* new mail arrived? */ - char *full_name; - char *uri; - char *oldfull; - char *olduri; + gchar *full_name; + gchar *uri; + gchar *oldfull; + gchar *olduri; - int unread; + gint unread; CamelStore *store; }; @@ -132,11 +132,11 @@ static GHashTable *stores = NULL; /* List of folder changes to be executed in gui thread */ static EDList updates = E_DLIST_INITIALISER(updates); -static int update_id = -1; +static gint update_id = -1; /* hack for people who LIKE to have unsent count */ -static int count_sent = FALSE; -static int count_trash = FALSE; +static gint count_sent = FALSE; +static gint count_trash = FALSE; static void free_update(struct _folder_update *up) @@ -243,7 +243,7 @@ flush_updates (EMailShellBackend *shell_backend) } static void -unset_folder_info(struct _folder_info *mfi, int delete, int unsub) +unset_folder_info(struct _folder_info *mfi, gint delete, gint unsub) { struct _folder_update *up; @@ -304,7 +304,7 @@ free_folder_info(struct _folder_info *mfi) * it's correct. */ static void -update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) +update_1folder(struct _folder_info *mfi, gint new, CamelFolderInfo *info) { struct _folder_update *up; EMailShellBackend *mail_shell_backend; @@ -312,8 +312,8 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) CamelFolder *local_drafts; CamelFolder *local_outbox; CamelFolder *local_sent; - int unread = -1; - int deleted; + gint unread = -1; + gint deleted; mail_shell_backend = mfi->store_info->mail_shell_backend; local_drafts = e_mail_shell_backend_get_folder ( @@ -433,8 +433,8 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) CamelMessageInfo *info; struct _store_info *si; struct _folder_info *mfi; - int new = 0; - int i; + gint new = 0; + gint i; guint32 flags; d(printf("folder '%s' changed\n", folder->full_name)); @@ -503,7 +503,7 @@ static void folder_renamed(CamelObject *o, gpointer event_data, gpointer user_data) { CamelFolder *folder = (CamelFolder *)o; - char *old = event_data; + gchar *old = event_data; d(printf("Folder renamed from '%s' to '%s'\n", old, folder->full_name)); @@ -547,7 +547,7 @@ void mail_note_folder(CamelFolder *folder) } static void -store_folder_subscribed(CamelObject *o, void *event_data, void *data) +store_folder_subscribed(CamelObject *o, gpointer event_data, gpointer data) { struct _store_info *si; CamelFolderInfo *fi = event_data; @@ -562,7 +562,7 @@ store_folder_subscribed(CamelObject *o, void *event_data, void *data) } static void -store_folder_created(CamelObject *o, void *event_data, void *data) +store_folder_created(CamelObject *o, gpointer event_data, gpointer data) { /* we only want created events to do more work if we dont support subscriptions */ if (!camel_store_supports_subscriptions(CAMEL_STORE(o))) @@ -570,7 +570,7 @@ store_folder_created(CamelObject *o, void *event_data, void *data) } static void -store_folder_opened(CamelObject *o, void *event_data, void *data) +store_folder_opened(CamelObject *o, gpointer event_data, gpointer data) { CamelFolder *folder = event_data; @@ -578,7 +578,7 @@ store_folder_opened(CamelObject *o, void *event_data, void *data) } static void -store_folder_unsubscribed(CamelObject *o, void *event_data, void *data) +store_folder_unsubscribed(CamelObject *o, gpointer event_data, gpointer data) { struct _store_info *si; CamelFolderInfo *fi = event_data; @@ -602,24 +602,24 @@ store_folder_unsubscribed(CamelObject *o, void *event_data, void *data) } static void -store_folder_deleted(CamelObject *o, void *event_data, void *data) +store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data) { /* we only want deleted events to do more work if we dont support subscriptions */ if (!camel_store_supports_subscriptions(CAMEL_STORE(o))) store_folder_unsubscribed(o, event_data, data); } -static char * -folder_to_url(CamelStore *store, const char *full_name) +static gchar * +folder_to_url(CamelStore *store, const gchar *full_name) { CamelURL *url; - char *out; + gchar *out; url = camel_url_copy(((CamelService *)store)->url); if (((CamelService *)store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH) { camel_url_set_fragment(url, full_name); } else { - char *name = g_alloca(strlen(full_name)+2); + gchar *name = g_alloca(strlen(full_name)+2); sprintf(name, "/%s", full_name); camel_url_set_path(url, name); @@ -632,10 +632,10 @@ folder_to_url(CamelStore *store, const char *full_name) } static void -rename_folders(struct _store_info *si, const char *oldbase, const char *newbase, CamelFolderInfo *fi) +rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbase, CamelFolderInfo *fi) { EShellBackend *shell_backend; - char *old, *olduri, *oldfile, *newuri, *newfile; + gchar *old, *olduri, *oldfile, *newuri, *newfile; struct _folder_info *mfi; struct _folder_update *up; const gchar *config_dir; @@ -730,7 +730,7 @@ get_folders(CamelFolderInfo *fi, GPtrArray *folders) } static int -folder_cmp(const void *ap, const void *bp) +folder_cmp(gconstpointer ap, gconstpointer bp) { const CamelFolderInfo *a = ((CamelFolderInfo **)ap)[0]; const CamelFolderInfo *b = ((CamelFolderInfo **)bp)[0]; @@ -739,7 +739,7 @@ folder_cmp(const void *ap, const void *bp) } static void -store_folder_renamed(CamelObject *o, void *event_data, void *data) +store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data) { CamelStore *store = (CamelStore *)o; CamelRenameInfo *info = event_data; @@ -752,7 +752,7 @@ store_folder_renamed(CamelObject *o, void *event_data, void *data) if (si) { GPtrArray *folders = g_ptr_array_new(); CamelFolderInfo *top; - int i; + gint i; /* Ok, so for some reason the folderinfo we have comes in all messed up from imap, should find out why ... this makes it workable */ @@ -774,21 +774,21 @@ struct _update_data { struct _update_data *next; struct _update_data *prev; - int id; /* id for cancellation */ + gint id; /* id for cancellation */ guint cancel:1; /* also tells us we're cancelled */ - gboolean (*done)(CamelStore *store, CamelFolderInfo *info, void *data); - void *data; + gboolean (*done)(CamelStore *store, CamelFolderInfo *info, gpointer data); + gpointer data; }; static void -unset_folder_info_hash(char *path, struct _folder_info *mfi, void *data) +unset_folder_info_hash(gchar *path, struct _folder_info *mfi, gpointer data) { unset_folder_info(mfi, FALSE, FALSE); } static void -free_folder_info_hash(char *path, struct _folder_info *mfi, void *data) +free_folder_info_hash(gchar *path, struct _folder_info *mfi, gpointer data) { free_folder_info(mfi); } @@ -839,7 +839,7 @@ mail_note_store_remove(CamelStore *store) } static gboolean -update_folders(CamelStore *store, CamelFolderInfo *fi, void *data) +update_folders(CamelStore *store, CamelFolderInfo *fi, gpointer data) { struct _update_data *ud = data; struct _store_info *si; @@ -876,8 +876,8 @@ struct _ping_store_msg { static gchar * ping_store_desc (struct _ping_store_msg *m) { - char *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE); - char *msg; + gchar *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE); + gchar *msg; msg = g_strdup_printf (_("Pinging %s"), service_name); g_free (service_name); @@ -945,7 +945,7 @@ ping_cb (gpointer user_data) } static void -store_online_cb (CamelStore *store, void *data) +store_online_cb (CamelStore *store, gpointer data) { struct _update_data *ud = data; @@ -965,13 +965,13 @@ store_online_cb (CamelStore *store, void *data) void mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelOperation *op, - gboolean (*done)(CamelStore *store, CamelFolderInfo *info, void *data), void *data) + gboolean (*done)(CamelStore *store, CamelFolderInfo *info, gpointer data), gpointer data) { struct _store_info *si; struct _update_data *ud; - const char *buf; + const gchar *buf; guint timeout; - int hook = 0; + gint hook = 0; g_return_if_fail (E_IS_MAIL_SHELL_BACKEND (mail_shell_backend)); g_return_if_fail (CAMEL_IS_STORE(store)); @@ -1047,7 +1047,7 @@ mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelO } struct _find_info { - const char *uri; + const gchar *uri; struct _folder_info *fi; CamelURL *url; }; @@ -1057,7 +1057,7 @@ static void storeinfo_find_folder_info(CamelStore *store, struct _store_info *si { if (fi->fi == NULL) { if (((CamelService *)store)->provider->url_equal(fi->url, ((CamelService *)store)->url)) { - char *path = fi->url->fragment?fi->url->fragment:fi->url->path; + gchar *path = fi->url->fragment?fi->url->fragment:fi->url->path; if (path[0] == '/') path++; @@ -1068,7 +1068,7 @@ static void storeinfo_find_folder_info(CamelStore *store, struct _store_info *si /* returns TRUE if the uri is available, folderp is set to a reffed folder if the folder has also already been opened */ -int mail_note_get_folder_from_uri(const char *uri, CamelFolder **folderp) +gint mail_note_get_folder_from_uri(const gchar *uri, CamelFolder **folderp) { struct _find_info fi = { uri, NULL, NULL }; @@ -1095,9 +1095,9 @@ int mail_note_get_folder_from_uri(const char *uri, CamelFolder **folderp) } gboolean -mail_folder_cache_get_folder_info_flags (CamelFolder *folder, int *flags) +mail_folder_cache_get_folder_info_flags (CamelFolder *folder, gint *flags) { - char *uri = mail_tools_folder_to_url (folder); + gchar *uri = mail_tools_folder_to_url (folder); struct _find_info fi = { uri, NULL, NULL }; if (stores == NULL) -- cgit v1.2.3 From 433eac7844481b8ceda0bae8bf08f6bb623185b0 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Mon, 1 Jun 2009 19:09:19 -0400 Subject: More code cleanup. --- mail/mail-folder-cache.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 0d8a3e6336..9125e94a14 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -729,7 +729,7 @@ get_folders(CamelFolderInfo *fi, GPtrArray *folders) } } -static int +static gint folder_cmp(gconstpointer ap, gconstpointer bp) { const CamelFolderInfo *a = ((CamelFolderInfo **)ap)[0]; -- cgit v1.2.3 From 174c942e0945a2017f0c479883dce2950e42e786 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 24 Jun 2009 00:40:49 -0400 Subject: Split store and local folder management out from shell backend. --- mail/mail-folder-cache.c | 67 +++++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 38 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 9125e94a14..faa80b2629 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -65,6 +65,9 @@ #include "em-event.h" +#include "e-mail-local.h" +#include "e-mail-store.h" + #define w(x) #define d(x) @@ -109,8 +112,6 @@ struct _folder_update { }; struct _store_info { - EMailShellBackend *mail_shell_backend; - GHashTable *folders; /* by full_name */ GHashTable *folders_uri; /* by uri */ @@ -151,14 +152,14 @@ free_update(struct _folder_update *up) } static void -real_flush_updates (EMailShellBackend *mail_shell_backend) +real_flush_updates (void) { EShell *shell; - struct _EMFolderTreeModel *model; + EMFolderTreeModel *default_model; struct _folder_update *up; - shell = e_shell_backend_get_shell (E_SHELL_BACKEND (mail_shell_backend)); - model = e_mail_shell_backend_get_folder_tree_model (mail_shell_backend); + shell = e_shell_get_default (); + default_model = em_folder_tree_model_get_default (); LOCK(info_lock); while ((up = (struct _folder_update *)e_dlist_remhead(&updates))) { @@ -187,14 +188,17 @@ real_flush_updates (EMailShellBackend *mail_shell_backend) } /* update unread counts */ - em_folder_tree_model_set_unread_count (model, up->store, up->full_name, up->unread); + em_folder_tree_model_set_unread_count ( + default_model, up->store, up->full_name, up->unread); if (up->uri) { EMEvent *e = em_event_peek(); EMEventTargetFolder *t = em_event_target_new_folder(e, up->uri, up->new); - t->is_inbox = em_folder_tree_model_is_type_inbox (model, up->store, up->full_name); - t->name = em_folder_tree_model_get_folder_name (model, up->store, up->full_name); + t->is_inbox = em_folder_tree_model_is_type_inbox ( + default_model, up->store, up->full_name); + t->name = em_folder_tree_model_get_folder_name ( + default_model, up->store, up->full_name); if (t->new > 0) e_shell_event ( @@ -233,13 +237,13 @@ real_flush_updates (EMailShellBackend *mail_shell_backend) } static void -flush_updates (EMailShellBackend *shell_backend) +flush_updates (void) { if (update_id == -1 && !e_dlist_empty(&updates)) update_id = mail_async_event_emit ( mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc) real_flush_updates, - shell_backend, NULL, NULL); + NULL, NULL, NULL); } static void @@ -252,7 +256,7 @@ unset_folder_info(struct _folder_info *mfi, gint delete, gint unsub) if (mfi->folder) { CamelFolder *folder = mfi->folder; - camel_object_unhook_event(folder, "folder_changed", folder_changed, mfi->store_info->mail_shell_backend); + camel_object_unhook_event(folder, "folder_changed", folder_changed, NULL); camel_object_unhook_event(folder, "renamed", folder_renamed, NULL); camel_object_unhook_event(folder, "finalize", folder_finalised, NULL); } @@ -269,7 +273,7 @@ unset_folder_info(struct _folder_info *mfi, gint delete, gint unsub) up->uri = g_strdup(mfi->uri); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(mfi->store_info->mail_shell_backend); + flush_updates(); } } @@ -307,7 +311,6 @@ static void update_1folder(struct _folder_info *mfi, gint new, CamelFolderInfo *info) { struct _folder_update *up; - EMailShellBackend *mail_shell_backend; CamelFolder *folder; CamelFolder *local_drafts; CamelFolder *local_outbox; @@ -315,13 +318,9 @@ update_1folder(struct _folder_info *mfi, gint new, CamelFolderInfo *info) gint unread = -1; gint deleted; - mail_shell_backend = mfi->store_info->mail_shell_backend; - local_drafts = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_DRAFTS); - local_outbox = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_OUTBOX); - local_sent = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_SENT); + local_drafts = e_mail_local_get_folder (E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_local_get_folder (E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_local_get_folder (E_MAIL_FOLDER_SENT); folder = mfi->folder; if (folder) { @@ -366,7 +365,7 @@ update_1folder(struct _folder_info *mfi, gint new, CamelFolderInfo *info) up->uri = g_strdup(mfi->uri); camel_object_ref(up->store); e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(mail_shell_backend); + flush_updates(); } static void @@ -400,7 +399,7 @@ setup_folder(CamelFolderInfo *fi, struct _store_info *si) up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(si->mail_shell_backend); + flush_updates(); } } @@ -423,7 +422,6 @@ static void folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) { static time_t last_newmail = 0; - EMailShellBackend *mail_shell_backend = user_data; CamelFolderChangeInfo *changes = event_data; CamelFolder *folder = (CamelFolder *)o; CamelFolder *local_drafts; @@ -439,12 +437,9 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data) d(printf("folder '%s' changed\n", folder->full_name)); - local_drafts = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_DRAFTS); - local_outbox = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_OUTBOX); - local_sent = e_mail_shell_backend_get_folder ( - mail_shell_backend, E_MAIL_FOLDER_SENT); + local_drafts = e_mail_local_get_folder (E_MAIL_FOLDER_DRAFTS); + local_outbox = e_mail_local_get_folder (E_MAIL_FOLDER_OUTBOX); + local_sent = e_mail_local_get_folder (E_MAIL_FOLDER_SENT); if (!CAMEL_IS_VEE_FOLDER(folder) && folder != local_drafts @@ -541,7 +536,7 @@ void mail_note_folder(CamelFolder *folder) UNLOCK(info_lock); - camel_object_hook_event(folder, "folder_changed", folder_changed, si->mail_shell_backend); + camel_object_hook_event(folder, "folder_changed", folder_changed, NULL); camel_object_hook_event(folder, "renamed", folder_renamed, NULL); camel_object_hook_event(folder, "finalize", folder_finalised, NULL); } @@ -685,7 +680,7 @@ rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbas up->add = TRUE; e_dlist_addtail(&updates, (EDListNode *)up); - flush_updates(si->mail_shell_backend); + flush_updates(); #if 0 if (fi->sibling) rename_folders(si, oldbase, newbase, fi->sibling, folders); @@ -694,7 +689,7 @@ rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbas #endif /* rename the meta-data we maintain ourselves */ - shell_backend = E_SHELL_BACKEND (si->mail_shell_backend); + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); config_dir = e_shell_backend_get_config_dir (shell_backend); olduri = folder_to_url(si->store, old); e_filename_make_safe(olduri); @@ -810,8 +805,6 @@ mail_note_store_remove(CamelStore *store) if (si) { g_hash_table_remove(stores, store); - g_object_unref(si->mail_shell_backend); - camel_object_unhook_event(store, "folder_opened", store_folder_opened, NULL); camel_object_unhook_event(store, "folder_created", store_folder_created, NULL); camel_object_unhook_event(store, "folder_deleted", store_folder_deleted, NULL); @@ -964,7 +957,7 @@ store_online_cb (CamelStore *store, gpointer data) } void -mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelOperation *op, +mail_note_store(CamelStore *store, CamelOperation *op, gboolean (*done)(CamelStore *store, CamelFolderInfo *info, gpointer data), gpointer data) { struct _store_info *si; @@ -973,7 +966,6 @@ mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelO guint timeout; gint hook = 0; - g_return_if_fail (E_IS_MAIL_SHELL_BACKEND (mail_shell_backend)); g_return_if_fail (CAMEL_IS_STORE(store)); g_return_if_fail (mail_in_main_thread()); @@ -993,7 +985,6 @@ mail_note_store(EMailShellBackend *mail_shell_backend, CamelStore *store, CamelO d(printf("Noting a new store: %p: %s\n", store, camel_url_to_string(((CamelService *)store)->url, 0))); si = g_malloc0(sizeof(*si)); - si->mail_shell_backend = g_object_ref (mail_shell_backend); si->folders = g_hash_table_new(g_str_hash, g_str_equal); si->folders_uri = g_hash_table_new(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->hash_folder_name, CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->compare_folder_name); -- cgit v1.2.3 From f0d3f3afdfa314e1e8cd7d8da790878008a46aad Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 24 Jun 2009 12:59:33 -0400 Subject: Radically reorganize source code. - Collect all shell modules into a new top-level 'modules' directory: $(top_srcdir)/modules/addressbook $(top_srcdir)/modules/calendar $(top_srcdir)/modules/mail Nothing is allowed to link to these, not plugins nor other modules. THIS SOLVES BUG #571275 AND OPENS THE DOOR TO PORTING TO MAC OS X. - Mimic the libevolution-mail-shared library from master (except drop the "shared" suffix) and have libevolution-mail-importers and all mail-related plugins link to it. - Discard the a11y subdirectories and have the files live alongside their counterpart widgets. --- mail/mail-folder-cache.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index faa80b2629..b3d7a1e12b 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -64,6 +64,7 @@ #include "em-folder-tree-model.h" #include "em-event.h" +#include "em-utils.h" #include "e-mail-local.h" #include "e-mail-store.h" @@ -629,7 +630,6 @@ folder_to_url(CamelStore *store, const gchar *full_name) static void rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbase, CamelFolderInfo *fi) { - EShellBackend *shell_backend; gchar *old, *olduri, *oldfile, *newuri, *newfile; struct _folder_info *mfi; struct _folder_update *up; @@ -689,8 +689,7 @@ rename_folders(struct _store_info *si, const gchar *oldbase, const gchar *newbas #endif /* rename the meta-data we maintain ourselves */ - shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); - config_dir = e_shell_backend_get_config_dir (shell_backend); + config_dir = em_utils_get_config_dir (); olduri = folder_to_url(si->store, old); e_filename_make_safe(olduri); newuri = folder_to_url(si->store, fi->full_name); -- cgit v1.2.3 From 374bd42f69aca2e132fd854c9619f3d7491f1f96 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 12 Jul 2009 23:33:07 -0400 Subject: Fix excessive whitespace. --- mail/mail-folder-cache.c | 1 - 1 file changed, 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index b3d7a1e12b..bf728aa963 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -858,7 +858,6 @@ update_folders(CamelStore *store, CamelFolderInfo *fi, gpointer data) return res; } - struct _ping_store_msg { MailMsg base; -- cgit v1.2.3 From ff7084ffe4a935a4cfafc9cd44a9b9daf43cb976 Mon Sep 17 00:00:00 2001 From: "H.Habighorst" Date: Sun, 23 Aug 2009 08:31:14 -0400 Subject: Bug 571488 - Migrate from deprecated gnome_sound to libcanberra --- mail/mail-folder-cache.c | 1 - 1 file changed, 1 deletion(-) (limited to 'mail/mail-folder-cache.c') diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index bf728aa963..d19e163001 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -37,7 +37,6 @@ #include #include -#include #include #include #include -- cgit v1.2.3