finch/gntblist.c

branch
next.minor
changeset 24974
a81952e9babb
parent 24951
d0837696fd3a
child 24990
e2fdc2cd23a4
equal deleted inserted replaced
24973:d021d316a53d 24974:a81952e9babb
355 { 355 {
356 PurpleBuddy *buddy; 356 PurpleBuddy *buddy;
357 int color = 0; 357 int color = 0;
358 358
359 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) 359 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
360 node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); 360 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
361 if (!PURPLE_BLIST_NODE_IS_BUDDY(node)) 361 if (!PURPLE_BLIST_NODE_IS_BUDDY(node))
362 return 0; 362 return 0;
363 363
364 buddy = (PurpleBuddy*)node; 364 buddy = (PurpleBuddy*)node;
365 if (purple_presence_is_idle(purple_buddy_get_presence(buddy))) { 365 if (purple_presence_is_idle(purple_buddy_get_presence(buddy))) {
386 flag |= GNT_TEXT_FLAG_BOLD; 386 flag |= GNT_TEXT_FLAG_BOLD;
387 387
388 if (fnode && fnode->signed_timer) 388 if (fnode && fnode->signed_timer)
389 flag |= GNT_TEXT_FLAG_BLINK; 389 flag |= GNT_TEXT_FLAG_BLINK;
390 else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { 390 else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
391 node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact *)node); 391 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
392 fnode = FINCH_GET_DATA(node); 392 fnode = FINCH_GET_DATA(node);
393 if (fnode && fnode->signed_timer) 393 if (fnode && fnode->signed_timer)
394 flag |= GNT_TEXT_FLAG_BLINK; 394 flag |= GNT_TEXT_FLAG_BLINK;
395 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) { 395 } else if (PURPLE_BLIST_NODE_IS_GROUP(node)) {
396 /* If the node is collapsed, then check to see if any of the priority buddies of 396 /* If the node is collapsed, then check to see if any of the priority buddies of
884 static char text[2096]; 884 static char text[2096];
885 char status[8] = " "; 885 char status[8] = " ";
886 const char *name = NULL; 886 const char *name = NULL;
887 887
888 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) 888 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
889 node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); /* XXX: this can return NULL?! */ 889 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node))); /* XXX: this can return NULL?! */
890 890
891 if (node == NULL) 891 if (node == NULL)
892 return NULL; 892 return NULL;
893 893
894 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) 894 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
1025 1025
1026 if (!node) 1026 if (!node)
1027 return; 1027 return;
1028 1028
1029 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) 1029 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
1030 node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); 1030 node = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
1031 1031
1032 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) 1032 if (PURPLE_BLIST_NODE_IS_BUDDY(node))
1033 { 1033 {
1034 PurpleBuddy *buddy = (PurpleBuddy *)node; 1034 PurpleBuddy *buddy = (PurpleBuddy *)node;
1035 PurpleConversation *conv; 1035 PurpleConversation *conv;
1569 ggblist->tagged = g_list_delete_link(ggblist->tagged, iter); 1569 ggblist->tagged = g_list_delete_link(ggblist->tagged, iter);
1570 } else { 1570 } else {
1571 ggblist->tagged = g_list_prepend(ggblist->tagged, node); 1571 ggblist->tagged = g_list_prepend(ggblist->tagged, node);
1572 } 1572 }
1573 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) 1573 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
1574 node = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); 1574 update_buddy_display(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)), ggblist);
1575 if (PURPLE_BLIST_NODE_IS_BUDDY(node)) 1575 else if (PURPLE_BLIST_NODE_IS_BUDDY(node))
1576 update_buddy_display((PurpleBuddy*)node, ggblist); 1576 update_buddy_display((PurpleBuddy*)node, ggblist);
1577 else 1577 else
1578 update_node_display(node, ggblist); 1578 update_node_display(node, ggblist);
1579 } 1579 }
1580 1580
1610 update_node_display(node, ggblist); 1610 update_node_display(node, ggblist);
1611 /* Add the group after the current group */ 1611 /* Add the group after the current group */
1612 purple_blist_add_group((PurpleGroup*)node, (PurpleBlistNode*)tg); 1612 purple_blist_add_group((PurpleGroup*)node, (PurpleBlistNode*)tg);
1613 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { 1613 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
1614 update_buddy_display(purple_contact_get_priority_buddy((PurpleContact*)node), ggblist); 1614 update_buddy_display(purple_contact_get_priority_buddy((PurpleContact*)node), ggblist);
1615 if ((PurpleBlistNode*)tg == target) { 1615 if (PURPLE_BLIST_NODE(tg) == target) {
1616 /* The target is a group, just add the contact to the group. */ 1616 /* The target is a group, just add the contact to the group. */
1617 purple_blist_add_contact((PurpleContact*)node, tg, NULL); 1617 purple_blist_add_contact((PurpleContact*)node, tg, NULL);
1618 } else if (tc) { 1618 } else if (tc) {
1619 /* The target is either a buddy, or a contact. Merge with that contact. */ 1619 /* The target is either a buddy, or a contact. Merge with that contact. */
1620 purple_blist_merge_contact((PurpleContact*)node, (PurpleBlistNode*)tc); 1620 purple_blist_merge_contact((PurpleContact*)node, (PurpleBlistNode*)tc);
1622 /* The target is a chat. Add the contact to the group after this chat. */ 1622 /* The target is a chat. Add the contact to the group after this chat. */
1623 purple_blist_add_contact((PurpleContact*)node, NULL, target); 1623 purple_blist_add_contact((PurpleContact*)node, NULL, target);
1624 } 1624 }
1625 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { 1625 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
1626 update_buddy_display((PurpleBuddy*)node, ggblist); 1626 update_buddy_display((PurpleBuddy*)node, ggblist);
1627 if ((PurpleBlistNode*)tg == target) { 1627 if (PURPLE_BLIST_NODE(tg) == target) {
1628 /* The target is a group. Add this buddy in a new contact under this group. */ 1628 /* The target is a group. Add this buddy in a new contact under this group. */
1629 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL); 1629 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
1630 } else if (PURPLE_BLIST_NODE_IS_CONTACT(target)) { 1630 } else if (PURPLE_BLIST_NODE_IS_CONTACT(target)) {
1631 /* Add to the contact. */ 1631 /* Add to the contact. */
1632 purple_blist_add_buddy((PurpleBuddy*)node, tc, NULL, NULL); 1632 purple_blist_add_buddy((PurpleBuddy*)node, tc, NULL, NULL);
1637 /* Add to the selected chat's group. */ 1637 /* Add to the selected chat's group. */
1638 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL); 1638 purple_blist_add_buddy((PurpleBuddy*)node, NULL, tg, NULL);
1639 } 1639 }
1640 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) { 1640 } else if (PURPLE_BLIST_NODE_IS_CHAT(node)) {
1641 update_node_display(node, ggblist); 1641 update_node_display(node, ggblist);
1642 if ((PurpleBlistNode*)tg == target) 1642 if (PURPLE_BLIST_NODE(tg) == target)
1643 purple_blist_add_chat((PurpleChat*)node, tg, NULL); 1643 purple_blist_add_chat((PurpleChat*)node, tg, NULL);
1644 else 1644 else
1645 purple_blist_add_chat((PurpleChat*)node, NULL, target); 1645 purple_blist_add_chat((PurpleChat*)node, NULL, target);
1646 } 1646 }
1647 } 1647 }
1683 1683
1684 if (!node) { 1684 if (!node) {
1685 create_group_menu(GNT_MENU(context), NULL); 1685 create_group_menu(GNT_MENU(context), NULL);
1686 title = g_strdup(_("Buddy List")); 1686 title = g_strdup(_("Buddy List"));
1687 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) { 1687 } else if (PURPLE_BLIST_NODE_IS_CONTACT(node)) {
1688 ggblist->cnode = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)node); 1688 ggblist->cnode = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(node)));
1689 create_buddy_menu(GNT_MENU(context), (PurpleBuddy*)ggblist->cnode); 1689 create_buddy_menu(GNT_MENU(context), (PurpleBuddy*)ggblist->cnode);
1690 title = g_strdup(purple_contact_get_alias((PurpleContact*)node)); 1690 title = g_strdup(purple_contact_get_alias((PurpleContact*)node));
1691 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) { 1691 } else if (PURPLE_BLIST_NODE_IS_BUDDY(node)) {
1692 PurpleBuddy *buddy = (PurpleBuddy *)node; 1692 PurpleBuddy *buddy = (PurpleBuddy *)node;
1693 create_buddy_menu(GNT_MENU(context), buddy); 1693 create_buddy_menu(GNT_MENU(context), buddy);
2410 if (purple_blist_node_get_type(n1) != purple_blist_node_get_type(n2)) 2410 if (purple_blist_node_get_type(n1) != purple_blist_node_get_type(n2))
2411 return blist_node_compare_position(n1, n2); 2411 return blist_node_compare_position(n1, n2);
2412 2412
2413 switch (purple_blist_node_get_type(n1)) { 2413 switch (purple_blist_node_get_type(n1)) {
2414 case PURPLE_BLIST_CONTACT_NODE: 2414 case PURPLE_BLIST_CONTACT_NODE:
2415 n1 = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)n1); 2415 n1 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n1)));
2416 n2 = (PurpleBlistNode*)purple_contact_get_priority_buddy((PurpleContact*)n2); 2416 n2 = PURPLE_BLIST_NODE(purple_contact_get_priority_buddy(PURPLE_CONTACT(n2)));
2417 /* now compare the presence of the priority buddies */ 2417 /* now compare the presence of the priority buddies */
2418 case PURPLE_BLIST_BUDDY_NODE: 2418 case PURPLE_BLIST_BUDDY_NODE:
2419 ret = purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1), 2419 ret = purple_presence_compare(purple_buddy_get_presence((PurpleBuddy*)n1),
2420 purple_buddy_get_presence((PurpleBuddy*)n2)); 2420 purple_buddy_get_presence((PurpleBuddy*)n2));
2421 if (ret != 0) 2421 if (ret != 0)

mercurial