* Fixed a compilation warning
[modest] / src / modest-formatter.c
index ddbd2e5..8fcbf0d 100644 (file)
 #include "modest-formatter.h"
 #include "modest-text-utils.h"
 #include "modest-tny-platform-factory.h"
+#include <modest-runtime.h>
 
 typedef struct _ModestFormatterPrivate ModestFormatterPrivate;
 struct _ModestFormatterPrivate {
        gchar *content_type;
+       gchar *signature;
 };
 #define MODEST_FORMATTER_GET_PRIVATE(o)  (G_TYPE_INSTANCE_GET_PRIVATE((o), \
                                           MODEST_TYPE_FORMATTER, \
@@ -49,9 +51,7 @@ static GObjectClass *parent_class = NULL;
 
 typedef gchar* FormatterFunc (ModestFormatter *self, const gchar *text, TnyHeader *header);
 
-static TnyMsg *modest_formatter_do (ModestFormatter *self, 
-                                   TnyMimePart *body, 
-                                   TnyHeader *header, 
+static TnyMsg *modest_formatter_do (ModestFormatter *self, TnyMimePart *body,  TnyHeader *header, 
                                    FormatterFunc func);
 
 static gchar*  modest_formatter_wrapper_cite   (ModestFormatter *self, const gchar *text, TnyHeader *header);
@@ -74,26 +74,23 @@ extract_text (ModestFormatter *self, TnyMimePart *body)
        tny_stream_reset (stream);
 
        g_object_unref (G_OBJECT(stream));
-       g_object_unref (G_OBJECT(body));
        
        gtk_text_buffer_get_bounds (buf, &start, &end);
        text = gtk_text_buffer_get_text (buf, &start, &end, FALSE);
-       g_object_unref (buf);
+       g_object_unref (G_OBJECT(buf));
 
        /* Convert to desired content type if needed */
        priv = MODEST_FORMATTER_GET_PRIVATE (self);
 
-       if (strcmp (tny_mime_part_get_content_type (body), priv->content_type)) {
+       if (strcmp (tny_mime_part_get_content_type (body), priv->content_type) == 0) {
                if (!strcmp (priv->content_type, "text/html"))
                        converted_text = modest_text_utils_convert_to_html  (text);
                else
                        converted_text = g_strdup (text);
-/*                     converted_text = modest_text_utils_convert_to_plain (text); */
 
                g_free (text);
                text = converted_text;
        }
-
        return text;
 }
 
@@ -119,25 +116,24 @@ construct_from_text (TnyMimePart *part,
 }
 
 static TnyMsg *
-modest_formatter_do (ModestFormatter *self, 
-                    TnyMimePart *body, 
-                    TnyHeader *header,
-                    FormatterFunc func)
+modest_formatter_do (ModestFormatter *self, TnyMimePart *body, TnyHeader *header, FormatterFunc func)
 {
        TnyMsg *new_msg = NULL;
        gchar *body_text = NULL, *txt = NULL;
        ModestFormatterPrivate *priv;
-       TnyPlatformFactory *fact;
 
        g_return_val_if_fail (self, NULL);
-       g_return_val_if_fail (body, NULL);
        g_return_val_if_fail (header, NULL);
        g_return_val_if_fail (func, NULL);
 
        /* Build new part */
-       fact = modest_tny_platform_factory_get_instance ();
-       new_msg = tny_platform_factory_new_msg (fact);
-       body_text = extract_text (self, body);
+       new_msg = tny_platform_factory_new_msg (modest_runtime_get_platform_factory());
+
+       if (body)
+               body_text = extract_text (self, body);
+       else
+               body_text = g_strdup ("");
+
        txt = (gchar *) func (self, (const gchar*) body_text, header);
        priv = MODEST_FORMATTER_GET_PRIVATE (self);
        construct_from_text (TNY_MIME_PART (new_msg), (const gchar*) txt, priv->content_type);
@@ -177,7 +173,7 @@ modest_formatter_attach (ModestFormatter *self, TnyMimePart *body, TnyHeader *he
        ModestFormatterPrivate *priv;
        TnyPlatformFactory *fact;
 
-       fact = modest_tny_platform_factory_get_instance ();
+       fact = modest_runtime_get_platform_factory ();
        /* Build new part */
        new_msg     = tny_platform_factory_new_msg (fact);
        body_part   = tny_platform_factory_new_mime_part (fact);
@@ -202,7 +198,7 @@ modest_formatter_attach (ModestFormatter *self, TnyMimePart *body, TnyHeader *he
 }
 
 ModestFormatter*
-modest_formatter_new (const gchar *content_type)
+modest_formatter_new (const gchar *content_type, const gchar *signature)
 {
        ModestFormatter *formatter;
        ModestFormatterPrivate *priv;
@@ -210,6 +206,7 @@ modest_formatter_new (const gchar *content_type)
        formatter = g_object_new (MODEST_TYPE_FORMATTER, NULL);
        priv = MODEST_FORMATTER_GET_PRIVATE (formatter);
        priv->content_type = g_strdup (content_type);
+       priv->signature = g_strdup (signature);
 
        return formatter;
 }
@@ -232,6 +229,9 @@ modest_formatter_finalize (GObject *object)
        if (priv->content_type)
                g_free (priv->content_type);
 
+       if (priv->signature)
+               g_free (priv->signature);
+
        (*parent_class->finalize) (object);
 }
 
@@ -283,6 +283,7 @@ modest_formatter_wrapper_cite (ModestFormatter *self, const gchar *text, TnyHead
 
        return modest_text_utils_cite (text, 
                                       priv->content_type, 
+                                      priv->signature,
                                       tny_header_get_from (header), 
                                       tny_header_get_date_sent (header));
 }
@@ -294,6 +295,7 @@ modest_formatter_wrapper_inline (ModestFormatter *self, const gchar *text, TnyHe
 
        return modest_text_utils_inline (text, 
                                         priv->content_type, 
+                                        priv->signature,
                                         tny_header_get_from (header), 
                                         tny_header_get_date_sent (header),
                                         tny_header_get_to (header),
@@ -308,6 +310,7 @@ modest_formatter_wrapper_quote (ModestFormatter *self, const gchar *text, TnyHea
        /* TODO: get 80 from the configuration */
        return modest_text_utils_quote (text, 
                                        priv->content_type, 
+                                       priv->signature,
                                        tny_header_get_from (header), 
                                        tny_header_get_date_sent (header),
                                        80);