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-vfolder.c | 66 +++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 20 deletions(-) (limited to 'mail/mail-vfolder.c') diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c index 2afcafdd6a..dc0f64e6fd 100644 --- a/mail/mail-vfolder.c +++ b/mail/mail-vfolder.c @@ -50,7 +50,7 @@ #include "mail-tools.h" #include "mail-vfolder.h" -#include "e-mail-shell-module.h" +#include "e-mail-shell-backend.h" #define d(x) /* (printf("%s:%s: ", G_STRLOC, G_STRFUNC), (x))*/ @@ -344,12 +344,12 @@ uri_is_ignore(CamelStore *store, const char *uri) const gchar *local_sent_folder_uri; int found = FALSE; - local_drafts_folder_uri = e_mail_shell_module_get_folder_uri ( - mail_shell_module, E_MAIL_FOLDER_DRAFTS); - local_outbox_folder_uri = e_mail_shell_module_get_folder_uri ( - mail_shell_module, E_MAIL_FOLDER_OUTBOX); - local_sent_folder_uri = e_mail_shell_module_get_folder_uri ( - mail_shell_module, E_MAIL_FOLDER_SENT); + local_drafts_folder_uri = e_mail_shell_backend_get_folder_uri ( + global_mail_shell_backend, E_MAIL_FOLDER_DRAFTS); + local_outbox_folder_uri = e_mail_shell_backend_get_folder_uri ( + global_mail_shell_backend, E_MAIL_FOLDER_OUTBOX); + local_sent_folder_uri = e_mail_shell_backend_get_folder_uri ( + global_mail_shell_backend, E_MAIL_FOLDER_SENT); d(printf("checking '%s' against:\n %s\n %s\n %s\n", uri, local_outbox_folder_uri, @@ -534,6 +534,7 @@ done: void mail_vfolder_delete_uri(CamelStore *store, const char *curi) { + EShellBackend *shell_backend; FilterRule *rule; const char *source; CamelVeeFolder *vf; @@ -550,6 +551,8 @@ mail_vfolder_delete_uri(CamelStore *store, const char *curi) g_return_if_fail (mail_in_main_thread()); + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + changed = g_string_new (""); LOCK(); @@ -610,7 +613,7 @@ done: dialog = e_error_new(NULL, "mail:vfolder-updated", changed->str, uri, NULL); em_utils_show_info_silent (dialog); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save ((RuleContext *) context, user); g_free (user); @@ -625,6 +628,7 @@ done: void mail_vfolder_rename_uri(CamelStore *store, const char *cfrom, const char *cto) { + EShellBackend *shell_backend; FilterRule *rule; const char *source; CamelVeeFolder *vf; @@ -638,6 +642,8 @@ mail_vfolder_rename_uri(CamelStore *store, const char *cfrom, const char *cto) g_return_if_fail (mail_in_main_thread()); + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + from = em_uri_from_camel(cfrom); to = em_uri_from_camel(cto); @@ -678,7 +684,7 @@ mail_vfolder_rename_uri(CamelStore *store, const char *cfrom, const char *cto) char *user; d(printf("Vfolders updated from renamed folder\n")); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save((RuleContext *)context, user); g_free(user); @@ -832,6 +838,7 @@ store_folder_created(CamelObject *o, void *event_data, void *data) static void store_folder_deleted(CamelObject *o, void *event_data, void *data) { + EShellBackend *shell_backend; CamelStore *store = (CamelStore *)o; CamelFolderInfo *info = event_data; FilterRule *rule; @@ -840,6 +847,8 @@ store_folder_deleted(CamelObject *o, void *event_data, void *data) d(printf("Folder deleted: %s\n", info->name)); store = store; + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + /* Warning not thread safe, but might be enough */ LOCK(); @@ -856,7 +865,7 @@ store_folder_deleted(CamelObject *o, void *event_data, void *data) g_object_unref(rule); g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save((RuleContext *)context, user); g_free(user); @@ -870,12 +879,15 @@ store_folder_deleted(CamelObject *o, void *event_data, void *data) static void store_folder_renamed(CamelObject *o, void *event_data, void *data) { + EShellBackend *shell_backend; CamelRenameInfo *info = event_data; FilterRule *rule; char *user; gpointer key, folder; + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + /* This should be more-or-less thread-safe */ d(printf("Folder renamed to '%s' from '%s'\n", info->new->full_name, info->old_base)); @@ -902,7 +914,7 @@ store_folder_renamed(CamelObject *o, void *event_data, void *data) filter_rule_set_name(rule, info->new->full_name); g_signal_connect(rule, "changed", G_CALLBACK(rule_changed), folder); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save((RuleContext *)context, user); g_free(user); @@ -920,12 +932,15 @@ vfolder_load_storage(void) /* lock for loading storage, it is safe to call it more than once */ static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + EShellBackend *shell_backend; const gchar *data_dir; char *user, *storeuri; FilterRule *rule; char *xmlfile; GConfClient *gconf; + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + pthread_mutex_lock (&lock); if (vfolder_hash) { @@ -939,7 +954,7 @@ vfolder_load_storage(void) pthread_mutex_unlock (&lock); /* first, create the vfolder store, and set it up */ - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir); vfolder_store = camel_session_get_store(session, storeuri, NULL); if (vfolder_store == NULL) { @@ -972,8 +987,8 @@ vfolder_load_storage(void) g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context); /* load store to mail component */ - e_mail_shell_module_load_store_by_uri ( - mail_shell_module, storeuri, _("Search Folders")); + e_mail_shell_backend_load_store_by_uri ( + global_mail_shell_backend, storeuri, _("Search Folders")); /* and setup the rules we have */ rule = NULL; @@ -996,11 +1011,14 @@ vfolder_load_storage(void) void vfolder_revert(void) { + EShellBackend *shell_backend; const gchar *data_dir; char *user; + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + d(printf("vfolder_revert\n")); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_revert((RuleContext *)context, user); g_free(user); @@ -1009,7 +1027,7 @@ vfolder_revert(void) void vfolder_edit (EShellView *shell_view) { - EShellModule *shell_module; + EShellBackend *shell_backend; EShellWindow *shell_window; GtkWidget *dialog; const gchar *data_dir; @@ -1017,10 +1035,10 @@ vfolder_edit (EShellView *shell_view) g_return_if_fail (E_IS_SHELL_VIEW (shell_view)); - shell_module = e_shell_view_get_shell_module (shell_view); + shell_backend = e_shell_view_get_shell_backend (shell_view); shell_window = e_shell_view_get_shell_window (shell_view); - data_dir = e_shell_module_get_data_dir (shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); filename = g_build_filename (data_dir, "vfolders.xml", NULL); /* ensures vfolder is running */ @@ -1047,6 +1065,10 @@ vfolder_edit (EShellView *shell_view) static void edit_rule_response(GtkWidget *w, int button, void *data) { + EShellBackend *shell_backend; + + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + if (button == GTK_RESPONSE_OK) { const gchar *data_dir; char *user; @@ -1054,7 +1076,7 @@ edit_rule_response(GtkWidget *w, int button, void *data) FilterRule *orig = g_object_get_data (G_OBJECT (w), "orig"); filter_rule_copy(orig, rule); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save((RuleContext *)context, user); g_free(user); @@ -1111,6 +1133,10 @@ vfolder_edit_rule(const char *uri) static void new_rule_clicked(GtkWidget *w, int button, void *data) { + EShellBackend *shell_backend; + + shell_backend = E_SHELL_BACKEND (global_mail_shell_backend); + if (button == GTK_RESPONSE_OK) { const gchar *data_dir; char *user; @@ -1129,7 +1155,7 @@ new_rule_clicked(GtkWidget *w, int button, void *data) g_object_ref(rule); rule_context_add_rule((RuleContext *)context, rule); - data_dir = e_shell_module_get_data_dir (mail_shell_module); + data_dir = e_shell_backend_get_data_dir (shell_backend); user = g_build_filename (data_dir, "vfolders.xml", NULL); rule_context_save((RuleContext *)context, user); g_free(user); -- cgit v1.2.3