evolution r35913 - in trunk/addressbook: . gui/widgets



Author: mcrha
Date: Wed Aug  6 08:30:24 2008
New Revision: 35913
URL: http://svn.gnome.org/viewvc/evolution?rev=35913&view=rev

Log:
2008-08-06  Milan Crha  <mcrha redhat com>

	** Fix for bug #546263

	* gui/widgets/e-minicard.c: (add_field), (add_email_field), (remodel):
	Add 'width' property as the last one for 'new' item, thus it will know
	all the information to properly calculate column widths. Also don't
	set field names for the contact-lists. Both changes prevents messing
	of minicard painting for changed contact-lists.



Modified:
   trunk/addressbook/ChangeLog
   trunk/addressbook/gui/widgets/e-minicard.c

Modified: trunk/addressbook/gui/widgets/e-minicard.c
==============================================================================
--- trunk/addressbook/gui/widgets/e-minicard.c	(original)
+++ trunk/addressbook/gui/widgets/e-minicard.c	Wed Aug  6 08:30:24 2008
@@ -780,21 +780,21 @@
 	new_item = e_minicard_label_new(group);
 
 	if (e_minicard->contact && e_contact_get (e_minicard->contact, E_CONTACT_IS_LIST))
-		gnome_canvas_item_set( new_item,
-				       "width", e_minicard->width - 4.0,
-				       "fieldname", is_rtl ? "" : string,
-			    	       "field", is_rtl ? string : "",
-			 	      "max_field_name_length", left_width,
-			    	   "editable", FALSE /* e_minicard->editable */,
-			    	   NULL );
+		gnome_canvas_item_set (new_item,
+					"fieldname", is_rtl ? "" : string,
+					"field", is_rtl ? string : "",
+					"max_field_name_length", left_width,
+					"editable", FALSE /* e_minicard->editable */,
+					"width", e_minicard->width - 4.0,
+					NULL );
 	else
-		gnome_canvas_item_set( new_item,
-				       "width", e_minicard->width - 4.0,
-				       "fieldname", is_rtl ? string : name,
-			    	   "field", is_rtl ? name : string,
-			 	      "max_field_name_length", left_width,
-			    	   "editable", FALSE /* e_minicard->editable */,
-			    	   NULL );
+		gnome_canvas_item_set (new_item,
+					"fieldname", is_rtl ? string : name,
+					"field", is_rtl ? name : string,
+					"max_field_name_length", left_width,
+					"editable", FALSE /* e_minicard->editable */,
+					"width", e_minicard->width - 4.0,
+					NULL );
 
 
 #ifdef notyet
@@ -831,7 +831,7 @@
 }
 
 static void
-add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, int limit)
+add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, int limit, gboolean is_list)
 {
 	GnomeCanvasItem *new_item;
 	GnomeCanvasGroup *group;
@@ -850,8 +850,13 @@
 		char *parsed_name = NULL;
 		gboolean parser_check;
 
-		tmp = get_email_location ((EVCardAttribute *) l->data);
-		name = g_strdup_printf ("%s:", tmp);
+		/* do not use name for fields in the contact list */
+		if (is_list) {
+			name = (char *)"";
+		} else {
+			tmp = get_email_location ((EVCardAttribute *) l->data);
+			name = g_strdup_printf ("%s:", tmp);
+		}
 
 		parser_check = eab_parse_qp_email ((const gchar *) le->data, &parsed_name, &email);
 		if (parser_check) {
@@ -864,12 +869,12 @@
 
 		new_item = e_minicard_label_new(group);
 
-		gnome_canvas_item_set( new_item,
-				       "width", e_minicard->width - 4.0,
+		gnome_canvas_item_set (new_item,
 				       "fieldname", is_rtl ? string : name,
 				       "field", is_rtl ? name : string,
 				       "max_field_name_length", left_width,
 				       "editable", FALSE /* e_minicard->editable */,
+				       "width", e_minicard->width - 4.0,
 				       NULL );
 
 #ifdef notyet
@@ -888,7 +893,8 @@
 		e_minicard->fields = g_list_append( e_minicard->fields, minicard_field);
 		e_canvas_item_move_absolute(new_item, 2, e_minicard->height);
 		count++;
-		g_free (name);
+		if (!is_list)
+			g_free (name);
 		g_free (string);
 		g_free (parsed_name);
 		g_free (email);
@@ -1005,7 +1011,7 @@
 
 					limit = 5 - count;
 					email = e_contact_get_attributes (e_minicard->contact, E_CONTACT_EMAIL);
-					add_email_field (e_minicard, email, left_width, limit);
+					add_email_field (e_minicard, email, left_width, limit, is_list);
 					if (count+limit >5)
 						count = 5;
 					else



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