From 26ca1f2c563d5b4b2f3d3adcf427b8c3db62f4c4 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Wed, 8 May 2013 14:13:06 -0400 Subject: EMailFormatterHeaders cleanups. --- em-format/e-mail-formatter-headers.c | 88 ++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 35 deletions(-) (limited to 'em-format/e-mail-formatter-headers.c') diff --git a/em-format/e-mail-formatter-headers.c b/em-format/e-mail-formatter-headers.c index ab22e1a353..89ac5f677a 100644 --- a/em-format/e-mail-formatter-headers.c +++ b/em-format/e-mail-formatter-headers.c @@ -116,17 +116,29 @@ format_short_headers (EMailFormatter *formatter, is_rtl = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL; if (is_rtl) { - g_string_append_printf ( - buffer, - "%s%s%s %s", - from->len ? "(" : "", from->str, from->len ? ")" : "", - subject ? subject : _("(no subject)")); + g_string_append ( + buffer, ""); + if (from->len > 0) + g_string_append_printf (buffer, "(%s) ", from->str); + g_string_append (buffer, ""); + if (subject != NULL && *subject != '\0') + g_string_append (buffer, subject); + else + g_string_append (buffer, _("(no subject)")); + g_string_append (buffer, ""); + g_string_append (buffer, ""); } else { - g_string_append_printf ( - buffer, - "%s %s%s%s", - subject ? subject : _("(no subject)"), - from->len ? "(" : "", from->str, from->len ? ")" : ""); + g_string_append ( + buffer, ""); + g_string_append (buffer, ""); + if (subject != NULL && *subject != '\0') + g_string_append (buffer, subject); + else + g_string_append (buffer, _("(no subject)")); + g_string_append (buffer, ""); + if (from->len > 0) + g_string_append_printf (buffer, " (%s)", from->str); + g_string_append (buffer, ""); } g_string_append (buffer, ""); @@ -265,7 +277,7 @@ format_full_headers (EMailFormatter *formatter, flags & E_MAIL_FORMATTER_HEADER_FLAG_COLLAPSED ? "none" : "block"); header = ((CamelMimePart *) part)->headers; - while (header) { + while (header != NULL) { if (!g_ascii_strcasecmp (header->name, "Sender")) { struct _camel_header_address *addrs; GString *html; @@ -275,14 +287,15 @@ format_full_headers (EMailFormatter *formatter, html = g_string_new (""); name = e_mail_formatter_format_address ( - formatter, html, addrs, header->name, FALSE, - ~(flags & E_MAIL_FORMATTER_HEADER_FLAG_NOELIPSIZE)); + formatter, html, addrs, header->name, FALSE, + ~(flags & E_MAIL_FORMATTER_HEADER_FLAG_NOELIPSIZE)); header_sender = html->str; camel_header_address_list_clear (&addrs); g_string_free (html, FALSE); g_free (name); + } else if (!g_ascii_strcasecmp (header->name, "From")) { struct _camel_header_address *addrs; GString *html; @@ -292,14 +305,15 @@ format_full_headers (EMailFormatter *formatter, html = g_string_new (""); name = e_mail_formatter_format_address ( - formatter, html, addrs, header->name, FALSE, - !(flags & E_MAIL_FORMATTER_HEADER_FLAG_NOELIPSIZE)); + formatter, html, addrs, header->name, FALSE, + !(flags & E_MAIL_FORMATTER_HEADER_FLAG_NOELIPSIZE)); header_from = html->str; camel_header_address_list_clear (&addrs); g_string_free (html, FALSE); g_free (name); + } else if (!g_ascii_strcasecmp (header->name, "X-Evolution-Mail-From-Delegate")) { mail_from_delegate = TRUE; } @@ -349,7 +363,7 @@ format_full_headers (EMailFormatter *formatter, /* dump selected headers */ if (mode & E_MAIL_FORMATTER_MODE_ALL_HEADERS) { header = ((CamelMimePart *) part)->headers; - while (header) { + while (header != NULL) { e_mail_formatter_format_header ( formatter, buffer, part, header, E_MAIL_FORMATTER_HEADER_FLAG_NOCOLUMNS, charset); @@ -371,7 +385,7 @@ format_full_headers (EMailFormatter *formatter, mailer = !g_ascii_strcasecmp (h->name, "X-Evolution-Mailer"); face = !g_ascii_strcasecmp (h->name, "Face"); - while (header) { + while (header != NULL) { if (e_mail_formatter_get_show_sender_photo (formatter) && !photo_name && !g_ascii_strcasecmp (header->name, "From")) photo_name = header->value; @@ -505,7 +519,9 @@ emfe_headers_format (EMailFormatterExtension *extension, GCancellable *cancellable) { GString *buffer; - gint bg_color; + const GdkRGBA white = { 1.0, 1.0, 1.0, 1.0 }; + const GdkRGBA *body_rgba = &white; + const GdkRGBA *header_rgba; if (g_cancellable_is_cancelled (cancellable)) return FALSE; @@ -515,26 +531,21 @@ emfe_headers_format (EMailFormatterExtension *extension, buffer = g_string_new (""); - if (context->mode == E_MAIL_FORMATTER_MODE_PRINTING) { - GdkRGBA white = { 1.0, 1.0, 1.0, 1.0}; - bg_color = e_rgba_to_value (&white); - } else { - bg_color = e_rgba_to_value ( - e_mail_formatter_get_color ( - formatter, E_MAIL_FORMATTER_COLOR_BODY)); - } + if (context->mode != E_MAIL_FORMATTER_MODE_PRINTING) + body_rgba = e_mail_formatter_get_color ( + formatter, E_MAIL_FORMATTER_COLOR_BODY); + + header_rgba = e_mail_formatter_get_color ( + formatter, E_MAIL_FORMATTER_COLOR_HEADER); g_string_append_printf ( buffer, "
" "\n" "
\n", - bg_color, + e_rgba_to_value (body_rgba), part->id, - e_rgba_to_value ( - e_mail_formatter_get_color ( - formatter, - E_MAIL_FORMATTER_COLOR_HEADER))); + e_rgba_to_value (header_rgba)); if (context->flags & E_MAIL_FORMATTER_HEADER_FLAG_COLLAPSABLE) { g_string_append_printf ( @@ -546,12 +557,19 @@ emfe_headers_format (EMailFormatterExtension *extension, (context->flags & E_MAIL_FORMATTER_HEADER_FLAG_COLLAPSED) ? "plus.png" : "minus.png"); - format_short_headers (formatter, buffer, - (CamelMedium *) part->part, context->flags, cancellable); + format_short_headers ( + formatter, buffer, + CAMEL_MEDIUM (part->part), + context->flags, + cancellable); } - format_full_headers (formatter, buffer, - (CamelMedium *) part->part, context->mode, context->flags, cancellable); + format_full_headers ( + formatter, buffer, + CAMEL_MEDIUM (part->part), + context->mode, + context->flags, + cancellable); g_string_append (buffer, "
"); -- cgit v1.2.3