diff options
author | Matthew Barnes <mbarnes@src.gnome.org> | 2008-12-18 10:04:27 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@src.gnome.org> | 2008-12-18 10:04:27 +0800 |
commit | da75a8ebebe61c6f36c961f63f47f4a446502eed (patch) | |
tree | 4defe366fbb631ba6215a00182a540bd0b95e295 | |
parent | d05caaf34695a99fba53f0ec59b23568e8746454 (diff) | |
download | gsoc2013-evolution-da75a8ebebe61c6f36c961f63f47f4a446502eed.tar.gz gsoc2013-evolution-da75a8ebebe61c6f36c961f63f47f4a446502eed.tar.zst gsoc2013-evolution-da75a8ebebe61c6f36c961f63f47f4a446502eed.zip |
Implement more mail actions. Slowly phasing out EMFolderView.
svn path=/branches/kill-bonobo/; revision=36914
-rw-r--r-- | mail/e-mail-shell-content.c | 38 | ||||
-rw-r--r-- | mail/e-mail-shell-content.h | 6 | ||||
-rw-r--r-- | mail/e-mail-shell-view-actions.c | 456 | ||||
-rw-r--r-- | mail/e-mail-shell-view-private.h | 2 | ||||
-rw-r--r-- | mail/em-folder-view.c | 649 | ||||
-rw-r--r-- | mail/em-folder-view.h | 1 | ||||
-rw-r--r-- | ui/evolution-mail.ui | 3 |
7 files changed, 759 insertions, 396 deletions
diff --git a/mail/e-mail-shell-content.c b/mail/e-mail-shell-content.c index 7ab8dbbcd2..025b49c18a 100644 --- a/mail/e-mail-shell-content.c +++ b/mail/e-mail-shell-content.c @@ -29,7 +29,6 @@ #include "widgets/menus/gal-view-instance.h" #include "em-folder-view.h" -#include "em-format-html-display.h" #include "em-search-context.h" #include "em-utils.h" #include "mail-config.h" @@ -196,11 +195,10 @@ mail_shell_content_constructed (GObject *object) container = widget; - widget = em_folder_view_new (); - gtk_paned_add1 (GTK_PANED (container), ((EMFolderView *) widget)->list); - gtk_widget_show (((EMFolderView *) widget)->list); - /*gtk_paned_add1 (GTK_PANED (container), widget);*/ - priv->folder_view = g_object_ref (widget); + /* XXX Kill EMFolderView? */ + priv->folder_view = em_folder_view_new (); + widget = GTK_WIDGET (((EMFolderView *) priv->folder_view)->list); + gtk_paned_add1 (GTK_PANED (container), widget); gtk_widget_show (widget); widget = gtk_scrolled_window_new (NULL, NULL); @@ -214,9 +212,11 @@ mail_shell_content_constructed (GObject *object) container = widget; + /* XXX Kill EMFolderView? */ priv->preview = ((EMFolderView *) priv->folder_view)->preview; - gtk_container_add (GTK_CONTAINER (container), ((EMFormatHTML *) priv->preview)->html); - gtk_widget_show (((EMFormatHTML *) priv->preview)->html); + widget = GTK_WIDGET (((EMFormatHTML *) priv->preview)->html); + gtk_container_add (GTK_CONTAINER (container), widget); + gtk_widget_show (widget); /* Load the view instance. */ @@ -343,6 +343,15 @@ e_mail_shell_content_get_folder_view (EMailShellContent *mail_shell_content) return EM_FOLDER_VIEW (mail_shell_content->priv->folder_view); } +EMFormatHTMLDisplay * +e_mail_shell_content_get_preview_format (EMailShellContent *mail_shell_content) +{ + g_return_val_if_fail ( + E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL); + + return mail_shell_content->priv->preview; +} + gboolean e_mail_shell_content_get_preview_visible (EMailShellContent *mail_shell_content) { @@ -377,6 +386,19 @@ e_mail_shell_content_set_preview_visible (EMailShellContent *mail_shell_content, g_object_notify (G_OBJECT (mail_shell_content), "preview-visible"); } +GtkWidget * +e_mail_shell_content_get_preview_widget (EMailShellContent *mail_shell_content) +{ + EMFormatHTML *format; + + g_return_val_if_fail ( + E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL); + + format = (EMFormatHTML *) mail_shell_content->priv->preview; + + return GTK_WIDGET (format->html); +} + gboolean e_mail_shell_content_get_vertical_view (EMailShellContent *mail_shell_content) { diff --git a/mail/e-mail-shell-content.h b/mail/e-mail-shell-content.h index a15dd0309b..a804919c2d 100644 --- a/mail/e-mail-shell-content.h +++ b/mail/e-mail-shell-content.h @@ -26,6 +26,7 @@ #include <shell/e-shell-view.h> #include "em-folder-view.h" +#include "em-format-html-display.h" /* Standard GObject macros */ #define E_TYPE_MAIL_SHELL_CONTENT \ @@ -87,11 +88,16 @@ GType e_mail_shell_content_get_type (void); GtkWidget * e_mail_shell_content_new (EShellView *shell_view); EMFolderView * e_mail_shell_content_get_folder_view (EMailShellContent *mail_shell_content); +EMFormatHTMLDisplay * + e_mail_shell_content_get_preview_format + (EMailShellContent *mail_shell_content); gboolean e_mail_shell_content_get_preview_visible (EMailShellContent *mail_shell_content); void e_mail_shell_content_set_preview_visible (EMailShellContent *mail_shell_content, gboolean preview_visible); +GtkWidget * e_mail_shell_content_get_preview_widget + (EMailShellContent *mail_shell_content); gboolean e_mail_shell_content_get_vertical_view (EMailShellContent *mail_shell_content); void e_mail_shell_content_set_vertical_view diff --git a/mail/e-mail-shell-view-actions.c b/mail/e-mail-shell-view-actions.c index 42c8070298..6195dce936 100644 --- a/mail/e-mail-shell-view-actions.c +++ b/mail/e-mail-shell-view-actions.c @@ -26,10 +26,40 @@ static gchar *default_xfer_messages_uri; static void action_mail_add_sender_cb (GtkAction *action, - EMailShellView *mail_shell_view) + EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + CamelMessageInfo *info; + GPtrArray *uids; + const gchar *address; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + uids = message_list_get_selected (folder_view->list); + + if (uids->len != 1) + goto exit; + + info = camel_folder_get_message_info ( + folder_view->folder, uids->pdata[0]); + if (info == NULL) + goto exit; + + address = camel_message_info_from (info); + if (address == NULL || *address == '\0') + goto exit; + + em_utils_add_address (GTK_WIDGET (shell_window), address); + +exit: + em_utils_uids_free (uids); } static void @@ -44,16 +74,29 @@ static void action_mail_check_for_junk_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + GPtrArray *uids; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + uids = message_list_get_selected (folder_view->list); + + mail_filter_junk (folder_view->folder, uids); } static void action_mail_clipboard_copy_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + GtkWidget *preview; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + preview = e_mail_shell_content_get_preview_widget (mail_shell_content); + + gtk_html_copy (GTK_HTML (preview)); } static void @@ -146,8 +189,13 @@ static void action_mail_empty_trash_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EShellWindow *shell_window; + EShellView *shell_view; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + em_utils_empty_trash (GTK_WIDGET (shell_window)); } static void @@ -186,8 +234,16 @@ static void action_mail_filters_apply_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + GPtrArray *uids; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + uids = message_list_get_selected (folder_view->list); + + mail_filter_on_demand (folder_view->folder, uids); } static void @@ -330,32 +386,100 @@ static void action_mail_forward_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + uids = message_list_get_selected (folder_view->list); + + em_utils_forward_messages ( + folder_view->folder, uids, folder_view->folder_uri); } static void action_mail_forward_attached_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + uids = message_list_get_selected (folder_view->list); + + em_utils_forward_attached ( + folder_view->folder, uids, folder_view->folder_uri); } static void action_mail_forward_inline_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + uids = message_list_get_selected (folder_view->list); + + em_utils_forward_inline ( + folder_view->folder, uids, folder_view->folder_uri); } static void action_mail_forward_quoted_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + uids = message_list_get_selected (folder_view->list); + + em_utils_forward_quoted ( + folder_view->folder, uids, folder_view->folder_uri); } static void @@ -386,8 +510,13 @@ static void action_mail_load_images_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFormatHTMLDisplay *format; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + format = e_mail_shell_content_get_preview_format (mail_shell_content); + + em_format_html_load_http ((EMFormatHTML *) format); } static void @@ -508,16 +637,45 @@ static void action_mail_message_edit_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + uids = message_list_get_selected (folder_view->list); + + em_utils_edit_messages (folder_view->folder, uids, FALSE); } static void action_mail_message_new_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + em_utils_compose_new_message (folder_view->folder_uri); } static void @@ -602,32 +760,70 @@ static void action_mail_next_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_NEXT; + flags = 0; + mask = 0; + + message_list_select (folder_view->list, direction, flags, mask); } static void action_mail_next_important_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP; + flags = CAMEL_MESSAGE_FLAGGED; + mask = CAMEL_MESSAGE_FLAGGED; + + message_list_select (folder_view->list, direction, flags, mask); } static void action_mail_next_thread_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + message_list_select_next_thread (folder_view->list); } static void action_mail_next_unread_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_NEXT | MESSAGE_LIST_SELECT_WRAP; + flags = 0; + mask = CAMEL_MESSAGE_SEEN; + + message_list_select (folder_view->list, direction, flags, mask); } static void @@ -648,88 +844,198 @@ static void action_mail_previous_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_PREVIOUS; + flags = 0; + mask = 0; + + message_list_select (folder_view->list, direction, flags, mask); } static void action_mail_previous_important_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP; + flags = CAMEL_MESSAGE_FLAGGED; + mask = CAMEL_MESSAGE_FLAGGED; + + message_list_select (folder_view->list, direction, flags, mask); } static void action_mail_previous_unread_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + MessageListSelectDirection direction; + EMFolderView *folder_view; + guint32 flags, mask; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + direction = MESSAGE_LIST_SELECT_PREVIOUS | MESSAGE_LIST_SELECT_WRAP; + flags = 0; + mask = CAMEL_MESSAGE_SEEN; + + message_list_select (folder_view->list, direction, flags, mask); } static void action_mail_print_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + GtkPrintOperationAction print_action; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + print_action = GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG; + em_folder_view_print (folder_view, print_action); } static void action_mail_print_preview_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + GtkPrintOperationAction print_action; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + print_action = GTK_PRINT_OPERATION_ACTION_PREVIEW; + em_folder_view_print (folder_view, print_action); } static void action_mail_redirect_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (folder_view->list->cursor_uid == NULL) + return; + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + em_utils_redirect_message_by_uid ( + folder_view->folder, folder_view->list->cursor_uid); } static void action_mail_reply_all_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + em_folder_view_message_reply (folder_view, REPLY_MODE_ALL); } static void action_mail_reply_list_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + em_folder_view_message_reply (folder_view, REPLY_MODE_LIST); } static void action_mail_reply_post_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + if (folder_view->list->cursor_uid == NULL) + return; + + if (!em_utils_check_user_can_send_mail (GTK_WIDGET (shell_window))) + return; + + em_utils_post_reply_to_message_by_uid ( + folder_view->folder, folder_view->list->cursor_uid); } static void action_mail_reply_sender_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + em_folder_view_message_reply (folder_view, REPLY_MODE_SENDER); } static void action_mail_save_as_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + EShellWindow *shell_window; + EShellView *shell_view; + GPtrArray *uids; + + shell_view = E_SHELL_VIEW (mail_shell_view); + shell_window = e_shell_view_get_shell_window (shell_view); + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + uids = message_list_get_selected (folder_view->list); + + em_utils_save_messages ( + GTK_WIDGET (shell_window), folder_view->folder, uids); } static void @@ -856,8 +1162,17 @@ static void action_mail_undelete_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFolderView *folder_view; + guint32 mask, set; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + folder_view = e_mail_shell_content_get_folder_view (mail_shell_content); + + mask = CAMEL_MESSAGE_DELETED; + set = 0; + + em_folder_view_mark_selected (folder_view, mask, set); } static void @@ -904,24 +1219,39 @@ static void action_mail_zoom_100_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFormatHTMLDisplay *format; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + format = e_mail_shell_content_get_preview_format (mail_shell_content); + + em_format_html_display_zoom_reset (format); } static void action_mail_zoom_in_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFormatHTMLDisplay *format; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + format = e_mail_shell_content_get_preview_format (mail_shell_content); + + em_format_html_display_zoom_in (format); } static void action_mail_zoom_out_cb (GtkAction *action, EMailShellView *mail_shell_view) { - /* FIXME */ - g_print ("Action: %s\n", gtk_action_get_name (GTK_ACTION (action))); + EMailShellContent *mail_shell_content; + EMFormatHTMLDisplay *format; + + mail_shell_content = mail_shell_view->priv->mail_shell_content; + format = e_mail_shell_content_get_preview_format (mail_shell_content); + + em_format_html_display_zoom_out (format); } static void diff --git a/mail/e-mail-shell-view-private.h b/mail/e-mail-shell-view-private.h index 086c3edd81..db21203cae 100644 --- a/mail/e-mail-shell-view-private.h +++ b/mail/e-mail-shell-view-private.h @@ -25,11 +25,13 @@ #include "e-mail-shell-view.h" #include <glib/gi18n.h> +#include <gtkhtml/gtkhtml.h> #include <camel/camel-vtrash-folder.h> #include "e-util/gconf-bridge.h" #include "widgets/menus/gal-view-instance.h" +#include "em-composer-utils.h" #include "em-folder-selector.h" #include "em-utils.h" #include "mail-ops.h" diff --git a/mail/em-folder-view.c b/mail/em-folder-view.c index e737021eab..1b851eb196 100644 --- a/mail/em-folder-view.c +++ b/mail/em-folder-view.c @@ -126,7 +126,6 @@ static void emfv_set_folder_uri(EMFolderView *emfv, const char *uri); static void emfv_set_message(EMFolderView *emfv, const char *uid, int nomarkseen); static void emfv_activate(EMFolderView *emfv, BonoboUIComponent *uic, int state); -static void emfv_message_reply(EMFolderView *emfv, int mode); static void vfolder_type_current (EMFolderView *emfv, int type); static void filter_type_current (EMFolderView *emfv, int type); @@ -667,51 +666,51 @@ emfv_popup_open(EPopup *ep, EPopupItem *pitem, void *data) em_folder_view_open_selected(emfv); } -static void -emfv_popup_edit (EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids; - - if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) - return; - - uids = message_list_get_selected(emfv->list); - em_utils_edit_messages (emfv->folder, uids, FALSE); -} - -static void -emfv_popup_saveas(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids; - - uids = message_list_get_selected(emfv->list); - em_utils_save_messages((GtkWidget *)emfv, emfv->folder, uids); -} +//static void +//emfv_popup_edit (EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) +// return; +// +// uids = message_list_get_selected(emfv->list); +// em_utils_edit_messages (emfv->folder, uids, FALSE); +//} -static void -emfv_view_load_images(BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; +//static void +//emfv_popup_saveas(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// uids = message_list_get_selected(emfv->list); +// em_utils_save_messages((GtkWidget *)emfv, emfv->folder, uids); +//} - if (emfv->preview) - em_format_html_load_http((EMFormatHTML *)emfv->preview); -} +//static void +//emfv_view_load_images(BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->preview) +// em_format_html_load_http((EMFormatHTML *)emfv->preview); +//} -static void -emfv_popup_print(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG); -} +//static void +//emfv_popup_print(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG); +//} -static void -emfv_popup_copy_text(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - gtk_html_copy (((EMFormatHTML *)emfv->preview)->html); -} +//static void +//emfv_popup_copy_text(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// gtk_html_copy (((EMFormatHTML *)emfv->preview)->html); +//} static void emfv_popup_source(EPopup *ep, EPopupItem *pitem, void *data) @@ -732,50 +731,50 @@ emfv_popup_source(EPopup *ep, EPopupItem *pitem, void *data) message_list_free_uids(emfv->list, uids); } -static void -emfv_mail_compose(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) - return; - - em_utils_compose_new_message(emfv->folder_uri); -} - -static void -emfv_popup_reply_sender(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - emfv_message_reply(emfv, REPLY_MODE_SENDER); -} - -static void -emfv_popup_reply_list(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - emfv_message_reply(emfv, REPLY_MODE_LIST); -} +//static void +//emfv_mail_compose(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) +// return; +// +// em_utils_compose_new_message(emfv->folder_uri); +//} -static void -emfv_popup_reply_all(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - emfv_message_reply(emfv, REPLY_MODE_ALL); -} +//static void +//emfv_popup_reply_sender(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// em_folder_view_message_reply(emfv, REPLY_MODE_SENDER); +//} -static void -emfv_popup_forward(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids; +//static void +//emfv_popup_reply_list(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// em_folder_view_message_reply(emfv, REPLY_MODE_LIST); +//} - if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) - return; +//static void +//emfv_popup_reply_all(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// em_folder_view_message_reply(emfv, REPLY_MODE_ALL); +//} - uids = message_list_get_selected(emfv->list); - em_utils_forward_messages (emfv->folder, uids, emfv->folder_uri); -} +//static void +//emfv_popup_forward(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// if (!em_utils_check_user_can_send_mail((GtkWidget *)emfv)) +// return; +// +// uids = message_list_get_selected(emfv->list); +// em_utils_forward_messages (emfv->folder, uids, emfv->folder_uri); +//} static void emfv_popup_flag_followup(EPopup *ep, EPopupItem *pitem, void *data) @@ -978,12 +977,12 @@ emfv_popup_delete (EPopup *ep, EPopupItem *pitem, void *data) #undef DelInVFolderCheckName #undef DelInVFolderKey -static void -emfv_popup_undelete(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - em_folder_view_mark_selected(emfv, CAMEL_MESSAGE_DELETED, 0); -} +//static void +//emfv_popup_undelete(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// em_folder_view_mark_selected(emfv, CAMEL_MESSAGE_DELETED, 0); +//} //struct _move_data { // EMFolderView *emfv; @@ -1101,40 +1100,40 @@ emfv_popup_label_new (EPopup *ep, EPopupItem *pitem, void *data) } } -static void -emfv_popup_add_sender(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids = message_list_get_selected(emfv->list); - CamelMessageInfo *info; - const char *addr; - - if (uids->len == 1 - && (info = camel_folder_get_message_info(emfv->folder, uids->pdata[0])) != NULL - && (addr = camel_message_info_from(info)) != NULL - && addr[0] != 0) - em_utils_add_address((GtkWidget *)emfv, addr); - - em_utils_uids_free(uids); -} - -static void -emfv_popup_apply_filters(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids = message_list_get_selected(emfv->list); - - mail_filter_on_demand(emfv->folder, uids); -} +//static void +//emfv_popup_add_sender(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids = message_list_get_selected(emfv->list); +// CamelMessageInfo *info; +// const char *addr; +// +// if (uids->len == 1 +// && (info = camel_folder_get_message_info(emfv->folder, uids->pdata[0])) != NULL +// && (addr = camel_message_info_from(info)) != NULL +// && addr[0] != 0) +// em_utils_add_address((GtkWidget *)emfv, addr); +// +// em_utils_uids_free(uids); +//} -static void -emfv_popup_filter_junk(EPopup *ep, EPopupItem *pitem, void *data) -{ - EMFolderView *emfv = data; - GPtrArray *uids = message_list_get_selected(emfv->list); +//static void +//emfv_popup_apply_filters(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids = message_list_get_selected(emfv->list); +// +// mail_filter_on_demand(emfv->folder, uids); +//} - mail_filter_junk(emfv->folder, uids); -} +//static void +//emfv_popup_filter_junk(EPopup *ep, EPopupItem *pitem, void *data) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids = message_list_get_selected(emfv->list); +// +// mail_filter_junk(emfv->folder, uids); +//} /* filter callbacks, this will eventually be a wizard, see filter_type_current/vfolder_type_current for implementation */ @@ -1160,23 +1159,23 @@ EMFV_POPUP_AUTO_TYPE(filter_type_current, emfv_popup_filter_mlist, AUTO_MLIST) /* TODO: Move some of these to be 'standard' menu's */ static EPopupItem emfv_popup_items[] = { - { E_POPUP_ITEM, "00.emfv.00", N_("_Copy"), emfv_popup_copy_text, NULL, "edit-copy", EM_FOLDER_VIEW_SELECT_DISPLAY|EM_FOLDER_VIEW_SELECT_SELECTION }, +// { E_POPUP_ITEM, "00.emfv.00", N_("_Copy"), emfv_popup_copy_text, NULL, "edit-copy", EM_FOLDER_VIEW_SELECT_DISPLAY|EM_FOLDER_VIEW_SELECT_SELECTION }, { E_POPUP_BAR, "10.emfv", NULL, NULL, NULL, NULL }, - { E_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), emfv_popup_reply_sender, NULL, "mail-reply-sender", EM_POPUP_SELECT_ONE }, - { E_POPUP_ITEM, "10.emfv.01", N_("Reply to _All"), emfv_popup_reply_all, NULL, "mail-reply-all", EM_POPUP_SELECT_ONE }, - { E_POPUP_ITEM, "10.emfv.02", N_("_Forward"), emfv_popup_forward, NULL, "mail-forward", EM_POPUP_SELECT_MANY }, +// { E_POPUP_ITEM, "10.emfv.00", N_("_Reply to Sender"), emfv_popup_reply_sender, NULL, "mail-reply-sender", EM_POPUP_SELECT_ONE }, +// { E_POPUP_ITEM, "10.emfv.01", N_("Reply to _All"), emfv_popup_reply_all, NULL, "mail-reply-all", EM_POPUP_SELECT_ONE }, +// { E_POPUP_ITEM, "10.emfv.02", N_("_Forward"), emfv_popup_forward, NULL, "mail-forward", EM_POPUP_SELECT_MANY }, { E_POPUP_BAR, "20.emfv", NULL, NULL, NULL, NULL }, /* EM_POPUP_EDIT was used here. This is changed to EM_POPUP_SELECT_ONE as Edit-as-new-messaeg need not be restricted to Sent-Items folder alone */ - { E_POPUP_ITEM, "20.emfv.00", N_("_Edit as New Message..."), emfv_popup_edit, NULL, NULL, EM_POPUP_SELECT_ONE }, - { E_POPUP_ITEM, "20.emfv.01", N_("_Save As..."), emfv_popup_saveas, NULL, "document-save-as", EM_POPUP_SELECT_MANY }, - { E_POPUP_ITEM, "20.emfv.02", N_("_Print..."), emfv_popup_print, NULL, "document-print", EM_POPUP_SELECT_ONE }, +// { E_POPUP_ITEM, "20.emfv.00", N_("_Edit as New Message..."), emfv_popup_edit, NULL, NULL, EM_POPUP_SELECT_ONE }, +// { E_POPUP_ITEM, "20.emfv.01", N_("_Save As..."), emfv_popup_saveas, NULL, "document-save-as", EM_POPUP_SELECT_MANY }, +// { E_POPUP_ITEM, "20.emfv.02", N_("_Print..."), emfv_popup_print, NULL, "document-print", EM_POPUP_SELECT_ONE }, { E_POPUP_BAR, "40.emfv", NULL, NULL, NULL, NULL }, { E_POPUP_ITEM, "40.emfv.00", N_("_Delete"), emfv_popup_delete, NULL, "edit-delete", EM_POPUP_SELECT_DELETE|EM_FOLDER_VIEW_SELECT_LISTONLY }, - { E_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), emfv_popup_undelete, NULL, NULL, EM_POPUP_SELECT_UNDELETE|EM_FOLDER_VIEW_SELECT_LISTONLY }, +// { E_POPUP_ITEM, "40.emfv.01", N_("U_ndelete"), emfv_popup_undelete, NULL, NULL, EM_POPUP_SELECT_UNDELETE|EM_FOLDER_VIEW_SELECT_LISTONLY }, // { E_POPUP_ITEM, "40.emfv.02", N_("_Move to Folder..."), emfv_popup_move, NULL, "mail-move", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY }, // { E_POPUP_ITEM, "40.emfv.03", N_("_Copy to Folder..."), emfv_popup_copy, NULL, "mail-copy", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_LISTONLY }, @@ -1357,15 +1356,15 @@ from(BonoboUIComponent *uid, void *data, const char *path) \ to(NULL, NULL, data); \ } -EMFV_MAP_CALLBACK(emfv_add_sender_addressbook, emfv_popup_add_sender) -EMFV_MAP_CALLBACK(emfv_message_apply_filters, emfv_popup_apply_filters) -EMFV_MAP_CALLBACK(emfv_message_filter_junk, emfv_popup_filter_junk) +//EMFV_MAP_CALLBACK(emfv_add_sender_addressbook, emfv_popup_add_sender) +//EMFV_MAP_CALLBACK(emfv_message_apply_filters, emfv_popup_apply_filters) +//EMFV_MAP_CALLBACK(emfv_message_filter_junk, emfv_popup_filter_junk) //EMFV_MAP_CALLBACK(emfv_message_copy, emfv_popup_copy) //EMFV_MAP_CALLBACK(emfv_message_move, emfv_popup_move) -EMFV_MAP_CALLBACK(emfv_message_forward, emfv_popup_forward) -EMFV_MAP_CALLBACK(emfv_message_reply_all, emfv_popup_reply_all) -EMFV_MAP_CALLBACK(emfv_message_reply_list, emfv_popup_reply_list) -EMFV_MAP_CALLBACK(emfv_message_reply_sender, emfv_popup_reply_sender) +//EMFV_MAP_CALLBACK(emfv_message_forward, emfv_popup_forward) +//EMFV_MAP_CALLBACK(emfv_message_reply_all, emfv_popup_reply_all) +//EMFV_MAP_CALLBACK(emfv_message_reply_list, emfv_popup_reply_list) +//EMFV_MAP_CALLBACK(emfv_message_reply_sender, emfv_popup_reply_sender) //EMFV_MAP_CALLBACK(emfv_message_mark_read, emfv_popup_mark_read) //EMFV_MAP_CALLBACK(emfv_message_mark_unread, emfv_popup_mark_unread) //EMFV_MAP_CALLBACK(emfv_message_mark_important, emfv_popup_mark_important) @@ -1373,23 +1372,23 @@ EMFV_MAP_CALLBACK(emfv_message_reply_sender, emfv_popup_reply_sender) //EMFV_MAP_CALLBACK(emfv_message_mark_junk, emfv_popup_mark_junk) //EMFV_MAP_CALLBACK(emfv_message_mark_nojunk, emfv_popup_mark_nojunk) EMFV_MAP_CALLBACK(emfv_message_delete, emfv_popup_delete) -EMFV_MAP_CALLBACK(emfv_message_undelete, emfv_popup_undelete) +//EMFV_MAP_CALLBACK(emfv_message_undelete, emfv_popup_undelete) EMFV_MAP_CALLBACK(emfv_message_followup_flag, emfv_popup_flag_followup) EMFV_MAP_CALLBACK(emfv_message_followup_clear, emfv_popup_flag_clear) EMFV_MAP_CALLBACK(emfv_message_followup_completed, emfv_popup_flag_completed) EMFV_MAP_CALLBACK(emfv_message_open, emfv_popup_open) -EMFV_MAP_CALLBACK(emfv_message_edit, emfv_popup_edit) -EMFV_MAP_CALLBACK(emfv_message_saveas, emfv_popup_saveas) -EMFV_MAP_CALLBACK(emfv_print_message, emfv_popup_print) +//EMFV_MAP_CALLBACK(emfv_message_edit, emfv_popup_edit) +//EMFV_MAP_CALLBACK(emfv_message_saveas, emfv_popup_saveas) +//EMFV_MAP_CALLBACK(emfv_print_message, emfv_popup_print) EMFV_MAP_CALLBACK(emfv_message_source, emfv_popup_source) -static void -emfv_empty_trash(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - em_utils_empty_trash (gtk_widget_get_toplevel ((GtkWidget *) emfv)); -} +//static void +//emfv_empty_trash(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// em_utils_empty_trash (gtk_widget_get_toplevel ((GtkWidget *) emfv)); +//} static void prepare_offline(void *key, void *value, void *data) @@ -1451,132 +1450,132 @@ emfv_select_all_text(BonoboUIComponent *uid, void *data, const char *path) } -static void -emfv_mail_next(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - e_profile_event_emit("goto.next", "", 0); - - message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0); -} - -static void -emfv_mail_next_flagged(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED); -} - -static void -emfv_mail_next_unread(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - gtk_widget_grab_focus((GtkWidget *) emfv->list); - message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); -} - -static void -emfv_mail_next_thread(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select_next_thread(emfv->list); -} - -static void -emfv_mail_previous(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, 0); -} - -static void -emfv_mail_previous_flagged(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED); -} - -static void -emfv_mail_previous_unread(BonoboUIComponent *uid, void *data, const char *path) -{ - EMFolderView *emfv = data; - - gtk_widget_grab_focus((GtkWidget *) emfv->list); - message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); -} - -static void -emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; - GPtrArray *uids; - - if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) - return; - - uids = message_list_get_selected (emfv->list); - em_utils_forward_attached (emfv->folder, uids, emfv->folder_uri); -} - -static void -emfv_message_forward_inline (BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; - GPtrArray *uids; - - if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) - return; - - uids = message_list_get_selected (emfv->list); - em_utils_forward_inline (emfv->folder, uids, emfv->folder_uri); -} +//static void +//emfv_mail_next(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// e_profile_event_emit("goto.next", "", 0); +// +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0); +//} -static void -emfv_message_forward_quoted (BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; - GPtrArray *uids; +//static void +//emfv_mail_next_flagged(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED); +//} - if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) - return; +//static void +//emfv_mail_next_unread(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// gtk_widget_grab_focus((GtkWidget *) emfv->list); +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_NEXT|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); +//} - uids = message_list_get_selected (emfv->list); - em_utils_forward_quoted (emfv->folder, uids, emfv->folder_uri); -} +//static void +//emfv_mail_next_thread(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select_next_thread(emfv->list); +//} -static void -emfv_message_redirect (BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; +//static void +//emfv_mail_previous(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, 0); +//} - if (emfv->list->cursor_uid == NULL) - return; +//static void +//emfv_mail_previous_flagged(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, CAMEL_MESSAGE_FLAGGED, CAMEL_MESSAGE_FLAGGED); +//} - if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) - return; +//static void +//emfv_mail_previous_unread(BonoboUIComponent *uid, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// gtk_widget_grab_focus((GtkWidget *) emfv->list); +// message_list_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS|MESSAGE_LIST_SELECT_WRAP, 0, CAMEL_MESSAGE_SEEN); +//} - em_utils_redirect_message_by_uid (emfv->folder, emfv->list->cursor_uid); -} +//static void +//emfv_message_forward_attached (BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) +// return; +// +// uids = message_list_get_selected (emfv->list); +// em_utils_forward_attached (emfv->folder, uids, emfv->folder_uri); +//} -static void -emfv_message_post_reply (BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; +//static void +//emfv_message_forward_inline (BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) +// return; +// +// uids = message_list_get_selected (emfv->list); +// em_utils_forward_inline (emfv->folder, uids, emfv->folder_uri); +//} - if (emfv->list->cursor_uid == NULL) - return; +//static void +//emfv_message_forward_quoted (BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// GPtrArray *uids; +// +// if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) +// return; +// +// uids = message_list_get_selected (emfv->list); +// em_utils_forward_quoted (emfv->folder, uids, emfv->folder_uri); +//} - if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) - return; +//static void +//emfv_message_redirect (BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->list->cursor_uid == NULL) +// return; +// +// if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) +// return; +// +// em_utils_redirect_message_by_uid (emfv->folder, emfv->list->cursor_uid); +//} - em_utils_post_reply_to_message_by_uid (emfv->folder, emfv->list->cursor_uid); -} +//static void +//emfv_message_post_reply (BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->list->cursor_uid == NULL) +// return; +// +// if (!em_utils_check_user_can_send_mail ((GtkWidget *) emfv)) +// return; +// +// em_utils_post_reply_to_message_by_uid (emfv->folder, emfv->list->cursor_uid); +//} static gboolean html_contains_nonwhitespace (const char *html, gint len) @@ -1616,8 +1615,8 @@ html_contains_nonwhitespace (const char *html, gint len) return p - html < len - 1 && c != 0; } -static void -emfv_message_reply(EMFolderView *emfv, int mode) +void +em_folder_view_message_reply(EMFolderView *emfv, int mode) { char *html = NULL; gint len; @@ -1672,40 +1671,40 @@ emfv_message_search(BonoboUIComponent *uic, void *data, const char *path) #endif } -static void -emfv_print_preview_message(BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; - - em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PREVIEW); -} - -static void -emfv_text_zoom_in(BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; - - if (emfv->preview) - em_format_html_display_zoom_in(emfv->preview); -} - -static void -emfv_text_zoom_out(BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; +//static void +//emfv_print_preview_message(BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// em_folder_view_print(emfv, GTK_PRINT_OPERATION_ACTION_PREVIEW); +//} - if (emfv->preview) - em_format_html_display_zoom_out(emfv->preview); -} +//static void +//emfv_text_zoom_in(BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->preview) +// em_format_html_display_zoom_in(emfv->preview); +//} -static void -emfv_text_zoom_reset(BonoboUIComponent *uic, void *data, const char *path) -{ - EMFolderView *emfv = data; +//static void +//emfv_text_zoom_out(BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->preview) +// em_format_html_display_zoom_out(emfv->preview); +//} - if (emfv->preview) - em_format_html_display_zoom_reset(emfv->preview); -} +//static void +//emfv_text_zoom_reset(BonoboUIComponent *uic, void *data, const char *path) +//{ +// EMFolderView *emfv = data; +// +// if (emfv->preview) +// em_format_html_display_zoom_reset(emfv->preview); +//} /* ********************************************************************** */ @@ -1874,7 +1873,7 @@ EMFV_MAP_CALLBACK(emfv_tools_vfolder_mlist, emfv_popup_vfolder_mlist) /* ********************************************************************** */ static BonoboUIVerb emfv_message_verbs[] = { - BONOBO_UI_UNSAFE_VERB ("EmptyTrash", emfv_empty_trash), +// BONOBO_UI_UNSAFE_VERB ("EmptyTrash", emfv_empty_trash), BONOBO_UI_UNSAFE_VERB ("PrepareForOffline", emfv_prepare_offline), BONOBO_UI_UNSAFE_VERB ("EditCut", emfv_edit_cut), BONOBO_UI_UNSAFE_VERB ("EditCopy", emfv_edit_copy), @@ -1882,26 +1881,26 @@ static BonoboUIVerb emfv_message_verbs[] = { BONOBO_UI_UNSAFE_VERB ("SelectAllText", emfv_select_all_text), - BONOBO_UI_UNSAFE_VERB ("MailNext", emfv_mail_next), - BONOBO_UI_UNSAFE_VERB ("MailNextFlagged", emfv_mail_next_flagged), - BONOBO_UI_UNSAFE_VERB ("MailNextUnread", emfv_mail_next_unread), - BONOBO_UI_UNSAFE_VERB ("MailNextThread", emfv_mail_next_thread), - BONOBO_UI_UNSAFE_VERB ("MailPrevious", emfv_mail_previous), - BONOBO_UI_UNSAFE_VERB ("MailPreviousFlagged", emfv_mail_previous_flagged), - BONOBO_UI_UNSAFE_VERB ("MailPreviousUnread", emfv_mail_previous_unread), +// BONOBO_UI_UNSAFE_VERB ("MailNext", emfv_mail_next), +// BONOBO_UI_UNSAFE_VERB ("MailNextFlagged", emfv_mail_next_flagged), +// BONOBO_UI_UNSAFE_VERB ("MailNextUnread", emfv_mail_next_unread), +// BONOBO_UI_UNSAFE_VERB ("MailNextThread", emfv_mail_next_thread), +// BONOBO_UI_UNSAFE_VERB ("MailPrevious", emfv_mail_previous), +// BONOBO_UI_UNSAFE_VERB ("MailPreviousFlagged", emfv_mail_previous_flagged), +// BONOBO_UI_UNSAFE_VERB ("MailPreviousUnread", emfv_mail_previous_unread), - BONOBO_UI_UNSAFE_VERB ("AddSenderToAddressbook", emfv_add_sender_addressbook), +// BONOBO_UI_UNSAFE_VERB ("AddSenderToAddressbook", emfv_add_sender_addressbook), - BONOBO_UI_UNSAFE_VERB ("MessageApplyFilters", emfv_message_apply_filters), - BONOBO_UI_UNSAFE_VERB ("MessageFilterJunk", emfv_message_filter_junk), +// BONOBO_UI_UNSAFE_VERB ("MessageApplyFilters", emfv_message_apply_filters), +// BONOBO_UI_UNSAFE_VERB ("MessageFilterJunk", emfv_message_filter_junk), // BONOBO_UI_UNSAFE_VERB ("MessageCopy", emfv_message_copy), BONOBO_UI_UNSAFE_VERB ("MessageDelete", emfv_message_delete), BONOBO_UI_UNSAFE_VERB ("MessageDeleteKey", emfv_message_delete), - BONOBO_UI_UNSAFE_VERB ("MessageForward", emfv_message_forward), - BONOBO_UI_UNSAFE_VERB ("MessageForwardAttached", emfv_message_forward_attached), - BONOBO_UI_UNSAFE_VERB ("MessageForwardInline", emfv_message_forward_inline), - BONOBO_UI_UNSAFE_VERB ("MessageForwardQuoted", emfv_message_forward_quoted), - BONOBO_UI_UNSAFE_VERB ("MessageRedirect", emfv_message_redirect), +// BONOBO_UI_UNSAFE_VERB ("MessageForward", emfv_message_forward), +// BONOBO_UI_UNSAFE_VERB ("MessageForwardAttached", emfv_message_forward_attached), +// BONOBO_UI_UNSAFE_VERB ("MessageForwardInline", emfv_message_forward_inline), +// BONOBO_UI_UNSAFE_VERB ("MessageForwardQuoted", emfv_message_forward_quoted), +// BONOBO_UI_UNSAFE_VERB ("MessageRedirect", emfv_message_redirect), // BONOBO_UI_UNSAFE_VERB ("MessageMarkAsRead", emfv_message_mark_read), // BONOBO_UI_UNSAFE_VERB ("MessageMarkAsUnRead", emfv_message_mark_unread), // BONOBO_UI_UNSAFE_VERB ("MessageMarkAsImportant", emfv_message_mark_important), @@ -1913,25 +1912,25 @@ static BonoboUIVerb emfv_message_verbs[] = { BONOBO_UI_UNSAFE_VERB ("MessageFollowUpClear", emfv_message_followup_clear), // BONOBO_UI_UNSAFE_VERB ("MessageMove", emfv_message_move), BONOBO_UI_UNSAFE_VERB ("MessageOpen", emfv_message_open), - BONOBO_UI_UNSAFE_VERB ("MessagePostReply", emfv_message_post_reply), - BONOBO_UI_UNSAFE_VERB ("MessageReplyAll", emfv_message_reply_all), - BONOBO_UI_UNSAFE_VERB ("MessageReplyList", emfv_message_reply_list), - BONOBO_UI_UNSAFE_VERB ("MessageReplySender", emfv_message_reply_sender), - BONOBO_UI_UNSAFE_VERB ("MessageEdit", emfv_message_edit), - BONOBO_UI_UNSAFE_VERB ("MessageSaveAs", emfv_message_saveas), +// BONOBO_UI_UNSAFE_VERB ("MessagePostReply", emfv_message_post_reply), +// BONOBO_UI_UNSAFE_VERB ("MessageReplyAll", emfv_message_reply_all), +// BONOBO_UI_UNSAFE_VERB ("MessageReplyList", emfv_message_reply_list), +// BONOBO_UI_UNSAFE_VERB ("MessageReplySender", emfv_message_reply_sender), +// BONOBO_UI_UNSAFE_VERB ("MessageEdit", emfv_message_edit), +// BONOBO_UI_UNSAFE_VERB ("MessageSaveAs", emfv_message_saveas), BONOBO_UI_UNSAFE_VERB ("MessageSearch", emfv_message_search), - BONOBO_UI_UNSAFE_VERB ("MessageUndelete", emfv_message_undelete), +// BONOBO_UI_UNSAFE_VERB ("MessageUndelete", emfv_message_undelete), - BONOBO_UI_UNSAFE_VERB ("PrintMessage", emfv_print_message), - BONOBO_UI_UNSAFE_VERB ("PrintPreviewMessage", emfv_print_preview_message), +// BONOBO_UI_UNSAFE_VERB ("PrintMessage", emfv_print_message), +// BONOBO_UI_UNSAFE_VERB ("PrintPreviewMessage", emfv_print_preview_message), - BONOBO_UI_UNSAFE_VERB ("TextZoomIn", emfv_text_zoom_in), - BONOBO_UI_UNSAFE_VERB ("TextZoomOut", emfv_text_zoom_out), - BONOBO_UI_UNSAFE_VERB ("TextZoomReset", emfv_text_zoom_reset), +// BONOBO_UI_UNSAFE_VERB ("TextZoomIn", emfv_text_zoom_in), +// BONOBO_UI_UNSAFE_VERB ("TextZoomOut", emfv_text_zoom_out), +// BONOBO_UI_UNSAFE_VERB ("TextZoomReset", emfv_text_zoom_reset), BONOBO_UI_UNSAFE_VERB ("ViewSource", emfv_message_source), - BONOBO_UI_UNSAFE_VERB ("MailCompose", emfv_mail_compose), +// BONOBO_UI_UNSAFE_VERB ("MailCompose", emfv_mail_compose), /* TODO: This stuff should just be 1 item that runs a wizard */ BONOBO_UI_UNSAFE_VERB ("ToolsFilterMailingList", emfv_tools_filter_mlist), @@ -1943,7 +1942,7 @@ static BonoboUIVerb emfv_message_verbs[] = { BONOBO_UI_UNSAFE_VERB ("ToolsVFolderSender", emfv_tools_vfolder_sender), BONOBO_UI_UNSAFE_VERB ("ToolsVFolderSubject", emfv_tools_vfolder_subject), - BONOBO_UI_UNSAFE_VERB ("ViewLoadImages", emfv_view_load_images), +// BONOBO_UI_UNSAFE_VERB ("ViewLoadImages", emfv_view_load_images), /* ViewHeaders stuff is a radio */ /* CaretMode is a toggle */ @@ -2446,7 +2445,7 @@ emfv_list_key_press(ETree *tree, int row, ETreePath path, int col, GdkEvent *ev, break; #ifdef HAVE_XFREE case XF86XK_Reply: - emfv_message_reply(emfv, REPLY_MODE_ALL); + em_folder_view_message_reply(emfv, REPLY_MODE_ALL); break; case XF86XK_MailForward: uids = message_list_get_selected(emfv->list); diff --git a/mail/em-folder-view.h b/mail/em-folder-view.h index a42d34ded5..02d6583c0b 100644 --- a/mail/em-folder-view.h +++ b/mail/em-folder-view.h @@ -141,6 +141,7 @@ GtkWidget *em_folder_view_new(void); #define em_folder_view_set_message(emfv, uid, nomarkseen) EM_FOLDER_VIEW_GET_CLASS (emfv)->set_message((emfv), (uid), (nomarkseen)) void em_folder_view_select_next_message(EMFolderView *emfv, int count, gboolean always_can_previous); +void em_folder_view_message_reply(EMFolderView *emfv, int mode); EMPopupTargetSelect *em_folder_view_get_popup_target(EMFolderView *emfv, EMPopup *emp, int on_display); diff --git a/ui/evolution-mail.ui b/ui/evolution-mail.ui index 39c9a50fa5..e54b6a93ca 100644 --- a/ui/evolution-mail.ui +++ b/ui/evolution-mail.ui @@ -1,6 +1,9 @@ <ui> <menubar name='main-menu'> <menu action='file-menu'> + <placeholder name='file-actions'> + <menuitem action='mail-save-as'/> + </placeholder> <placeholder name='print-actions'> <menuitem action='mail-print-preview'/> <menuitem action='mail-print'/> |