* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <glib/gi18n.h>
#include <string.h>
#include <tny-header.h>
#include <tny-gtk-text-buffer-stream.h>
#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, \
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);
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;
}
}
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;
+ 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);
{
TnyMsg *new_msg = NULL;
gchar *attach_text = NULL;
+ const gchar *subject;
TnyMimePart *body_part = NULL, *attach_part = NULL;
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);
attach_text = extract_text (self, body);
construct_from_text (body_part, "", priv->content_type);
construct_from_text (attach_part, (const gchar*) attach_text, priv->content_type);
- tny_mime_part_set_filename (attach_part, tny_header_get_subject (header));
+ subject = tny_header_get_subject (header);
+ tny_mime_part_set_filename (attach_part, subject ? subject : _("No subject"));
/* Add parts */
tny_mime_part_add_part (TNY_MIME_PART (new_msg), body_part);
}
ModestFormatter*
-modest_formatter_new (const gchar *content_type)
+modest_formatter_new (const gchar *content_type, const gchar *signature)
{
ModestFormatter *formatter;
ModestFormatterPrivate *priv;
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;
}
if (priv->content_type)
g_free (priv->content_type);
+ if (priv->signature)
+ g_free (priv->signature);
+
(*parent_class->finalize) (object);
}
return modest_text_utils_cite (text,
priv->content_type,
+ priv->signature,
tny_header_get_from (header),
tny_header_get_date_sent (header));
}
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),
/* 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);