diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/dbx-import/dbx-importer.c | 18 | ||||
-rw-r--r-- | plugins/pst-import/pst-importer.c | 10 | ||||
-rw-r--r-- | plugins/templates/templates.c | 98 |
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); } |