diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-02-08 07:55:13 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-02-08 07:55:13 +0000 |
commit | eefe7863dac9cc8046e369d14dfa0224495613ea (patch) | |
tree | d558d35059a2cadde2869b1b313698a9eee46213 /src/textview.c | |
parent | bef4be6edbe3e5748ce6075a2ca65546e16a6d19 (diff) |
implemented inline image display.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@97 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/textview.c')
-rw-r--r-- | src/textview.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/textview.c b/src/textview.c index a7af0d01..b66d875a 100644 --- a/src/textview.c +++ b/src/textview.c @@ -195,7 +195,8 @@ TextView *textview_create(void) scrolledwin = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin), - GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolledwin), GTK_SHADOW_IN); gtk_widget_set_size_request @@ -541,6 +542,35 @@ static void textview_add_part(TextView *textview, MimeInfo *mimeinfo, FILE *fp) if (mimeinfo->mime_type != MIME_TEXT && mimeinfo->mime_type != MIME_TEXT_HTML) { gtk_text_buffer_insert(buffer, &iter, buf, -1); + if (mimeinfo->mime_type == MIME_IMAGE && + prefs_common.inline_image) { + GdkPixbuf *pixbuf; + GError *error = NULL; + gchar *filename; + + filename = procmime_get_tmp_file_name(mimeinfo); + if (procmime_get_part_fp(filename, fp, mimeinfo) < 0) { + g_warning("Can't get the image file."); + g_free(filename); + return; + } + + pixbuf = gdk_pixbuf_new_from_file(filename, &error); + g_free(filename); + if (error != NULL) { + g_warning("%s\n", error->message); + g_error_free(error); + } + if (!pixbuf) { + g_warning("Can't load the image."); + return; + } + + gtk_text_buffer_insert_pixbuf(buffer, &iter, pixbuf); + gtk_text_buffer_insert(buffer, &iter, "\n", 1); + + g_object_unref(G_OBJECT(pixbuf)); + } } else { if (!mimeinfo->main && mimeinfo->parent && |