gossip r2768 - in trunk: . libgossip src



Author: mr
Date: Wed Mar 12 18:40:14 2008
New Revision: 2768
URL: http://svn.gnome.org/viewvc/gossip?rev=2768&view=rev

Log:
Fix showing avatars in the add contact dialog


Modified:
   trunk/ChangeLog
   trunk/libgossip/gossip-avatar.c
   trunk/src/gossip-add-contact-dialog.c

Modified: trunk/libgossip/gossip-avatar.c
==============================================================================
--- trunk/libgossip/gossip-avatar.c	(original)
+++ trunk/libgossip/gossip-avatar.c	Wed Mar 12 18:40:14 2008
@@ -164,10 +164,10 @@
 	GdkPixbuf        *ret_pixbuf;
 	GdkPixbufLoader	 *loader;
 	GError           *error = NULL;
-	int               orig_width;
-	int               orig_height;
-	int               scale_width;
-	int               scale_height;
+	gint              orig_width;
+	gint              orig_height;
+	gint              scale_width;
+	gint              scale_height;
 
 	if (!avatar) {
 		return NULL;
@@ -188,25 +188,26 @@
 	tmp_pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
 	scale_width = orig_width = gdk_pixbuf_get_width (tmp_pixbuf);
 	scale_height = orig_height = gdk_pixbuf_get_height (tmp_pixbuf);
-	if(scale_height > scale_width) {
-		scale_width = (gdouble) size * (double)scale_width / (double)scale_height;
+
+	if (scale_height > scale_width) {
+		scale_width = (gdouble) size * (gdouble) scale_width / (gdouble) scale_height;
 		scale_height = size;
 	} else {
-		scale_height = (gdouble) size * (double)scale_height / (double)scale_width;
+		scale_height = (gdouble) size * (gdouble) scale_height / (gdouble) scale_width;
 		scale_width = size;
 	}
 
-	ret_pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, 32, 32);
+	ret_pixbuf = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, size, size);
 	gdk_pixbuf_fill (ret_pixbuf, 0x00000000);
 	gdk_pixbuf_scale (tmp_pixbuf, ret_pixbuf, 
-			  (size - scale_width)/2,
-			  (size - scale_height)/2,
+			  (size - scale_width) / 2,
+			  (size - scale_height) / 2,
 			  scale_width, 
 			  scale_height, 
-			  (size - scale_width)/2, 
-			  (size - scale_height)/2, 
-			  (double)scale_width/(double)orig_width, 
-			  (double)scale_height/(double)orig_height,
+			  (size - scale_width) / 2, 
+			  (size - scale_height) / 2, 
+			  (gdouble) scale_width / (gdouble) orig_width, 
+			  (gdouble) scale_height / (gdouble) orig_height,
 			  GDK_INTERP_BILINEAR);
 
 	if (avatar_pixbuf_is_opaque (ret_pixbuf)) {

Modified: trunk/src/gossip-add-contact-dialog.c
==============================================================================
--- trunk/src/gossip-add-contact-dialog.c	(original)
+++ trunk/src/gossip-add-contact-dialog.c	Wed Mar 12 18:40:14 2008
@@ -115,7 +115,8 @@
 	if (result != GOSSIP_RESULT_OK || 
 	    (!gossip_vcard_get_name (vcard) &&
 	     !gossip_vcard_get_email (vcard) &&
-	     !gossip_vcard_get_country (vcard))) {
+	     !gossip_vcard_get_country (vcard) &&
+	     !gossip_vcard_get_avatar (vcard))) {
 		gchar *str;
 
 		str = g_strdup_printf ("<i>%s</i>",
@@ -125,8 +126,9 @@
 
 	    	gtk_widget_show (dialog->label_information);
 	} else {
-		GdkPixbuf   *pixbuf;
-		const gchar *value;
+		GossipAvatar *avatar;
+		GdkPixbuf    *pixbuf;
+		const gchar  *value;
 
 		gtk_widget_hide (dialog->label_information);
 
@@ -156,7 +158,8 @@
 		}
 		
 		/* Avatar */
-		pixbuf = gossip_avatar_create_pixbuf_with_size (gossip_vcard_get_avatar (vcard), 48);
+		avatar = gossip_vcard_get_avatar (vcard);
+		pixbuf = gossip_avatar_create_pixbuf_with_size (avatar, 48);
 		if (pixbuf != NULL) {
 			gossip_avatar_image_set_pixbuf (GOSSIP_AVATAR_IMAGE (dialog->avatar_image), 
 							pixbuf);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]