aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook')
-rw-r--r--addressbook/ChangeLog10
-rw-r--r--addressbook/gui/widgets/e-minicard.c48
2 files changed, 37 insertions, 21 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index ebe9a1db47..87f96a9707 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,13 @@
+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.
+
2008-08-04 Matthew Barnes <mbarnes@redhat.com>
** Fixes bug #249844
diff --git a/addressbook/gui/widgets/e-minicard.c b/addressbook/gui/widgets/e-minicard.c
index b617292a0f..a4bda1ac4a 100644
--- a/addressbook/gui/widgets/e-minicard.c
+++ b/addressbook/gui/widgets/e-minicard.c
@@ -780,21 +780,21 @@ add_field (EMinicard *e_minicard, EContactField field, gdouble left_width)
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 @@ get_email_location (EVCardAttribute *attr)
}
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 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
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 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
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 @@ add_email_field (EMinicard *e_minicard, GList *email_list, gdouble left_width, i
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 @@ remodel( EMinicard *e_minicard )
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