2007-10-10 [colin] 3.0.2cvs53
[claws.git] / src / textview.c
index a4871fa05cbf9433b38645088c75903312fb9f71..3cad0d6fc606ea0af6d869248d192dd4b02137ea 100644 (file)
@@ -1921,8 +1921,14 @@ static void textview_save_contact_pic(TextView *textview)
        filename = addrindex_get_picture_file(msginfo->from);
        if (!filename)
                return;
-       if (!is_file_exist(filename))
+       if (!is_file_exist(filename)) {
                gdk_pixbuf_save(picture, filename, "png", &error, NULL);
+               if (error) {
+                       g_warning(_("Failed to save image: \n%s"),
+                                       error->message);
+                       g_error_free(error);
+               }
+       }
        g_free(filename);
 }
 
@@ -1971,9 +1977,10 @@ static void textview_show_contact_pic(TextView *textview)
        }
        g_free(filename);
 
-       if (picture)
+       if (picture) {
                textview->image = gtk_image_new_from_pixbuf(picture);
-
+               g_object_unref(picture);
+       }
        g_return_if_fail(textview->image != NULL);
 
        gtk_widget_show(textview->image);
@@ -2905,27 +2912,36 @@ static void add_uri_to_addrbook_cb (TextView *textview, guint action, void *data
                                           "menu_button");
        GtkWidget *image = NULL;
        GdkPixbuf *picture = NULL;
-
+       gboolean use_picture = FALSE;
        if (uri == NULL)
                return;
 
        /* extract url */
        fromaddress = g_strdup(uri->uri + 7);
-       /* Hiroyuki: please put this function in utils.c! */
+       
+       if (textview->messageview->msginfo &&
+          !strcmp2(fromaddress, textview->messageview->msginfo->from))
+               use_picture = TRUE;
+
        fromname = procheader_get_fromname(fromaddress);
        extract_address(fromaddress);
 
-       if (textview->messageview->msginfo &&
+       if (use_picture && 
+           textview->messageview->msginfo &&
            textview->messageview->msginfo->extradata &&
            textview->messageview->msginfo->extradata->face) {
                image = face_get_from_header(textview->messageview->msginfo->extradata->face);
-       } else if (textview->messageview->msginfo &&
+       }
+#if HAVE_LIBCOMPFACE 
+       else if (use_picture && 
+                textview->messageview->msginfo &&
                 textview->messageview->msginfo->extradata &&
                 textview->messageview->msginfo->extradata->xface) {
                image = xface_get_from_header(textview->messageview->msginfo->extradata->xface,
                                &textview->text->style->white,
                                mainwindow_get_mainwindow()->window->window);   
        }
+#endif
        if (image)
                picture = gtk_image_get_pixbuf(GTK_IMAGE(image));