aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/dbx-import/dbx-importer.c18
-rw-r--r--plugins/pst-import/pst-importer.c10
-rw-r--r--plugins/templates/templates.c98
3 files changed, 89 insertions, 37 deletions
diff --git a/plugins/dbx-import/dbx-importer.c b/plugins/dbx-import/dbx-importer.c
index b838bdf953..f7bedc856f 100644
--- a/plugins/dbx-import/dbx-importer.c
+++ b/plugins/dbx-import/dbx-importer.c
@@ -65,7 +65,6 @@
#include <libedataserverui/e-source-selector-dialog.h>
#include <mail/e-mail-backend.h>
-#include <mail/e-mail-local.h>
#include <mail/em-folder-selection-button.h>
#include <mail/mail-mt.h>
#include <mail/mail-tools.h>
@@ -203,6 +202,8 @@ org_gnome_evolution_readdbx_getwidget (EImport *ei,
{
EShell *shell;
EShellBackend *shell_backend;
+ EMailBackend *backend;
+ EMailSession *session;
GtkWidget *hbox, *w;
GtkLabel *label;
gchar *select_uri = NULL;
@@ -238,10 +239,18 @@ org_gnome_evolution_readdbx_getwidget (EImport *ei,
}
}
#endif
+
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+ backend = E_MAIL_BACKEND (shell_backend);
+ session = e_mail_backend_get_session (backend);
+
if (!select_uri) {
const gchar *local_inbox_uri;
- local_inbox_uri = e_mail_local_get_folder_uri (
- E_MAIL_LOCAL_FOLDER_INBOX);
+ local_inbox_uri =
+ e_mail_session_get_local_folder_uri (
+ session, E_MAIL_LOCAL_FOLDER_INBOX);
select_uri = g_strdup (local_inbox_uri);
}
@@ -252,9 +261,6 @@ org_gnome_evolution_readdbx_getwidget (EImport *ei,
label = GTK_LABEL (w);
- shell = e_shell_get_default ();
- shell_backend = e_shell_get_backend_by_name (shell, "mail");
-
w = em_folder_selection_button_new (
E_MAIL_BACKEND (shell_backend),
_("Select folder"),
diff --git a/plugins/pst-import/pst-importer.c b/plugins/pst-import/pst-importer.c
index 8ef601241f..c7d180151e 100644
--- a/plugins/pst-import/pst-importer.c
+++ b/plugins/pst-import/pst-importer.c
@@ -54,7 +54,6 @@
#include <libedataserverui/e-client-utils.h>
#include <mail/e-mail-backend.h>
-#include <mail/e-mail-local.h>
#include <mail/em-folder-selection-button.h>
#include <mail/mail-mt.h>
#include <mail/mail-tools.h>
@@ -228,6 +227,7 @@ get_suggested_foldername (EImportTargetURI *target)
{
EShell *shell;
EShellBackend *shell_backend;
+ EMailBackend *backend;
EMailSession *session;
GtkWindow *window;
const gchar *inbox;
@@ -241,7 +241,9 @@ get_suggested_foldername (EImportTargetURI *target)
* 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));
+
+ backend = E_MAIL_BACKEND (shell_backend);
+ session = e_mail_backend_get_session (backend);
foldername = NULL;
@@ -284,7 +286,9 @@ get_suggested_foldername (EImportTargetURI *target)
if (!foldername) {
/* Suggest a folder that is in the same mail storage as the users' inbox,
* with a name derived from the .PST file */
- inbox = e_mail_local_get_folder_uri (E_MAIL_LOCAL_FOLDER_INBOX);
+ inbox =
+ e_mail_session_get_local_folder_uri (
+ session, E_MAIL_LOCAL_FOLDER_INBOX);
delim = g_strrstr (inbox, "#");
if (delim != NULL) {
diff --git a/plugins/templates/templates.c b/plugins/templates/templates.c
index d8921bcb11..714a6f0e0b 100644
--- a/plugins/templates/templates.c
+++ b/plugins/templates/templates.c
@@ -33,7 +33,6 @@
#include <e-util/e-config.h>
#include <mail/e-mail-folder-utils.h>
-#include <mail/e-mail-local.h>
#include <mail/e-mail-reader.h>
#include <mail/e-mail-session.h>
#include <mail/em-composer-utils.h>
@@ -764,6 +763,7 @@ create_new_message (CamelFolder *folder,
CamelDataWrapper *dw;
struct _camel_header_raw *header;
EMailBackend *backend;
+ EMailSession *session;
EShell *shell;
const gchar *message_uid;
gint i;
@@ -798,9 +798,11 @@ create_new_message (CamelFolder *folder,
message_uid = context->message_uid;
backend = e_mail_reader_get_backend (context->reader);
+ session = e_mail_backend_get_session (backend);
shell = e_shell_backend_get_shell (E_SHELL_BACKEND (backend));
- folder = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_TEMPLATES);
+ folder = e_mail_session_get_local_folder (
+ session, E_MAIL_LOCAL_FOLDER_TEMPLATES);
new = camel_mime_message_new ();
new_multipart = camel_multipart_new ();
@@ -995,7 +997,8 @@ action_reply_with_template_cb (GtkAction *action,
}
static void
-build_template_menus_recurse (GtkUIManager *ui_manager,
+build_template_menus_recurse (CamelStore *local_store,
+ GtkUIManager *ui_manager,
GtkActionGroup *action_group,
const gchar *menu_path,
guint *action_count,
@@ -1003,10 +1006,9 @@ build_template_menus_recurse (GtkUIManager *ui_manager,
CamelFolderInfo *folder_info,
EShellView *shell_view)
{
- CamelStore *store;
- EShellWindow *shell_window = e_shell_view_get_shell_window (shell_view);
+ EShellWindow *shell_window;
- store = e_mail_local_get_store ();
+ shell_window = e_shell_view_get_shell_window (shell_view);
while (folder_info != NULL) {
CamelFolder *folder;
@@ -1019,9 +1021,10 @@ build_template_menus_recurse (GtkUIManager *ui_manager,
guint ii;
display_name = folder_info->display_name;
+
/* FIXME Not passing a GCancellable or GError here. */
folder = camel_store_get_folder_sync (
- store, folder_info->full_name, 0, NULL, NULL);
+ local_store, folder_info->full_name, 0, NULL, NULL);
action_name = g_strdup_printf (
"templates-menu-%d", *action_count);
@@ -1044,9 +1047,12 @@ build_template_menus_recurse (GtkUIManager *ui_manager,
/* Disconnect previous connection to avoid possible multiple calls because
* folder is a persistent structure */
- g_signal_handlers_disconnect_by_func (folder, G_CALLBACK (templates_folder_msg_changed_cb), shell_window);
- g_signal_connect (folder, "changed",
- G_CALLBACK (templates_folder_msg_changed_cb), shell_window);
+ g_signal_handlers_disconnect_by_func (
+ folder, G_CALLBACK (templates_folder_msg_changed_cb), shell_window);
+ g_signal_connect (
+ folder, "changed",
+ G_CALLBACK (templates_folder_msg_changed_cb),
+ shell_window);
path = g_strdup_printf ("%s/%s", menu_path, action_name);
@@ -1056,6 +1062,7 @@ build_template_menus_recurse (GtkUIManager *ui_manager,
/* Add submenus, if any. */
if (folder_info->child != NULL)
build_template_menus_recurse (
+ local_store,
ui_manager, action_group,
path, action_count, merge_id,
folder_info->child, shell_view);
@@ -1130,6 +1137,10 @@ static void
got_message_draft_cb (EMsgComposer *composer,
GAsyncResult *result)
{
+ EShell *shell;
+ EShellBackend *shell_backend;
+ EMailBackend *backend;
+ EMailSession *session;
CamelMimeMessage *message;
CamelMessageInfo *info;
CamelFolder *folder;
@@ -1157,8 +1168,15 @@ got_message_draft_cb (EMsgComposer *composer,
g_return_if_fail (CAMEL_IS_MIME_MESSAGE (message));
+ shell = e_shell_get_default ();
+ shell_backend = e_shell_get_backend_by_name (shell, "mail");
+
+ backend = E_MAIL_BACKEND (shell_backend);
+ session = e_mail_backend_get_session (backend);
+
/* Get the templates folder and all UIDs of the messages there. */
- folder = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_TEMPLATES);
+ folder = e_mail_session_get_local_folder (
+ session, E_MAIL_LOCAL_FOLDER_TEMPLATES);
info = camel_message_info_new (NULL);
@@ -1201,8 +1219,11 @@ build_menu (EShellWindow *shell_window,
GtkActionGroup *action_group)
{
EShellView *shell_view;
+ EShellBackend *shell_backend;
+ EMailBackend *backend;
+ EMailSession *session;
CamelFolder *folder;
- CamelStore *store;
+ CamelStore *local_store;
CamelFolderInfo *folder_info;
GtkUIManager *ui_manager;
guint merge_id;
@@ -1211,28 +1232,32 @@ build_menu (EShellWindow *shell_window,
ui_manager = e_shell_window_get_ui_manager (shell_window);
shell_view = e_shell_window_get_shell_view (shell_window, "mail");
+ shell_backend = e_shell_view_get_shell_backend (shell_view);
+
+ backend = E_MAIL_BACKEND (shell_backend);
+ session = e_mail_backend_get_session (backend);
+ local_store = e_mail_session_get_local_store (session);
merge_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (action_group), "merge-id"));
/* Now recursively build template submenus in the pop-up menu. */
- store = e_mail_local_get_store ();
- folder = e_mail_local_get_folder (
- E_MAIL_LOCAL_FOLDER_TEMPLATES);
+ folder = e_mail_session_get_local_folder (
+ session, E_MAIL_LOCAL_FOLDER_TEMPLATES);
full_name = camel_folder_get_full_name (folder);
/* FIXME Not passing a GCancellable or GError here. */
folder_info = camel_store_get_folder_info_sync (
- store, full_name,
+ local_store, full_name,
CAMEL_STORE_FOLDER_INFO_RECURSIVE |
CAMEL_STORE_FOLDER_INFO_FAST, NULL, NULL);
build_template_menus_recurse (
- ui_manager, action_group,
+ local_store, ui_manager, action_group,
"/mail-message-popup/mail-message-templates",
&action_count, merge_id, folder_info,
shell_view);
- camel_store_free_folder_info (store, folder_info);
+ camel_store_free_folder_info (local_store, folder_info);
}
static void
@@ -1325,32 +1350,49 @@ static void
mail_shell_view_created_cb (EShellWindow *shell_window,
EShellView *shell_view)
{
+ EMailBackend *backend;
+ EMailSession *session;
+ EShellBackend *shell_backend;
GtkUIManager *ui_manager;
GtkActionGroup *action_group;
CamelFolder *folder;
- CamelStore *store;
+ CamelStore *local_store;
guint merge_id;
ui_manager = e_shell_window_get_ui_manager (shell_window);
e_shell_window_add_action_group (shell_window, "templates");
action_group = e_lookup_action_group (ui_manager, "templates");
+
merge_id = gtk_ui_manager_new_merge_id (ui_manager);
- g_object_set_data (G_OBJECT (action_group), "merge-id",
- GUINT_TO_POINTER (merge_id));
- folder = e_mail_local_get_folder (E_MAIL_LOCAL_FOLDER_TEMPLATES);
- store = e_mail_local_get_store ();
+ g_object_set_data (
+ G_OBJECT (action_group), "merge-id",
+ GUINT_TO_POINTER (merge_id));
+
+ shell_backend = e_shell_view_get_shell_backend (shell_view);
+
+ backend = E_MAIL_BACKEND (shell_backend);
+ session = e_mail_backend_get_session (backend);
+ local_store = e_mail_session_get_local_store (session);
- g_signal_connect (folder, "changed",
+ folder = e_mail_session_get_local_folder (
+ session, E_MAIL_LOCAL_FOLDER_TEMPLATES);
+
+ g_signal_connect (
+ folder, "changed",
G_CALLBACK (templates_folder_msg_changed_cb), shell_window);
- g_signal_connect (store, "folder-created",
+ g_signal_connect (
+ local_store, "folder-created",
G_CALLBACK (templates_folder_changed_cb), shell_window);
- g_signal_connect (store, "folder-deleted",
+ g_signal_connect (
+ local_store, "folder-deleted",
G_CALLBACK (templates_folder_changed_cb), shell_window);
- g_signal_connect (store, "folder-renamed",
+ g_signal_connect (
+ local_store, "folder-renamed",
G_CALLBACK (templates_folder_renamed_cb), shell_window);
- g_signal_connect (shell_view, "update-actions",
+ g_signal_connect (
+ shell_view, "update-actions",
G_CALLBACK (update_actions_cb), action_group);
}