comparison libpurple/blist.c @ 32672:3828a61c44da

A boring and large patch so I can merge heads.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Fri, 23 Dec 2011 08:21:58 +0000
parents 609e3855f36d
children
comparison
equal deleted inserted replaced
32671:0e69949b3e61 32672:3828a61c44da
312 char buf[10]; 312 char buf[10];
313 313
314 node = xmlnode_new("account"); 314 node = xmlnode_new("account");
315 xmlnode_set_attrib(node, "proto", purple_account_get_protocol_id(account)); 315 xmlnode_set_attrib(node, "proto", purple_account_get_protocol_id(account));
316 xmlnode_set_attrib(node, "name", purple_account_get_username(account)); 316 xmlnode_set_attrib(node, "name", purple_account_get_username(account));
317 g_snprintf(buf, sizeof(buf), "%d", account->perm_deny); 317 g_snprintf(buf, sizeof(buf), "%d", purple_account_get_privacy_type(account));
318 xmlnode_set_attrib(node, "mode", buf); 318 xmlnode_set_attrib(node, "mode", buf);
319 319
320 for (cur = account->permit; cur; cur = cur->next) 320 for (cur = account->permit; cur; cur = cur->next)
321 { 321 {
322 child = xmlnode_new_child(node, "permit"); 322 child = xmlnode_new_child(node, "permit");
639 639
640 if (!account) 640 if (!account)
641 continue; 641 continue;
642 642
643 imode = atoi(mode); 643 imode = atoi(mode);
644 account->perm_deny = (imode != 0 ? imode : PURPLE_PRIVACY_ALLOW_ALL); 644 purple_account_set_privacy_type(account, (imode != 0 ? imode : PURPLE_PRIVACY_ALLOW_ALL));
645 645
646 for (x = anode->child; x; x = x->next) { 646 for (x = anode->child; x; x = x->next) {
647 char *name; 647 char *name;
648 if (x->type != XMLNODE_TYPE_TAG) 648 if (x->type != XMLNODE_TYPE_TAG)
649 continue; 649 continue;
952 952
953 g_return_if_fail(node != NULL); 953 g_return_if_fail(node != NULL);
954 954
955 if (ops && ops->update) 955 if (ops && ops->update)
956 ops->update(purplebuddylist, node); 956 ops->update(purplebuddylist, node);
957 }
958
959 void
960 purple_blist_update_buddy_icon(PurpleBuddy *buddy)
961 {
962 purple_blist_update_node_icon((PurpleBlistNode *)buddy);
963 } 957 }
964 958
965 /* 959 /*
966 * TODO: Maybe remove the call to this from server.c and call it 960 * TODO: Maybe remove the call to this from server.c and call it
967 * from oscar.c and toc.c instead? 961 * from oscar.c and toc.c instead?
1311 groups = g_list_prepend(groups, node->parent->parent); 1305 groups = g_list_prepend(groups, node->parent->parent);
1312 } 1306 }
1313 1307
1314 purple_account_remove_buddies(account, buddies, groups); 1308 purple_account_remove_buddies(account, buddies, groups);
1315 g_list_free(groups); 1309 g_list_free(groups);
1316 purple_account_add_buddies(account, buddies); 1310 purple_account_add_buddies(account, buddies, NULL);
1317 } 1311 }
1318 1312
1319 g_list_free(buddies); 1313 g_list_free(buddies);
1320 } 1314 }
1321 } 1315 }
1741 g_return_val_if_fail(contact, NULL); 1735 g_return_val_if_fail(contact, NULL);
1742 1736
1743 return (PurpleGroup *)(((PurpleBlistNode *)contact)->parent); 1737 return (PurpleGroup *)(((PurpleBlistNode *)contact)->parent);
1744 } 1738 }
1745 1739
1746 void purple_contact_set_alias(PurpleContact *contact, const char *alias)
1747 {
1748 purple_blist_alias_contact(contact,alias);
1749 }
1750
1751 const char *purple_contact_get_alias(PurpleContact* contact) 1740 const char *purple_contact_get_alias(PurpleContact* contact)
1752 { 1741 {
1753 g_return_val_if_fail(contact != NULL, NULL); 1742 g_return_val_if_fail(contact != NULL, NULL);
1754 1743
1755 if (contact->alias) 1744 if (contact->alias)
1782 { 1771 {
1783 g_return_if_fail(contact != NULL); 1772 g_return_if_fail(contact != NULL);
1784 1773
1785 contact->priority_valid = FALSE; 1774 contact->priority_valid = FALSE;
1786 } 1775 }
1776
1777 int purple_contact_get_contact_size(PurpleContact *contact, gboolean offline)
1778 {
1779 g_return_val_if_fail(contact != NULL, 0);
1780
1781 return offline ? contact->totalsize : contact->currentsize;
1782 }
1787 1783
1788 PurpleGroup *purple_group_new(const char *name) 1784 PurpleGroup *purple_group_new(const char *name)
1789 { 1785 {
1790 PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); 1786 PurpleBlistUiOps *ops = purple_blist_get_ui_ops();
1791 PurpleGroup *group; 1787 PurpleGroup *group;
2371 2367
2372 if ((buddy->server_alias) && (*buddy->server_alias)) 2368 if ((buddy->server_alias) && (*buddy->server_alias))
2373 return buddy->server_alias; 2369 return buddy->server_alias;
2374 2370
2375 return NULL; 2371 return NULL;
2376 }
2377
2378 const char *purple_buddy_get_local_alias(PurpleBuddy *buddy)
2379 {
2380 PurpleContact *c;
2381
2382 g_return_val_if_fail(buddy != NULL, NULL);
2383
2384 /* Search for an alias for the buddy. In order of precedence: */
2385 /* The buddy alias */
2386 if (buddy->alias != NULL)
2387 return buddy->alias;
2388
2389 /* The contact alias */
2390 c = purple_buddy_get_contact(buddy);
2391 if ((c != NULL) && (c->alias != NULL))
2392 return c->alias;
2393
2394 /* The buddy's user name (i.e. no alias) */
2395 return buddy->name;
2396 } 2372 }
2397 2373
2398 const char *purple_chat_get_name(PurpleChat *chat) 2374 const char *purple_chat_get_name(PurpleChat *chat)
2399 { 2375 {
2400 char *ret = NULL; 2376 char *ret = NULL;