static void mail_attachment_handler_reply (EAttachmentHandler *handler, EMailReplyType reply_type) { EMailAttachmentHandlerPrivate *priv; GSettings *settings; EMailReplyStyle style; CamelMimeMessage *message; EShellBackend *shell_backend; EShell *shell; priv = E_MAIL_ATTACHMENT_HANDLER_GET_PRIVATE (handler); message = mail_attachment_handler_get_selected_message (handler); g_return_if_fail (message != NULL); settings = e_util_ref_settings ("org.gnome.evolution.mail"); style = g_settings_get_enum (settings, "reply-style-name"); g_object_unref (settings); shell_backend = E_SHELL_BACKEND (priv->backend); shell = e_shell_backend_get_shell (shell_backend); em_utils_reply_to_message ( shell, message, NULL, NULL, reply_type, style, NULL, NULL); g_object_unref (message); }
static void handleuri_got_folder(char *uri, CamelFolder *folder, void *data) { CamelURL *url = data; EMMessageBrowser *emmb; if (folder != NULL) { const char *reply = camel_url_get_param(url, "reply"); const char *forward = camel_url_get_param(url, "forward"); int mode; if (reply) { if (!strcmp(reply, "all")) mode = REPLY_MODE_ALL; else if (!strcmp(reply, "list")) mode = REPLY_MODE_LIST; else /* if "sender" or anything else */ mode = REPLY_MODE_SENDER; em_utils_reply_to_message(folder, camel_url_get_param(url, "uid"), NULL, mode, NULL); } else if (forward) { GPtrArray *uids; const char* uid; uid = camel_url_get_param(url, "uid"); if (uid == NULL) g_warning("Could not forward the message. UID is NULL."); else { uids = g_ptr_array_new(); g_ptr_array_add(uids, g_strdup(uid)); if (!strcmp(forward, "attached")) em_utils_forward_attached(folder, uids, uri); else if (!strcmp(forward, "inline")) em_utils_forward_inline(folder, uids, uri); else if (!strcmp(forward, "quoted")) em_utils_forward_quoted(folder, uids, uri); else { /* Just the default forward */ em_utils_forward_messages(folder, uids, uri); } } } else { emmb = (EMMessageBrowser *)em_message_browser_window_new(); /*message_list_set_threaded(((EMFolderView *)emmb)->list, emfv->list->threaded);*/ /* FIXME: session needs to be passed easier than this */ em_format_set_session((EMFormat *)((EMFolderView *)emmb)->preview, session); em_folder_view_set_folder((EMFolderView *)emmb, folder, uri); em_folder_view_set_message((EMFolderView *)emmb, camel_url_get_param(url, "uid"), FALSE); gtk_widget_show(emmb->window); } } else { g_warning("Couldn't open folder '%s'", uri); } camel_url_free(url); }