* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <string.h>
#include <tny-header.h>
+#include <tny-gtk-text-buffer-stream.h>
+#include <tny-camel-stream.h>
+#include <camel/camel-stream-mem.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 {
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 = modest_text_utils_convert_to_plain (text); */
+ else
+ converted_text = g_strdup (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;
+ g_return_val_if_fail (self, NULL);
+ g_return_val_if_fail (header, NULL);
+ g_return_val_if_fail (func, NULL);
+
/* Build new part */
- new_msg = TNY_MSG (tny_camel_msg_new ());
- 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 *
modest_formatter_cite (ModestFormatter *self, TnyMimePart *body, TnyHeader *header)
{
- modest_formatter_do (self, body, header, modest_formatter_wrapper_cite);
+ return modest_formatter_do (self, body, header, modest_formatter_wrapper_cite);
}
TnyMsg *
modest_formatter_quote (ModestFormatter *self, TnyMimePart *body, TnyHeader *header)
{
- modest_formatter_do (self, body, header, modest_formatter_wrapper_quote);
+ return modest_formatter_do (self, body, header, modest_formatter_wrapper_quote);
}
TnyMsg *
modest_formatter_inline (ModestFormatter *self, TnyMimePart *body, TnyHeader *header)
{
- modest_formatter_do (self, body, header, modest_formatter_wrapper_inline);
+ return modest_formatter_do (self, body, header, modest_formatter_wrapper_inline);
}
TnyMsg *
{
TnyMsg *new_msg = NULL;
gchar *attach_text = NULL;
+ const gchar *subject;
TnyMimePart *body_part = NULL, *attach_part = NULL;
ModestFormatterPrivate *priv;
+ TnyPlatformFactory *fact;
+ fact = modest_runtime_get_platform_factory ();
/* Build new part */
- new_msg = TNY_MSG (tny_camel_msg_new ());
- body_part = TNY_MIME_PART (tny_camel_mime_part_new (camel_mime_part_new()));
- attach_part = TNY_MIME_PART (tny_camel_mime_part_new (camel_mime_part_new()));
+ new_msg = tny_platform_factory_new_msg (fact);
+ body_part = tny_platform_factory_new_mime_part (fact);
+ attach_part = tny_platform_factory_new_mime_part (fact);
/* Create the two parts */
priv = MODEST_FORMATTER_GET_PRIVATE (self);
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);
parent_class = g_type_class_peek_parent (class);
object_class = (GObjectClass*) class;
-
+ object_class->finalize = modest_formatter_finalize;
+
g_type_class_add_private (object_class, sizeof (ModestFormatterPrivate));
}