X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-ui-actions.c;h=523d26016225511fa502bcea8d43a05c4e07051f;hb=fc3bc62ab94ccdeb864ceefd9023ae4ad0f10e6f;hp=95591bbcc8439553094ed3847cc39ea2235cedb8;hpb=1f3a82ebdfcc5388c31e9068a40a987c4a87cfb3;p=modest diff --git a/src/modest-ui-actions.c b/src/modest-ui-actions.c index 95591bb..523d260 100644 --- a/src/modest-ui-actions.c +++ b/src/modest-ui-actions.c @@ -827,8 +827,7 @@ modest_ui_actions_compose_msg(ModestWindow *win, TnyMsg *msg = NULL; TnyAccount *account = NULL; TnyFolder *folder = NULL; - gchar *from_str = NULL, *signature = NULL, *body = NULL; - gchar *recipient = NULL; + gchar *from_str = NULL, *signature = NULL, *body = NULL, *recipient = NULL, *tmp = NULL; gboolean use_signature = FALSE; ModestWindow *msg_win = NULL; ModestAccountMgr *mgr = modest_runtime_get_account_mgr(); @@ -897,34 +896,17 @@ modest_ui_actions_compose_msg(ModestWindow *win, goto cleanup; } + recipient = modest_text_utils_get_email_address (from_str); - signature = modest_account_mgr_get_signature_from_recipient (mgr, recipient, &use_signature); + tmp = modest_account_mgr_get_signature_from_recipient (modest_runtime_get_account_mgr (), + recipient, + &use_signature); + signature = modest_text_utils_create_colored_signature (tmp); + g_free (tmp); g_free (recipient); - if (body_str != NULL) { - body = use_signature ? g_strconcat(body_str, "\n", - MODEST_TEXT_UTILS_SIGNATURE_MARKER, - "\n", signature, NULL) : g_strdup(body_str); - } else { - - gchar *gray_color_markup = NULL, *color_begin = NULL, *color_end = NULL; - GdkColor color; - - if (win && gtk_style_lookup_color (gtk_widget_get_style ((GtkWidget *) win), - "SecondaryTextColor", &color)) - gray_color_markup = modest_text_utils_get_color_string (&color); - if (!gray_color_markup) - gray_color_markup = g_strdup ("#babababababa"); - color_begin = g_strdup_printf ("", gray_color_markup); - color_end = ""; - - body = use_signature ? g_strconcat("
\n", color_begin, - MODEST_TEXT_UTILS_SIGNATURE_MARKER, "
\n", - signature, color_end, NULL) : g_strdup(""); - - g_free (gray_color_markup); - g_free (color_begin); - } + body = use_signature ? g_strconcat ((body_str) ? body_str : "", signature, NULL) : + g_strdup(body_str); msg = modest_tny_msg_new_html_plain (to_str, from_str, cc_str, bcc_str, subject_str, NULL, NULL, body, NULL, NULL, NULL, NULL, NULL); @@ -1792,9 +1774,8 @@ reply_forward_cb (ModestMailOperation *mail_op, gchar *from = NULL; TnyAccount *account = NULL; ModestWindowMgr *mgr = NULL; - gchar *signature = NULL; + gchar *signature = NULL, *recipient = NULL; gboolean use_signature; - gchar *recipient; /* If there was any error. The mail operation could be NULL, this means that we already have the message downloaded and @@ -1805,9 +1786,10 @@ reply_forward_cb (ModestMailOperation *mail_op, from = modest_account_mgr_get_from_string (modest_runtime_get_account_mgr(), rf_helper->account_name, rf_helper->mailbox); + recipient = modest_text_utils_get_email_address (from); - signature = modest_account_mgr_get_signature_from_recipient (modest_runtime_get_account_mgr(), - recipient, + signature = modest_account_mgr_get_signature_from_recipient (modest_runtime_get_account_mgr (), + recipient, &use_signature); g_free (recipient); @@ -2233,6 +2215,68 @@ reply_forward (ReplyForwardAction action, ModestWindow *win) } void +modest_ui_actions_reply_calendar (ModestWindow *win, TnyMsg *msg, TnyList *header_pairs) +{ + gchar *from; + gchar *recipient; + gchar *signature; + gboolean use_signature; + TnyMsg *new_msg; + GtkWidget *msg_win; + gdouble parent_zoom; + const gchar *account_name; + const gchar *mailbox; + TnyHeader *msg_header; + ModestWindowMgr *mgr; + + g_return_if_fail (MODEST_IS_MSG_VIEW_WINDOW(win)); + + /* we check for low-mem; in that case, show a warning, and don't allow + * reply/forward (because it could potentially require a lot of memory */ + if (modest_platform_check_memory_low (MODEST_WINDOW(win), TRUE)) + return; + + account_name = modest_window_get_active_account (MODEST_WINDOW (win)); + mailbox = modest_window_get_active_mailbox (MODEST_WINDOW (win)); + from = modest_account_mgr_get_from_string (modest_runtime_get_account_mgr(), + account_name, mailbox); + recipient = modest_text_utils_get_email_address (from); + signature = modest_account_mgr_get_signature_from_recipient (modest_runtime_get_account_mgr(), + recipient, + &use_signature); + g_free (recipient); + + msg_header = tny_msg_get_header (msg); + new_msg = + modest_tny_msg_create_reply_calendar_msg (msg, msg_header, from, + (use_signature) ? signature : NULL, + header_pairs); + g_object_unref (msg_header); + + g_free (from); + g_free (signature); + + if (!new_msg) { + g_warning ("%s: failed to create message\n", __FUNCTION__); + goto cleanup; + } + + msg_win = (GtkWidget *) modest_msg_edit_window_new (new_msg, account_name, mailbox, FALSE); + mgr = modest_runtime_get_window_mgr (); + modest_window_mgr_register_window (mgr, MODEST_WINDOW (msg_win), (ModestWindow *) win); + + parent_zoom = modest_window_get_zoom (MODEST_WINDOW (win)); + modest_window_set_zoom (MODEST_WINDOW (msg_win), parent_zoom); + + /* Show edit window */ + gtk_widget_show_all (GTK_WIDGET (msg_win)); + +cleanup: + if (new_msg) + g_object_unref (G_OBJECT (new_msg)); +} + +void modest_ui_actions_on_reply (GtkAction *action, ModestWindow *win) { g_return_if_fail (MODEST_IS_WINDOW(win));