diff options
author | Jonathon Jongsma <jonathon@quotidian.org> | 2009-12-17 00:27:12 +0800 |
---|---|---|
committer | Jonathon Jongsma <jonathon@quotidian.org> | 2009-12-17 01:10:02 +0800 |
commit | 968ea42023e5e0daf860a7246533311a67f77e05 (patch) | |
tree | b68bd7c80b48c09e332b45c9e3b4ed98fd68efd9 /mail | |
parent | 3a0a795a167ed33eaa6a9a73b0edeb854aef6f0f (diff) | |
download | gsoc2013-evolution-968ea42023e5e0daf860a7246533311a67f77e05.tar.gz gsoc2013-evolution-968ea42023e5e0daf860a7246533311a67f77e05.tar.zst gsoc2013-evolution-968ea42023e5e0daf860a7246533311a67f77e05.zip |
Kill em_utils_get_data/config_dir(), push down to MailSession
This pushes the get_data_dir() API down to the right level. At present, it is
still implemented by querying the shell backend for the data dir / config dir.
But this should eventually be reversed (when mail is split off to EDS) so that
the mail daemon is the one responsible for the storage locations and the shell
backend queries the daemon for these values.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/em-utils.c | 37 | ||||
-rw-r--r-- | mail/em-utils.h | 3 | ||||
-rw-r--r-- | mail/importers/mail-importer.c | 4 | ||||
-rw-r--r-- | mail/mail-autofilter.c | 7 | ||||
-rw-r--r-- | mail/mail-config.c | 5 | ||||
-rw-r--r-- | mail/mail-folder-cache.c | 2 | ||||
-rw-r--r-- | mail/mail-ops.c | 4 | ||||
-rw-r--r-- | mail/mail-session.c | 17 | ||||
-rw-r--r-- | mail/mail-session.h | 3 | ||||
-rw-r--r-- | mail/mail-tools.c | 2 | ||||
-rw-r--r-- | mail/mail-vfolder.c | 19 |
11 files changed, 44 insertions, 59 deletions
diff --git a/mail/em-utils.c b/mail/em-utils.c index bf4357aff3..fd60db36fb 100644 --- a/mail/em-utils.c +++ b/mail/em-utils.c @@ -78,6 +78,7 @@ #include "em-composer-utils.h" #include "em-format-quote.h" #include "e-mail-local.h" +#include "mail-session.h" /* XXX This is a dirty hack on a dirty hack. We really need * to rework or get rid of the functions that use this. */ @@ -91,38 +92,6 @@ static void emu_save_part_done (CamelMimePart *part, gchar *name, gint done, gpo #define d(x) -const gchar * -em_utils_get_data_dir (void) -{ - EShell *shell; - EShellBackend *shell_backend; - - /* XXX This is a temporary solution until I can figure out a - * better way. Ideally, nothing below the module layer - * should need to know about the user data directory. */ - shell = e_shell_get_default (); - shell_backend = e_shell_get_backend_by_name ( - shell, shell_builtin_backend); - - return e_shell_backend_get_data_dir (shell_backend); -} - -const gchar * -em_utils_get_config_dir (void) -{ - EShell *shell; - EShellBackend *shell_backend; - - /* XXX This is a temporary solution until I can figure out a - * better way. Ideally, nothing below the module layer - * should need to know about the user config directory. */ - shell = e_shell_get_default (); - shell_backend = e_shell_get_backend_by_name ( - shell, shell_builtin_backend); - - return e_shell_backend_get_config_dir (shell_backend); -} - gboolean em_utils_ask_open_many (GtkWindow *parent, gint how_many) @@ -274,7 +243,7 @@ em_filter_editor_response (GtkWidget *dialog, gint button, gpointer user_data) const gchar *data_dir; gchar *user; - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); fc = g_object_get_data ((GObject *) dialog, "context"); user = g_strdup_printf ("%s/filters.xml", data_dir); e_rule_context_save ((ERuleContext *) fc, user); @@ -312,7 +281,7 @@ em_utils_edit_filters (GtkWidget *parent) return; } - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); fc = em_filter_context_new (); user = g_build_filename (data_dir, "filters.xml", NULL); diff --git a/mail/em-utils.h b/mail/em-utils.h index db2a7c6952..ae8e2f5f10 100644 --- a/mail/em-utils.h +++ b/mail/em-utils.h @@ -38,9 +38,6 @@ G_BEGIN_DECLS struct _EMFormat; -const gchar * em_utils_get_data_dir (void); -const gchar * em_utils_get_config_dir (void); - gboolean em_utils_ask_open_many (GtkWindow *parent, gint how_many); gboolean em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag, const gchar *arg0, ...); diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c index 6e4573487f..ee1c958d12 100644 --- a/mail/importers/mail-importer.c +++ b/mail/importers/mail-importer.c @@ -50,7 +50,7 @@ #include "mail-mt.h" #include "mail-tools.h" #include "e-mail-local.h" -#include "em-utils.h" +#include "mail-session.h" #include "mail-importer.h" @@ -292,7 +292,7 @@ import_folders_rec(struct _import_folders_data *m, const gchar *filepath, const if (dir == NULL) return; - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); utf8_filename = g_filename_to_utf8 (filepath, -1, NULL, NULL, NULL); camel_operation_start(NULL, _("Scanning %s"), utf8_filename); diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c index bbb3694ee8..8117bfca6a 100644 --- a/mail/mail-autofilter.c +++ b/mail/mail-autofilter.c @@ -32,6 +32,7 @@ #include "mail-vfolder.h" #include "mail-autofilter.h" +#include "mail-session.h" #include "em-utils.h" #include "e-util/e-alert-dialog.h" #include "e-util/e-util-private.h" @@ -352,7 +353,7 @@ filter_gui_add_from_message (CamelMimeMessage *msg, const gchar *source, gint fl g_return_if_fail (msg != NULL); fc = em_filter_context_new (); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "filters.xml", NULL); system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL); e_rule_context_load ((ERuleContext *)fc, system, user); @@ -380,7 +381,7 @@ mail_filter_rename_uri(CamelStore *store, const gchar *olduri, const gchar *newu enewuri = em_uri_from_camel(newuri); fc = em_filter_context_new (); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "filters.xml", NULL); system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL); e_rule_context_load ((ERuleContext *)fc, system, user); @@ -413,7 +414,7 @@ mail_filter_delete_uri(CamelStore *store, const gchar *uri) euri = em_uri_from_camel(uri); fc = em_filter_context_new (); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "filters.xml", NULL); system = g_build_filename (EVOLUTION_PRIVDATADIR, "filtertypes.xml", NULL); e_rule_context_load ((ERuleContext *)fc, system, user); diff --git a/mail/mail-config.c b/mail/mail-config.c index 41ac85a373..be2125bcc0 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -59,7 +59,6 @@ #include <libedataserverui/e-passwords.h> #include "e-mail-local.h" -#include "em-utils.h" #include "mail-config.h" #include "mail-folder-cache.h" #include "mail-mt.h" @@ -441,7 +440,7 @@ uri_to_evname (const gchar *uri, const gchar *prefix) gchar *safe; gchar *tmp; - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); safe = g_strdup (uri); e_filename_make_safe (safe); @@ -573,7 +572,7 @@ mail_config_folder_to_cachename (CamelFolder *folder, const gchar *prefix) gchar *url, *basename, *filename; const gchar *config_dir; - config_dir = em_utils_get_config_dir (); + config_dir = mail_session_get_config_dir (); url = mail_config_folder_to_safe_url (folder); basename = g_strdup_printf ("%s%s", prefix, url); filename = g_build_filename (config_dir, basename, NULL); diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index f43e16e7b8..5bf5be4bbd 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -701,7 +701,7 @@ rename_folders(MailFolderCache *self, struct _store_info *si, const gchar *oldba #endif /* rename the meta-data we maintain ourselves */ - config_dir = em_utils_get_config_dir (); + config_dir = mail_session_get_config_dir (); olduri = folder_to_url(si->store, old); e_filename_make_safe(olduri); newuri = folder_to_url(si->store, fi->full_name); diff --git a/mail/mail-ops.c b/mail/mail-ops.c index 8110ab48db..e07fe19a67 100644 --- a/mail/mail-ops.c +++ b/mail/mail-ops.c @@ -256,7 +256,7 @@ uid_cachename_hack (CamelStore *store) url->host); e_filename_make_safe (encoded_url); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); filename = g_build_filename (data_dir, "pop", encoded_url, "uid-cache", NULL); g_free (encoded_url); @@ -1796,7 +1796,7 @@ empty_trash_exec (struct _empty_trash_msg *m) if (m->account) { trash = mail_tool_get_trash (m->account->source->url, FALSE, &m->base.ex); } else { - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); uri = g_strdup_printf ("mbox:%s/local", data_dir); trash = mail_tool_get_trash (uri, TRUE, &m->base.ex); g_free (uri); diff --git a/mail/mail-session.c b/mail/mail-session.c index b7b26bf8dc..e9ad274839 100644 --- a/mail/mail-session.c +++ b/mail/mail-session.c @@ -834,3 +834,20 @@ mail_session_set_junk_headers (const gchar **name, const gchar **value, gint len camel_session_set_junk_headers (session, name, value, len); } + +const gchar * +mail_session_get_data_dir (void) +{ + g_return_val_if_fail (session_shell_backend, NULL); + + return e_shell_backend_get_data_dir (session_shell_backend); +} + +const gchar * +mail_session_get_config_dir (void) +{ + g_return_val_if_fail (session_shell_backend, NULL); + + return e_shell_backend_get_config_dir (session_shell_backend); +} + diff --git a/mail/mail-session.h b/mail/mail-session.h index b1274403c0..ccca89d199 100644 --- a/mail/mail-session.h +++ b/mail/mail-session.h @@ -50,6 +50,9 @@ void mail_session_add_junk_plugin (const gchar *plugin_name, CamelJunkPlugin *ju const GList * mail_session_get_junk_plugins (void); void mail_session_set_junk_headers (const gchar **name, const gchar **value, gint len); +const gchar * mail_session_get_data_dir (void); +const gchar * mail_session_get_config_dir (void); + extern CamelSession *session; G_END_DECLS diff --git a/mail/mail-tools.c b/mail/mail-tools.c index 45f502ecf0..53bf2be0c6 100644 --- a/mail/mail-tools.c +++ b/mail/mail-tools.c @@ -129,7 +129,7 @@ mail_tool_get_local_movemail_path (const guchar *uri, CamelException *ex) if (strchr("/:;=|%&#!*^()\\, ", *c) || !isprint((gint) *c)) *c = '_'; - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); path = g_build_filename (data_dir, "spool", NULL); if (g_stat(path, &st) == -1 && g_mkdir_with_parents(path, 0777) == -1) { diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c index b4a8330776..6301e5ff5e 100644 --- a/mail/mail-vfolder.c +++ b/mail/mail-vfolder.c @@ -46,6 +46,7 @@ #include "mail-folder-cache.h" #include "mail-mt.h" #include "mail-ops.h" +#include "mail-session.h" #include "mail-tools.h" #include "mail-vfolder.h" @@ -66,8 +67,6 @@ static GHashTable *vfolder_hash; /* This is a slightly hacky solution to shutting down, we poll this variable in various loops, and just quit processing if it is set. */ static volatile gint shutdown; /* are we shutting down? */ -/* more globals ... */ -extern CamelSession *session; static void rule_changed(EFilterRule *rule, CamelFolder *folder); @@ -667,7 +666,7 @@ done: dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", changed->str, uri, NULL); em_utils_show_info_silent (dialog); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save ((ERuleContext *) context, user); g_free (user); @@ -735,7 +734,7 @@ mail_vfolder_rename_uri(CamelStore *store, const gchar *cfrom, const gchar *cto) gchar *user; d(printf("Vfolders updated from renamed folder\n")); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save((ERuleContext *)context, user); g_free(user); @@ -914,7 +913,7 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data) g_object_unref(rule); g_signal_connect(context, "rule_removed", G_CALLBACK(context_rule_removed), context); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save((ERuleContext *)context, user); g_free(user); @@ -960,7 +959,7 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data) e_filter_rule_set_name(rule, info->new->full_name); g_signal_connect(rule, "changed", G_CALLBACK(rule_changed), folder); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save((ERuleContext *)context, user); g_free(user); @@ -1021,7 +1020,7 @@ vfolder_load_storage(void) G_UNLOCK (vfolder_hash); /* first, create the vfolder store, and set it up */ - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir); vfolder_store = camel_session_get_store(session, storeuri, NULL); if (vfolder_store == NULL) { @@ -1091,7 +1090,7 @@ vfolder_revert(void) gchar *user; d(printf("vfolder_revert\n")); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_revert((ERuleContext *)context, user); g_free(user); @@ -1145,7 +1144,7 @@ edit_rule_response(GtkWidget *w, gint button, gpointer data) EFilterRule *orig = g_object_get_data (G_OBJECT (w), "orig"); e_filter_rule_copy(orig, rule); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save((ERuleContext *)context, user); g_free(user); @@ -1222,7 +1221,7 @@ new_rule_clicked(GtkWidget *w, gint button, gpointer data) g_object_ref(rule); e_rule_context_add_rule((ERuleContext *)context, rule); - data_dir = em_utils_get_data_dir (); + data_dir = mail_session_get_data_dir (); user = g_build_filename (data_dir, "vfolders.xml", NULL); e_rule_context_save((ERuleContext *)context, user); g_free(user); |