diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2010-10-07 11:38:52 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2010-10-13 01:58:59 +0800 |
commit | a06e4484b8df804124b5bcf88d94dec5acfba270 (patch) | |
tree | 4fa42793d7dc461f2b3767296d76592182c48222 /mail/importers/pine-importer.c | |
parent | 5e0758bb6934a7859b1d8a247c8fb21c156772cf (diff) | |
download | gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar.gz gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar.bz2 gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar.lz gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar.xz gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.tar.zst gsoc2013-evolution-a06e4484b8df804124b5bcf88d94dec5acfba270.zip |
Give MailSession a permanent home.
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
Diffstat (limited to 'mail/importers/pine-importer.c')
-rw-r--r-- | mail/importers/pine-importer.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c index ad9b7d331a..26a37b853e 100644 --- a/mail/importers/pine-importer.c +++ b/mail/importers/pine-importer.c @@ -44,7 +44,9 @@ #include "mail-importer.h" #include "mail/mail-mt.h" +#include "mail/e-mail-backend.h" #include "e-util/e-import.h" +#include "shell/e-shell.h" #define d(x) @@ -230,6 +232,17 @@ static MailImporterSpecial pine_special_folders[] = { static void pine_import_exec (struct _pine_import_msg *m) { + EShell *shell; + EShellBackend *shell_backend; + EMailSession *session; + + /* XXX Dig up the EMailSession from the default EShell. + * Since the EImport framework doesn't allow for user + * data, I don't see how else to get to it. */ + shell = e_shell_get_default (); + shell_backend = e_shell_get_backend_by_name (shell, "mail"); + session = e_mail_backend_get_session (E_MAIL_BACKEND (shell_backend)); + if (GPOINTER_TO_INT(g_datalist_get_data(&m->target->data, "pine-do-addr"))) import_contacts (); @@ -238,7 +251,7 @@ pine_import_exec (struct _pine_import_msg *m) path = g_build_filename(g_get_home_dir(), "mail", NULL); mail_importer_import_folders_sync ( - path, pine_special_folders, 0, m->cancellable); + session, path, pine_special_folders, 0, m->cancellable); g_free (path); } } |