static gboolean modest_msg_view_search_next (ModestISearchView *self);
static gboolean modest_msg_view_search_next_default (ModestISearchView *self);
/* ModestMsgView implementation */
+static void modest_gtkhtml_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body);
static GtkAdjustment *modest_gtkhtml_msg_view_get_vadjustment (ModestMsgView *self);
static GtkAdjustment *modest_gtkhtml_msg_view_get_hadjustment (ModestMsgView *self);
static void modest_gtkhtml_msg_view_set_vadjustment (ModestMsgView *self, GtkAdjustment *vadj);
static void modest_gtkhtml_msg_view_remove_attachment (ModestMsgView *view, TnyMimePart *attachment);
static void modest_gtkhtml_msg_view_request_fetch_images (ModestMsgView *view);
static gboolean modest_gtkhtml_msg_view_has_blocked_external_images (ModestMsgView *view);
+static void modest_gtkhtml_msg_view_set_msg_with_other_body_default (ModestMsgView *view, TnyMsg *msg, TnyMimePart *part);
static GtkAdjustment *modest_gtkhtml_msg_view_get_vadjustment_default (ModestMsgView *self);
static GtkAdjustment *modest_gtkhtml_msg_view_get_hadjustment_default (ModestMsgView *self);
static void modest_gtkhtml_msg_view_set_vadjustment_default (ModestMsgView *self, GtkAdjustment *vadj);
/* internal api */
static void set_header (ModestGtkhtmlMsgView *self, TnyHeader *header);
static TnyMsg *get_message (ModestGtkhtmlMsgView *self);
-static void set_message (ModestGtkhtmlMsgView *self, TnyMsg *tny_msg);
+static void set_message (ModestGtkhtmlMsgView *self, TnyMsg *tny_msg, TnyMimePart *other_body);
static gboolean is_empty (ModestGtkhtmlMsgView *self);
static void set_zoom (ModestGtkhtmlMsgView *self, gdouble zoom);
static gdouble get_zoom (ModestGtkhtmlMsgView *self);
klass->zoom_plus_func = modest_msg_view_zoom_plus_default;
klass->search_func = modest_msg_view_search_default;
klass->search_next_func = modest_msg_view_search_next_default;
+ klass->set_msg_with_other_body_func = modest_gtkhtml_msg_view_set_msg_with_other_body_default;
klass->get_vadjustment_func = modest_gtkhtml_msg_view_get_vadjustment_default;
klass->get_hadjustment_func = modest_gtkhtml_msg_view_get_hadjustment_default;
klass->set_vadjustment_func = modest_gtkhtml_msg_view_set_vadjustment_default;
}
static void
-set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg)
+set_message (ModestGtkhtmlMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
{
TnyMimePart *body;
ModestGtkhtmlMsgViewPrivate *priv;
tny_header_view_set_header (TNY_HEADER_VIEW (priv->mail_header_view), header);
g_object_unref (header);
- modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW(priv->attachments_view),
- msg);
+ modest_attachments_view_set_message (MODEST_ATTACHMENTS_VIEW (priv->attachments_view),
+ other_body?NULL:msg);
modest_mime_part_view_set_view_images (MODEST_MIME_PART_VIEW (priv->body_view), tny_msg_get_allow_external_images (msg));
- body = modest_tny_msg_find_body_part (msg, TRUE);
+ if (other_body) {
+ body = other_body;
+ g_object_ref (body);
+ } else {
+ body = modest_tny_msg_find_body_part (msg, TRUE);
+ }
if (body) {
ModestAttachmentsView *widget;
g_return_if_fail (self);
if (header == NULL) {
- set_message (self, NULL);
+ set_message (self, NULL, NULL);
return;
}
static void
modest_msg_view_clear_header_default (TnyHeaderView *self)
{
- set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL);
+ set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL, NULL);
}
/* TNY MSG IMPLEMENTATION */
static void
modest_msg_view_clear_default (TnyMsgView *self)
{
- set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL);
+ set_message (MODEST_GTKHTML_MSG_VIEW (self), NULL, NULL);
}
static TnyMimePartView*
{
g_return_if_fail ((part == NULL) || TNY_IS_MSG (part));
- set_message (MODEST_GTKHTML_MSG_VIEW (self), TNY_MSG (part));
+ set_message (MODEST_GTKHTML_MSG_VIEW (self), TNY_MSG (part), NULL);
}
static void
{
ModestMsgViewIface *klass = (ModestMsgViewIface *)g;
+ klass->set_msg_with_other_body_func = modest_gtkhtml_msg_view_set_msg_with_other_body;
klass->get_vadjustment_func = modest_gtkhtml_msg_view_get_vadjustment;
klass->get_hadjustment_func = modest_gtkhtml_msg_view_get_hadjustment;
klass->set_vadjustment_func = modest_gtkhtml_msg_view_set_vadjustment;
return;
}
+static void
+modest_gtkhtml_msg_view_set_msg_with_other_body (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+ MODEST_GTKHTML_MSG_VIEW_GET_CLASS (self)->set_msg_with_other_body_func (self, msg, other_body);
+}
+
+static void
+modest_gtkhtml_msg_view_set_msg_with_other_body_default (ModestMsgView *self, TnyMsg *msg, TnyMimePart *other_body)
+{
+ set_message (MODEST_GTKHTML_MSG_VIEW (self), msg, other_body);
+}
+
static GtkAdjustment*
modest_gtkhtml_msg_view_get_vadjustment (ModestMsgView *self)
{