soylent r116 - trunk/src
- From: treitter svn gnome org
- To: svn-commits-list gnome org
- Subject: soylent r116 - trunk/src
- Date: Wed, 2 Apr 2008 07:25:48 +0100 (BST)
Author: treitter
Date: Wed Apr 2 07:25:48 2008
New Revision: 116
URL: http://svn.gnome.org/viewvc/soylent?rev=116&view=rev
Log:
fix an off-by-one error when editing IM names; don't also display Work IM names under Home
Modified:
trunk/src/eds-utils.c
trunk/src/soylent-browser-person-view.c
Modified: trunk/src/eds-utils.c
==============================================================================
--- trunk/src/eds-utils.c (original)
+++ trunk/src/eds-utils.c Wed Apr 2 07:25:48 2008
@@ -159,6 +159,7 @@
{
gboolean retval = FALSE;
GList *attr_list = NULL;
+ GList *attr_list_prev = NULL;
GList *attr_list_head = NULL;
EVCardAttribute *attr = NULL;
GList *type_existing = NULL;
@@ -188,9 +189,11 @@
{
abs_num--;
}
+
+ attr_list_prev = attr_list;
}
- if (attr && abs_num > 0)
+ if (attr && abs_num >= 0)
{
if (value && !g_str_equal (value, ""))
{
@@ -199,7 +202,8 @@
}
else
{
- attr_list_head = g_list_delete_link (attr_list_head, attr_list);
+ attr_list_head = g_list_delete_link (attr_list_head,
+ attr_list_prev);
}
e_contact_set_attributes (e_contact, field_id, attr_list_head);
Modified: trunk/src/soylent-browser-person-view.c
==============================================================================
--- trunk/src/soylent-browser-person-view.c (original)
+++ trunk/src/soylent-browser-person-view.c Wed Apr 2 07:25:48 2008
@@ -2481,17 +2481,21 @@
l && entry_pos[context] < IM_FIELDS_PER_CONTEXT;
l = g_list_next(l))
{
+ gboolean param_type_is_work = FALSE;
GList *param_type = NULL;
attr = l->data;
im_name = e_vcard_attribute_get_value (attr);
param_type = e_vcard_attribute_get_param (attr, EVC_TYPE);
+ param_type_is_work = (param_type
+ && !g_ascii_strcasecmp
+ (param_type->data,
+ CONTEXT_STRS[CONTEXT_WORK]));
+
/* "HOME" is the catch-all, since that's how Evo does it */
- if ((context == CONTEXT_HOME)
- || (param_type
- && (g_ascii_strcasecmp (param_type->data,
- CONTEXT_STRS[context]) == 0)))
+ if (((context == CONTEXT_WORK) && param_type_is_work)
+ || ((context == CONTEXT_HOME) && !param_type_is_work))
{
GtkHBox *hbox_im = NULL;
GtkLabel *label_im = NULL;
@@ -2499,22 +2503,22 @@
gchar *widget_name = NULL;
widget_name = g_strdup_printf ("hbox_person_im_%s_%c",
- CONTEXT_STRS[context],
- '1' + entry_pos[context]);
+ CONTEXT_STRS[context],
+ '1' + entry_pos[context]);
hbox_im = GTK_HBOX (glade_xml_get_widget (wtree,
widget_name));
g_free (widget_name);
widget_name = g_strdup_printf ("entry_person_im_%s_%c",
- CONTEXT_STRS[context],
- '1' + entry_pos[context]);
+ CONTEXT_STRS[context],
+ '1' + entry_pos[context]);
entry_im = GTK_ENTRY (glade_xml_get_widget (wtree,
widget_name));
g_free (widget_name);
widget_name = g_strdup_printf ("label_person_im_%s_%c",
- CONTEXT_STRS[context],
- '1' + entry_pos[context]);
+ CONTEXT_STRS[context],
+ '1' + entry_pos[context]);
label_im = GTK_LABEL (glade_xml_get_widget (wtree,
widget_name));
g_free (widget_name);
@@ -2529,7 +2533,7 @@
e_vcard_attribute_get_name (attr) + 2);
entry_set_text_block_handler
(entry_im, im_name,
- soylent_browser_person_entry_changed_e_contact_cb);
+ soylent_browser_person_entry_changed_e_contact_cb);
gtk_widget_show (GTK_WIDGET (hbox_im));
}
@@ -2599,8 +2603,8 @@
GtkHBox *hbox_im = NULL;
widget_name = g_strdup_printf ("hbox_person_im_%s_%c",
- CONTEXT_STRS[context],
- '1' + entry_pos[context]);
+ CONTEXT_STRS[context],
+ '1' + entry_pos[context]);
hbox_im = GTK_HBOX (glade_xml_get_widget (wtree, widget_name));
gtk_widget_hide (GTK_WIDGET (hbox_im));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]