libpurple/blistnodetypes.c

branch
soc.2013.gobjectification
changeset 34730
2406671e3c44
parent 34729
7f5a2fc8ef9c
child 34737
60d32106f808
--- a/libpurple/blistnodetypes.c	Tue Jul 09 16:18:19 2013 +0530
+++ b/libpurple/blistnodetypes.c	Tue Jul 09 22:08:33 2013 +0530
@@ -146,6 +146,7 @@
 void
 purple_buddy_set_icon(PurpleBuddy *buddy, PurpleBuddyIcon *icon)
 {
+	PurpleBListUiOps *ops = purple_blist_get_ui_ops();
 	PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
 
 	g_return_if_fail(priv != NULL);
@@ -158,7 +159,8 @@
 
 	purple_signal_emit(purple_blist_get_handle(), "buddy-icon-changed", buddy);
 
-	purple_blist_node_update(PURPLE_BLIST_NODE(buddy));
+	if (ops && ops->update)
+		ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
 }
 
 PurpleBuddyIcon *
@@ -194,10 +196,12 @@
 	g_free(priv->name);
 	priv->name = purple_utf8_strip_unprintables(name);
 
-	if (ops && ops->save_node)
-		ops->save_node(PURPLE_BLIST_NODE(buddy));
-
-	purple_blist_node_update(PURPLE_BLIST_NODE(buddy));
+	if (ops) {
+		if (ops->save_node)
+			ops->save_node(PURPLE_BLIST_NODE(buddy));
+		if (ops->update)
+			ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
+	}
 }
 
 const char *
@@ -322,7 +326,8 @@
 	if (ops && ops->save_node)
 		ops->save_node(PURPLE_BLIST_NODE(buddy));
 
-	purple_blist_node_update(PURPLE_BLIST_NODE(buddy));
+	if (ops && ops->update)
+		ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
 
 	im = purple_conversations_find_im_with_account(priv->name,
 											   priv->account);
@@ -371,10 +376,12 @@
 		g_free(new_alias); /* could be "\0"; */
 	}
 
-	if (ops && ops->save_node)
-		ops->save_node(PURPLE_BLIST_NODE(buddy));
-
-	purple_blist_node_update(PURPLE_BLIST_NODE(buddy));
+	if (ops) {
+		if (ops->save_node)
+			ops->save_node(PURPLE_BLIST_NODE(buddy));
+		if (ops->update)
+			ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
+	}
 
 	im = purple_conversations_find_im_with_account(priv->name,
 											   priv->account);
@@ -421,6 +428,7 @@
 	PurpleBListNode *cnode;
 	PurpleContact *contact;
 	PurpleCountingNode *contact_counter, *group_counter;
+	PurpleBListUiOps *ops = purple_blist_get_ui_ops();
 	PurpleBuddyPrivate *priv = PURPLE_BUDDY_GET_PRIVATE(buddy);
 
 	g_return_if_fail(priv != NULL);
@@ -474,7 +482,9 @@
 	 * certainly won't hurt anything.  Unless you're on a K6-2 300.
 	 */
 	purple_contact_invalidate_priority_buddy(purple_buddy_get_contact(buddy));
-	purple_blist_node_update(PURPLE_BLIST_NODE(buddy));
+
+	if (ops && ops->update)
+		ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(buddy));
 }
 
 PurpleMediaCaps purple_buddy_get_media_caps(const PurpleBuddy *buddy)
@@ -833,10 +843,12 @@
 		g_free(new_alias); /* could be "\0" */
 	}
 
-	if (ops && ops->save_node)
-		ops->save_node(PURPLE_BLIST_NODE(contact));
-
-	purple_blist_node_update(PURPLE_BLIST_NODE(contact));
+	if (ops) {
+		if (ops->save_node)
+			ops->save_node(PURPLE_BLIST_NODE(contact));
+		if (ops->update)
+			ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(contact));
+	}
 
 	for(bnode = PURPLE_BLIST_NODE(contact)->child; bnode != NULL; bnode = bnode->next)
 	{
@@ -971,10 +983,11 @@
 		GParamSpec *pspec)
 {
 	PurpleContact *contact = PURPLE_CONTACT(obj);
+	PurpleContactPrivate *priv = PURPLE_CONTACT_GET_PRIVATE(contact);
 
 	switch (param_id) {
 		case CONTACT_PROP_ALIAS:
-			g_value_set_string(value, purple_contact_get_alias(contact));
+			g_value_set_string(value, priv->alias);
 			break;
 		case CONTACT_PROP_PRIORITY_BUDDY:
 			g_value_set_object(value, purple_contact_get_priority_buddy(contact));
@@ -1136,10 +1149,12 @@
 		g_free(new_alias); /* could be "\0" */
 	}
 
-	if (ops && ops->save_node)
-		ops->save_node(PURPLE_BLIST_NODE(chat));
-
-	purple_blist_node_update(PURPLE_BLIST_NODE(chat));
+	if (ops) {
+		if (ops->save_node)
+			ops->save_node(PURPLE_BLIST_NODE(chat));
+		if (ops->update)
+			ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(chat));
+	}
 
 	purple_signal_emit(purple_blist_get_handle(), "blist-node-aliased",
 					 chat, old_alias);
@@ -1472,7 +1487,8 @@
 		ops->save_node(PURPLE_BLIST_NODE(source));
 
 	/* Update the UI */
-	purple_blist_node_update(PURPLE_BLIST_NODE(source));
+	if (ops && ops->update)
+		ops->update(purple_blist_get_buddy_list(), PURPLE_BLIST_NODE(source));
 
 	/* Notify all PRPLs */
 	/* TODO: Is this condition needed?  Seems like it would always be TRUE */

mercurial