aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-05-09 02:13:06 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-05-09 11:32:55 +0800
commit185602415247daf860c22ffcdf42a0bf695c7b39 (patch)
tree70d2cd5c5a6ab4a6ae5878d173f9f0bee7204ba6
parent50bc7daf00d7e886e0566f794d1aaabf0c3d9f91 (diff)
downloadgsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar.gz
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar.bz2
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar.lz
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar.xz
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.tar.zst
gsoc2013-evolution-185602415247daf860c22ffcdf42a0bf695c7b39.zip
EMailFormatterHeaders cleanups.
(cherry picked from commit 26ca1f2c563d5b4b2f3d3adcf427b8c3db62f4c4) Conflicts: em-format/e-mail-formatter-headers.c em-format/e-mail-formatter.h
-rw-r--r--em-format/e-mail-formatter-headers.c88
-rw-r--r--em-format/e-mail-formatter.h10
2 files changed, 58 insertions, 40 deletions
diff --git a/em-format/e-mail-formatter-headers.c b/em-format/e-mail-formatter-headers.c
index ef86c21fc5..6dfa03423b 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,
- "<tr><td width=\"100%%\" align=\"right\">%s%s%s <strong>%s</strong></td></tr>",
- from->len ? "(" : "", from->str, from->len ? ")" : "",
- subject ? subject : _("(no subject)"));
+ g_string_append (
+ buffer, "<tr><td width=\"100%%\" align=\"right\">");
+ if (from->len > 0)
+ g_string_append_printf (buffer, "(%s) ", from->str);
+ g_string_append (buffer, "<strong>");
+ if (subject != NULL && *subject != '\0')
+ g_string_append (buffer, subject);
+ else
+ g_string_append (buffer, _("(no subject)"));
+ g_string_append (buffer, "</strong>");
+ g_string_append (buffer, "</td></tr>");
} else {
- g_string_append_printf (
- buffer,
- "<tr><td><strong>%s</strong> %s%s%s</td></tr>",
- subject ? subject : _("(no subject)"),
- from->len ? "(" : "", from->str, from->len ? ")" : "");
+ g_string_append (
+ buffer, "<tr><td width=\"100%%\" align=\"left\">");
+ g_string_append (buffer, "<strong>");
+ if (subject != NULL && *subject != '\0')
+ g_string_append (buffer, subject);
+ else
+ g_string_append (buffer, _("(no subject)"));
+ g_string_append (buffer, "</strong>");
+ if (from->len > 0)
+ g_string_append_printf (buffer, " (%s)", from->str);
+ g_string_append (buffer, "</td></tr>");
}
g_string_append (buffer, "</table>");
@@ -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 GdkColor white = { 0, G_MAXUINT16, G_MAXUINT16, G_MAXUINT16 };
+ const GdkColor *body_color = &white;
+ const GdkColor *header_color;
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) {
- GdkColor white = { 0, G_MAXUINT16, G_MAXUINT16, G_MAXUINT16 };
- bg_color = e_color_to_value (&white);
- } else {
- bg_color = e_color_to_value ((GdkColor *)
- e_mail_formatter_get_color (
- formatter, E_MAIL_FORMATTER_COLOR_BODY));
- }
+ if (context->mode != E_MAIL_FORMATTER_MODE_PRINTING)
+ body_color = e_mail_formatter_get_color (
+ formatter, E_MAIL_FORMATTER_COLOR_BODY);
+
+ header_color = e_mail_formatter_get_color (
+ formatter, E_MAIL_FORMATTER_COLOR_HEADER);
g_string_append_printf (
buffer,
"<div class=\"headers\" style=\"background: #%06x;\" id=\"%s\">"
"<table border=\"0\" width=\"100%%\" style=\"color: #%06x;\">\n"
"<tr><td valign=\"top\" width=\"16\">\n",
- bg_color,
+ e_color_to_value ((GdkColor *) body_color),
part->id,
- e_color_to_value ((GdkColor *)
- e_mail_formatter_get_color (
- formatter,
- E_MAIL_FORMATTER_COLOR_HEADER)));
+ e_color_to_value ((GdkColor *) header_color));
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, "</td></tr></table></div>");
diff --git a/em-format/e-mail-formatter.h b/em-format/e-mail-formatter.h
index 93e5268950..2d58b9ed14 100644
--- a/em-format/e-mail-formatter.h
+++ b/em-format/e-mail-formatter.h
@@ -204,11 +204,11 @@ void e_mail_formatter_set_show_sender_photo
(EMailFormatter *formatter,
gboolean show_sender_photo);
-gboolean e_mail_formatter_get_animate_images
- (EMailFormatter *formatter);
-void e_mail_formatter_set_animate_images
- (EMailFormatter *formatter,
- gboolean animate_images);
+gboolean e_mail_formatter_get_animate_images
+ (EMailFormatter *formatter);
+void e_mail_formatter_set_animate_images
+ (EMailFormatter *formatter,
+ gboolean animate_images);
gboolean e_mail_formatter_get_show_real_date
(EMailFormatter *formatter);