diff options
-rw-r--r-- | composer/ChangeLog | 6 | ||||
-rw-r--r-- | composer/e-msg-composer-attachment-bar.c | 31 |
2 files changed, 24 insertions, 13 deletions
diff --git a/composer/ChangeLog b/composer/ChangeLog index a3f7f8933b..e771a2e03a 100644 --- a/composer/ChangeLog +++ b/composer/ChangeLog @@ -1,3 +1,9 @@ +2001-05-28 Jeffrey Stedfast <fejj@ximian.com> + + * e-msg-composer-attachment-bar.c (update): Use + e_utf8_to_gtk_string() on the description of the attachment since + camel stores these as utf-8 strings. + 2001-05-28 Jason Leach <jleach@ximian.com> * Makefile.am (INCLUDES): srcdir != builddir fix. diff --git a/composer/e-msg-composer-attachment-bar.c b/composer/e-msg-composer-attachment-bar.c index 10d711a384..b039a1f7a8 100644 --- a/composer/e-msg-composer-attachment-bar.c +++ b/composer/e-msg-composer-attachment-bar.c @@ -44,6 +44,8 @@ #include "e-icon-list.h" +#include <gal/widgets/e-unicode.h> + #include "camel/camel-data-wrapper.h" #include "camel/camel-stream-fs.h" #include "camel/camel-stream-mem.h" @@ -242,11 +244,11 @@ update (EMsgComposerAttachmentBar *bar) /* FIXME could be faster, but we don't care. */ for (p = priv->attachments; p != NULL; p = p->next) { EMsgComposerAttachment *attachment; - const gchar *desc; gchar *size_string, *label; CamelContentType *content_type; GdkPixbuf *pixbuf; gboolean image; + char *desc; attachment = p->data; content_type = camel_mime_part_get_content_type (attachment->body); @@ -261,14 +263,14 @@ update (EMsgComposerAttachmentBar *bar) gboolean error = TRUE; char tmp[4096]; int t; - + wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (attachment->body)); mstream = camel_stream_mem_new (); - + camel_data_wrapper_write_to_stream (wrapper, mstream); - + camel_stream_reset (mstream); - + /* Stream image into pixbuf loader */ loader = gdk_pixbuf_loader_new (); do { @@ -287,7 +289,7 @@ update (EMsgComposerAttachmentBar *bar) } } while (!camel_stream_eos (mstream)); - + if (!error) { int ratio, width, height; @@ -318,18 +320,20 @@ update (EMsgComposerAttachmentBar *bar) g_warning ("GdkPixbufLoader Error"); image = FALSE; } - + /* Destroy everything */ gdk_pixbuf_loader_close (loader); gtk_object_destroy (GTK_OBJECT (loader)); camel_stream_close (mstream); } - desc = camel_mime_part_get_description (attachment->body); + desc = e_utf8_to_gtk_string (GTK_WIDGET (icon_list), camel_mime_part_get_description (attachment->body)); if (!desc || *desc == '\0') - desc = camel_mime_part_get_filename (attachment->body); + desc = e_utf8_to_gtk_string (GTK_WIDGET (icon_list), + camel_mime_part_get_filename (attachment->body)); + if (!desc) - desc = _("attachment"); + desc = g_strdup (_("attachment")); if (attachment->size) { size_string = size_to_string (attachment->size); @@ -337,12 +341,12 @@ update (EMsgComposerAttachmentBar *bar) g_free (size_string); } else label = g_strdup (desc); - + if (image) { e_icon_list_append_pixbuf (icon_list, attachment->pixbuf_cache, NULL, label); } else { char *mime_type; - + mime_type = header_content_type_simple (content_type); pixbuf = pixbuf_for_mime_type (mime_type); g_free (mime_type); @@ -351,7 +355,8 @@ update (EMsgComposerAttachmentBar *bar) if (pixbuf) gdk_pixbuf_unref (pixbuf); } - + + g_free (desc); g_free (label); } |