X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-attachment-view.c;h=7c7cae449b1c4c422466b0dd4d8cf2fc82e739ed;hb=0421c05aa3cba22219aae2a2ead2fd8bbefa88d3;hp=b36e7fcd8487da7af6c00d1b58ad4ac9123fe80a;hpb=20f40360ad626eb860e7d106e5dcfd43a59d21d4;p=modest diff --git a/src/widgets/modest-attachment-view.c b/src/widgets/modest-attachment-view.c index b36e7fc..7c7cae4 100644 --- a/src/widgets/modest-attachment-view.c +++ b/src/widgets/modest-attachment-view.c @@ -38,7 +38,6 @@ #include #include #include -#include #include #include #include @@ -128,17 +127,15 @@ get_mime_part_size_thread (gpointer thr_user_data) { ModestAttachmentView *view = (ModestAttachmentView *) thr_user_data; ModestAttachmentViewPrivate *priv = MODEST_ATTACHMENT_VIEW_GET_PRIVATE (view); - TnyStream *stream; gsize total = 0; gssize result = 0; - stream = modest_count_stream_new(); - result = tny_mime_part_decode_to_stream (priv->mime_part, stream, NULL); - total = modest_count_stream_get_count(MODEST_COUNT_STREAM (stream)); + result = tny_mime_part_decode_to_stream (priv->mime_part, priv->get_size_stream, NULL); + total = modest_count_stream_get_count(MODEST_COUNT_STREAM (priv->get_size_stream)); if (total == 0) { - modest_count_stream_reset_count(MODEST_COUNT_STREAM (stream)); - result = tny_mime_part_write_to_stream (priv->mime_part, stream, NULL); - total = modest_count_stream_get_count(MODEST_COUNT_STREAM (stream)); + modest_count_stream_reset_count(MODEST_COUNT_STREAM (priv->get_size_stream)); + result = tny_mime_part_write_to_stream (priv->mime_part, priv->get_size_stream, NULL); + total = modest_count_stream_get_count(MODEST_COUNT_STREAM (priv->get_size_stream)); } /* if there was an error, don't set the size (this is pretty uncommon) */ @@ -148,8 +145,6 @@ get_mime_part_size_thread (gpointer thr_user_data) priv->size = (guint64)total; g_idle_add (idle_get_mime_part_size_cb, g_object_ref (view)); } - - g_object_unref (stream); g_object_unref (view); return NULL; @@ -252,7 +247,9 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim if (TNY_IS_MSG (mime_part)) { TnyHeader *header = tny_msg_get_header (TNY_MSG (mime_part)); if (TNY_IS_HEADER (header)) { - filename = g_strdup (tny_header_get_subject (header)); + filename = g_strdup (tny_mime_part_get_filename (mime_part)); + if (!filename) + filename = tny_header_dup_subject (header); if (filename == NULL || filename[0] == '\0') filename = g_strdup (_("mail_va_no_subject")); if (priv->is_purged) @@ -296,8 +293,9 @@ modest_attachment_view_set_part_default (TnyMimePartView *self, TnyMimePart *mim gtk_label_set_text (GTK_LABEL (priv->size_view), ""); if (show_size && priv->detect_size) { - tny_camel_mem_stream_get_type (); g_object_ref (self); + if (!priv->get_size_stream) + priv->get_size_stream = modest_count_stream_new (); g_thread_create (get_mime_part_size_thread, self, FALSE, NULL); } @@ -321,10 +319,8 @@ modest_attachment_view_clear_default (TnyMimePartView *self) priv->mime_part = NULL; } - if (priv->get_size_stream != NULL) { - g_object_unref (priv->get_size_stream); - priv->get_size_stream = NULL; - } + if (priv->get_size_stream) + modest_count_stream_reset_count(MODEST_COUNT_STREAM (priv->get_size_stream)); priv->size = 0; @@ -480,9 +476,9 @@ tny_mime_part_view_init (gpointer g, gpointer iface_data) { TnyMimePartViewIface *klass = (TnyMimePartViewIface *)g; - klass->get_part_func = modest_attachment_view_get_part; - klass->set_part_func = modest_attachment_view_set_part; - klass->clear_func = modest_attachment_view_clear; + klass->get_part = modest_attachment_view_get_part; + klass->set_part = modest_attachment_view_set_part; + klass->clear = modest_attachment_view_clear; return; }