aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook')
-rw-r--r--addressbook/backend/ebook/e-card.c42
-rw-r--r--addressbook/backend/ebook/e-card.h3
2 files changed, 45 insertions, 0 deletions
diff --git a/addressbook/backend/ebook/e-card.c b/addressbook/backend/ebook/e-card.c
index c2ab80a734..e18dc681ec 100644
--- a/addressbook/backend/ebook/e-card.c
+++ b/addressbook/backend/ebook/e-card.c
@@ -28,6 +28,7 @@
#define XEV_PILOT_ID "X-EVOLUTION-PILOTID"
#define XEV_PILOT_STATUS "X-EVOLUTION-PILOTSTATUS"
+#define XEV_WANTS_HTML "X-MOZILLA-HTML"
#define XEV_ARBITRARY "X-EVOLUTION-ARBITRARY"
/* Object argument IDs */
@@ -57,6 +58,8 @@ enum {
ARG_NOTE,
ARG_CATEGORIES,
ARG_CATEGORY_LIST,
+ ARG_WANTS_HTML,
+ ARG_WANTS_HTML_SET,
ARG_PILOTID,
ARG_PILOTSTATUS,
ARG_ARBITRARY,
@@ -101,6 +104,7 @@ static void parse_mailer(ECard *card, VObject *object);
static void parse_fburl(ECard *card, VObject *object);
static void parse_note(ECard *card, VObject *object);
static void parse_categories(ECard *card, VObject *object);
+static void parse_wants_html(ECard *card, VObject *object);
static void parse_pilot_id(ECard *card, VObject *object);
static void parse_pilot_status(ECard *card, VObject *object);
static void parse_arbitrary(ECard *card, VObject *object);
@@ -140,6 +144,7 @@ struct {
{ "FBURL", parse_fburl },
{ VCNoteProp, parse_note },
{ "CATEGORIES", parse_categories },
+ { XEV_WANTS_HTML, parse_wants_html },
{ XEV_PILOT_ID, parse_pilot_id },
{ XEV_PILOT_STATUS, parse_pilot_status },
{ XEV_ARBITRARY, parse_arbitrary },
@@ -435,6 +440,10 @@ char
g_free(string);
}
+ if (card->wants_html_set) {
+ addPropValue (vobj, XEV_WANTS_HTML, card->wants_html ? "TRUE" : "FALSE");
+ }
+
if (card->pilot_id) {
gchar *pilotid_str;
pilotid_str = g_strdup_printf ("%d", card->pilot_id);
@@ -840,6 +849,23 @@ parse_categories(ECard *card, VObject *vobj)
}
static void
+parse_wants_html(ECard *card, VObject *vobj)
+{
+ if ( vObjectValueType (vobj) ) {
+ char *str = fakeCString (vObjectUStringZValue (vobj));
+ if (!strcasecmp(str, "true")) {
+ card->wants_html = TRUE;
+ card->wants_html_set = TRUE;
+ }
+ if (!strcasecmp(str, "false")) {
+ card->wants_html = FALSE;
+ card->wants_html_set = TRUE;
+ }
+ free(str);
+ }
+}
+
+static void
parse_pilot_id(ECard *card, VObject *vobj)
{
if ( vObjectValueType (vobj) ) {
@@ -1012,6 +1038,10 @@ e_card_class_init (ECardClass *klass)
GTK_TYPE_STRING, GTK_ARG_READWRITE, ARG_CATEGORIES);
gtk_object_add_arg_type ("ECard::category_list",
GTK_TYPE_OBJECT, GTK_ARG_READWRITE, ARG_CATEGORY_LIST);
+ gtk_object_add_arg_type ("ECard::wants_html",
+ GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_WANTS_HTML);
+ gtk_object_add_arg_type ("ECard::wants_html_set",
+ GTK_TYPE_BOOL, GTK_ARG_READABLE, ARG_WANTS_HTML);
gtk_object_add_arg_type ("ECard::pilot_id",
GTK_TYPE_INT, GTK_ARG_READWRITE, ARG_PILOTID);
gtk_object_add_arg_type ("ECard::pilot_status",
@@ -1474,6 +1504,10 @@ e_card_set_arg (GtkObject *object, GtkArg *arg, guint arg_id)
g_free (card->note);
card->note = g_strdup(GTK_VALUE_STRING(*arg));
break;
+ case ARG_WANTS_HTML:
+ card->wants_html = GTK_VALUE_BOOL(*arg);
+ card->wants_html_set = TRUE;
+ break;
case ARG_PILOTID:
card->pilot_id = GTK_VALUE_INT(*arg);
break;
@@ -1614,6 +1648,12 @@ e_card_get_arg (GtkObject *object, GtkArg *arg, guint arg_id)
case ARG_NOTE:
GTK_VALUE_STRING(*arg) = card->note;
break;
+ case ARG_WANTS_HTML:
+ GTK_VALUE_BOOL(*arg) = card->wants_html;
+ break;
+ case ARG_WANTS_HTML_SET:
+ GTK_VALUE_BOOL(*arg) = card->wants_html_set;
+ break;
case ARG_PILOTID:
GTK_VALUE_INT(*arg) = card->pilot_id;
break;
@@ -1669,6 +1709,8 @@ e_card_init (ECard *card)
card->fburl = NULL;
card->note = NULL;
card->categories = NULL;
+ card->wants_html = FALSE;
+ card->wants_html_set = FALSE;
card->pilot_id = 0;
card->pilot_status = 0;
card->arbitrary = NULL;
diff --git a/addressbook/backend/ebook/e-card.h b/addressbook/backend/ebook/e-card.h
index 4a6935419d..42c77a0911 100644
--- a/addressbook/backend/ebook/e-card.h
+++ b/addressbook/backend/ebook/e-card.h
@@ -71,6 +71,9 @@ struct _ECard {
EList *arbitrary; /* Arbitrary fields. */
+ guint32 wants_html : 1; /* Wants html mail. */
+ guint32 wants_html_set : 1; /* Wants html mail. */
+
guint32 pilot_id; /* id of the corresponding pilot */
guint32 pilot_status; /* status information */
#if 0