aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog4
-rw-r--r--mail/em-format-html.c30
2 files changed, 31 insertions, 3 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 81a63cccc9..28424ef1b7 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,5 +1,9 @@
2004-03-31 Jeffrey Stedfast <fejj@ximian.com>
+ * em-format-html.c (efh_text_plain): Only do citation colouring if
+ the user has specified to do so and use the user's specified
+ colour when appropriate. Fixes bug #56290.
+
* em-subscribe-editor.c (em_subscribe_editor_new): Save/restore
the subscribe dialog's window size. Fixes bug #56230.
diff --git a/mail/em-format-html.c b/mail/em-format-html.c
index 9dbf044262..b6806e07fe 100644
--- a/mail/em-format-html.c
+++ b/mail/em-format-html.c
@@ -31,6 +31,8 @@
#include <fcntl.h>
#include <ctype.h>
+#include <gconf/gconf-client.h>
+
#include <gal/util/e-iconv.h>
#include <gal/util/e-util.h> /* for e_utf8_strftime, what about e_time_format_time? */
#include "e-util/e-time-utils.h"
@@ -627,9 +629,10 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
CamelDataWrapper *dw;
CamelContentType *type;
const char *format;
- guint32 rgb = 0x737373, flags;
+ guint32 rgb, flags;
int i, count, len;
-
+ GConfClient *gconf;
+
camel_stream_printf (stream,
"<table bgcolor=\"#%06x\" cellspacing=0 cellpadding=1 width=100%%><tr><td>\n"
"<table bgcolor=\"#%06x\" cellspacing=0 cellpadding=0 width=100%%><tr><td>\n"
@@ -684,7 +687,28 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
camel_object_unref(inline_filter);
camel_content_type_unref(ct);
}
-
+
+ gconf = gconf_client_get_default ();
+ if (gconf_client_get_bool (gconf, "/apps/evolution/mail/display/mark_citations", NULL)) {
+ GError *err = NULL;
+ GdkColor colour;
+ char *str;
+
+ str = gconf_client_get_string (gconf, "/apps/evolution/mail/display/citation_colour", &err);
+ if (err == NULL) {
+ gdk_color_parse (str, &colour);
+ rgb = ((colour.red & 0xff00) << 8) | (colour.green & 0xff00) | ((colour.blue & 0xff00) >> 8);
+ } else {
+ /* default colour */
+ g_error_free (err);
+ rgb = 0x737373;
+ }
+ g_free (str);
+ } else {
+ rgb = 0;
+ }
+ g_object_unref (gconf);
+
filtered_stream = camel_stream_filter_new_with_stream(stream);
html_filter = camel_mime_filter_tohtml_new(flags, rgb);
camel_stream_filter_add(filtered_stream, html_filter);