aboutsummaryrefslogtreecommitdiffstats
path: root/modules/mail
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2010-04-26 22:42:02 +0800
committerMilan Crha <mcrha@redhat.com>2010-04-26 22:42:02 +0800
commitcd7c20d152dcaa2b92c3e78822b5243a71a94514 (patch)
tree3e0ae9951834a407611d3032d0ff4606e1c54755 /modules/mail
parentbfd1a13f60b3b0bf914ce6d6e92f097c1ee05197 (diff)
downloadgsoc2013-evolution-cd7c20d152dcaa2b92c3e78822b5243a71a94514.tar.gz
gsoc2013-evolution-cd7c20d152dcaa2b92c3e78822b5243a71a94514.tar.zst
gsoc2013-evolution-cd7c20d152dcaa2b92c3e78822b5243a71a94514.zip
Bug #603418 - Custom headers not displayed in message preview
Diffstat (limited to 'modules/mail')
-rw-r--r--modules/mail/e-mail-shell-content.c3
-rw-r--r--modules/mail/em-mailer-prefs.c128
-rw-r--r--modules/mail/em-mailer-prefs.h12
3 files changed, 13 insertions, 130 deletions
diff --git a/modules/mail/e-mail-shell-content.c b/modules/mail/e-mail-shell-content.c
index 7bfced18e8..adda27da49 100644
--- a/modules/mail/e-mail-shell-content.c
+++ b/modules/mail/e-mail-shell-content.c
@@ -39,6 +39,7 @@
#include "message-list.h"
#include "e-mail-reader.h"
+#include "e-mail-reader-utils.h"
#include "e-mail-shell-backend.h"
#include "e-mail-shell-view-actions.h"
@@ -456,6 +457,8 @@ mail_shell_content_constructed (GObject *object)
message_list, "message-selected",
G_CALLBACK (mail_shell_content_message_selected_cb),
shell_content);
+
+ e_mail_reader_connect_headers (reader);
}
static guint32
diff --git a/modules/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c
index 838144695d..4fb910a396 100644
--- a/modules/mail/em-mailer-prefs.c
+++ b/modules/mail/em-mailer-prefs.c
@@ -44,6 +44,7 @@
#include "widgets/misc/e-charset-combo-box.h"
#include "e-mail-label-manager.h"
+#include "e-mail-reader-utils.h"
#include "mail-config.h"
#include "em-folder-selection-button.h"
#include "em-junk.h"
@@ -423,7 +424,7 @@ emmp_save_headers (EMMailerPrefs *prefs)
header_list = NULL;
valid = gtk_tree_model_get_iter_first (GTK_TREE_MODEL (prefs->header_list_store), &iter);
while (valid) {
- struct _EMMailerPrefsHeader h;
+ struct _EMailReaderHeader h;
gboolean enabled;
gchar *xml;
@@ -433,7 +434,7 @@ emmp_save_headers (EMMailerPrefs *prefs)
-1);
h.enabled = enabled;
- if ((xml = em_mailer_prefs_header_to_xml (&h)))
+ if ((xml = e_mail_reader_header_to_xml (&h)))
header_list = g_slist_append (header_list, xml);
valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (prefs->header_list_store), &iter);
@@ -1092,9 +1093,9 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
header_add_list = NULL;
default_header_hash = g_hash_table_new (g_str_hash, g_str_equal);
for (i = 0; i < G_N_ELEMENTS (default_headers); i++) {
- struct _EMMailerPrefsHeader *h;
+ EMailReaderHeader *h;
- h = g_malloc (sizeof (struct _EMMailerPrefsHeader));
+ h = g_malloc (sizeof (EMailReaderHeader));
h->is_default = TRUE;
h->name = g_strdup (default_headers[i]);
h->enabled = strcmp ((gchar *)default_headers[i], "x-evolution-mailer") != 0;
@@ -1106,15 +1107,15 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
header_config_list = gconf_client_get_list (prefs->gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, NULL);
p = header_config_list;
while (p) {
- struct _EMMailerPrefsHeader *h, *def;
+ EMailReaderHeader *h, *def;
gchar *xml = (gchar *) p->data;
- h = em_mailer_prefs_header_from_xml (xml);
+ h = e_mail_reader_header_from_xml (xml);
if (h) {
def = g_hash_table_lookup (default_header_hash, h->name);
if (def) {
def->enabled = h->enabled;
- em_mailer_prefs_header_free (h);
+ e_mail_reader_header_free (h);
} else {
h->is_default = FALSE;
header_add_list = g_slist_append (header_add_list, h);
@@ -1130,7 +1131,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
p = header_add_list;
while (p) {
- struct _EMMailerPrefsHeader *h = (struct _EMMailerPrefsHeader *) p->data;
+ struct _EMailReaderHeader *h = (struct _EMailReaderHeader *) p->data;
const gchar *name;
if (g_ascii_strcasecmp (h->name, EM_FORMAT_HEADER_XMAILER) == 0)
@@ -1146,7 +1147,7 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
HEADER_LIST_HEADER_COLUMN, h->name,
-1);
- em_mailer_prefs_header_free (h);
+ e_mail_reader_header_free (h);
p = p->next;
}
@@ -1234,112 +1235,3 @@ em_mailer_prefs_new (EShell *shell)
return GTK_WIDGET (new);
}
-
-static struct _EMMailerPrefsHeader *
-emmp_header_from_xmldoc (xmlDocPtr doc)
-{
- struct _EMMailerPrefsHeader *h;
- xmlNodePtr root;
- xmlChar *name;
-
- if (doc == NULL)
- return NULL;
-
- root = doc->children;
- if (strcmp ((gchar *)root->name, "header") != 0)
- return NULL;
-
- name = xmlGetProp (root, (const guchar *)"name");
- if (name == NULL)
- return NULL;
-
- h = g_malloc0 (sizeof (struct _EMMailerPrefsHeader));
- h->name = g_strdup ((gchar *)name);
- xmlFree (name);
-
- if (xmlHasProp (root, (const guchar *)"enabled"))
- h->enabled = 1;
- else
- h->enabled = 0;
-
- return h;
-}
-
-/**
- * em_mailer_prefs_header_from_xml
- * @xml: XML configuration data
- *
- * Parses passed XML data, which should be of
- * the format <header name="foo" enabled />, and
- * returns a EMMailerPrefs structure, or NULL if there
- * is an error.
- **/
-struct _EMMailerPrefsHeader *
-em_mailer_prefs_header_from_xml (const gchar *xml)
-{
- struct _EMMailerPrefsHeader *header;
- xmlDocPtr doc;
-
- if (!(doc = xmlParseDoc ((guchar *) xml)))
- return NULL;
-
- header = emmp_header_from_xmldoc (doc);
- xmlFreeDoc (doc);
-
- return header;
-}
-
-/**
- * em_mailer_prefs_header_free
- * @header: header to free
- *
- * Frees the memory associated with the passed header
- * structure.
- */
-void
-em_mailer_prefs_header_free (struct _EMMailerPrefsHeader *header)
-{
- if (header == NULL)
- return;
-
- g_free (header->name);
- g_free (header);
-}
-
-/**
- * em_mailer_prefs_header_to_xml
- * @header: header from which to generate XML
- *
- * Returns the passed header as a XML structure,
- * or NULL on error
- */
-gchar *
-em_mailer_prefs_header_to_xml (struct _EMMailerPrefsHeader *header)
-{
- xmlDocPtr doc;
- xmlNodePtr root;
- xmlChar *xml;
- gchar *out;
- gint size;
-
- g_return_val_if_fail (header != NULL, NULL);
- g_return_val_if_fail (header->name != NULL, NULL);
-
- doc = xmlNewDoc ((const guchar *)"1.0");
-
- root = xmlNewDocNode (doc, NULL, (const guchar *)"header", NULL);
- xmlSetProp (root, (const guchar *)"name", (guchar *)header->name);
- if (header->enabled)
- xmlSetProp (root, (const guchar *)"enabled", NULL);
-
- xmlDocSetRootElement (doc, root);
- xmlDocDumpMemory (doc, &xml, &size);
- xmlFreeDoc (doc);
-
- out = g_malloc (size + 1);
- memcpy (out, xml, size);
- out[size] = '\0';
- xmlFree (xml);
-
- return out;
-}
diff --git a/modules/mail/em-mailer-prefs.h b/modules/mail/em-mailer-prefs.h
index 8ad6ad2f64..db77493416 100644
--- a/modules/mail/em-mailer-prefs.h
+++ b/modules/mail/em-mailer-prefs.h
@@ -50,13 +50,6 @@ G_BEGIN_DECLS
typedef struct _EMMailerPrefs EMMailerPrefs;
typedef struct _EMMailerPrefsClass EMMailerPrefsClass;
-typedef struct _EMMailerPrefsHeader EMMailerPrefsHeader;
-
-struct _EMMailerPrefsHeader {
- gchar *name;
- guint enabled:1;
- guint is_default:1;
-};
struct _EMMailerPrefs {
GtkVBox parent_object;
@@ -120,11 +113,6 @@ GtkWidget * create_combo_text_widget (void);
GtkWidget * em_mailer_prefs_new (EShell *shell);
-EMMailerPrefsHeader *
- em_mailer_prefs_header_from_xml (const gchar *xml);
-gchar * em_mailer_prefs_header_to_xml (EMMailerPrefsHeader *header);
-void em_mailer_prefs_header_free (EMMailerPrefsHeader *header);
-
G_END_DECLS
#endif /* EM_MAILER_PREFS_H */