X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-attachment-view.c;h=12bb23c43ee557a3e6fba31e113aaba4214a5b55;hb=06e1cfff284e0df5f036b202680587fb5110e1be;hp=483c35e95539bd6aab73110983fe6386140a5e16;hpb=17d7865c512d65aca2b12dc0a980c3309742319a;p=modest diff --git a/src/widgets/modest-attachment-view.c b/src/widgets/modest-attachment-view.c index 483c35e..12bb23c 100644 --- a/src/widgets/modest-attachment-view.c +++ b/src/widgets/modest-attachment-view.c @@ -38,6 +38,7 @@ #include #include #include +#include static GObjectClass *parent_class = NULL; @@ -56,6 +57,7 @@ struct _ModestAttachmentViewPriv guint64 size; PangoLayout *layout_full_filename; + gboolean is_purged; }; @@ -136,7 +138,13 @@ get_size_idle_func (gpointer data) gchar *size_string; if (priv->get_size_stream == NULL) { - priv->get_size_stream = tny_mime_part_get_stream (priv->mime_part); + priv->get_size_stream = tny_camel_mem_stream_new (); + tny_mime_part_decode_to_stream (priv->mime_part, priv->get_size_stream); + tny_stream_reset (priv->get_size_stream); + if (tny_stream_is_eos (priv->get_size_stream)) { + tny_stream_close (priv->get_size_stream); + priv->get_size_stream = tny_mime_part_get_stream (priv->mime_part); + } } readed_size = tny_stream_read (priv->get_size_stream, read_buffer, GET_SIZE_BUFFER_SIZE); @@ -168,7 +176,7 @@ static void modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mime_part) { ModestAttachmentViewPriv *priv = NULL; - const gchar *filename = NULL; + gchar *filename = NULL; gchar *file_icon_name = NULL; gboolean show_size = FALSE; @@ -193,21 +201,24 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim } priv->size = 0; + priv->is_purged = tny_mime_part_is_purged (mime_part); - if (tny_mime_part_is_purged (mime_part)) { - filename = _("TODO: purged file"); + if (priv->is_purged) { + filename = g_strdup( tny_mime_part_get_filename (mime_part)); + if (filename == NULL) + filename = g_strdup (""); file_icon_name = modest_platform_get_file_icon_name (NULL, NULL, NULL); } else if (TNY_IS_MSG (mime_part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (mime_part)); if (TNY_IS_HEADER (header)) { - filename = tny_header_get_subject (header); + filename = g_strdup (tny_header_get_subject (header)); if (filename == NULL) - filename = _("mail_va_no_subject"); + filename = g_strdup (_("mail_va_no_subject")); file_icon_name = modest_platform_get_file_icon_name (NULL, tny_mime_part_get_content_type (mime_part), NULL); g_object_unref (header); } } else { - filename = tny_mime_part_get_filename (mime_part); + filename = g_strdup (tny_mime_part_get_filename (mime_part)); file_icon_name = modest_platform_get_file_icon_name (filename, tny_mime_part_get_content_type (mime_part), NULL); @@ -221,7 +232,16 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim gtk_image_set_from_icon_name (GTK_IMAGE (priv->icon), UNKNOWN_FILE_ICON, GTK_ICON_SIZE_MENU); } - gtk_label_set_text (GTK_LABEL (priv->filename_view), filename); + if (priv->is_purged) { + gchar * label_str = g_markup_printf_escaped( + "%s", + filename); + gtk_label_set_markup (GTK_LABEL (priv->filename_view), label_str); + g_free (label_str); + } else { + gtk_label_set_text (GTK_LABEL (priv->filename_view), filename); + } + g_free (filename); update_filename_request (MODEST_ATTACHMENT_VIEW (self)); gtk_label_set_text (GTK_LABEL (priv->size_view), "");