diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2010-07-17 13:08:31 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2010-07-17 13:08:31 +0100 |
commit | a08e8752a64e12f16a9ddc7e583195c3388b8d3f (patch) | |
tree | 45f6bbb88fc4a68e14b813ff336ef91d542de59d /protocols/purple/purple.c | |
parent | d0527c1845ed1230bbc3b0f94b8643cd8f9fddc3 (diff) |
libpurple: Read group information of contacts.
Diffstat (limited to 'protocols/purple/purple.c')
-rw-r--r-- | protocols/purple/purple.c | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c index 4729794d..d69bc82b 100644 --- a/protocols/purple/purple.c +++ b/protocols/purple/purple.c @@ -643,32 +643,12 @@ static PurpleConnectionUiOps bee_conn_uiops = prplcb_conn_report_disconnect_reason, }; -static void prplcb_blist_new( PurpleBlistNode *node ) -{ - PurpleBuddy *bud = (PurpleBuddy*) node; - - if( node->type == PURPLE_BLIST_BUDDY_NODE ) - { - struct im_connection *ic = purple_ic_by_pa( bud->account ); - - if( ic == NULL ) - return; - - imcb_add_buddy( ic, bud->name, NULL ); - if( bud->server_alias ) - { - imcb_rename_buddy( ic, bud->name, bud->server_alias ); - imcb_buddy_nick_hint( ic, bud->name, bud->server_alias ); - } - } -} - static void prplcb_blist_update( PurpleBuddyList *list, PurpleBlistNode *node ) { - PurpleBuddy *bud = (PurpleBuddy*) node; - if( node->type == PURPLE_BLIST_BUDDY_NODE ) { + PurpleBuddy *bud = (PurpleBuddy*) node; + PurpleGroup *group = purple_buddy_get_group( bud ); struct im_connection *ic = purple_ic_by_pa( bud->account ); PurpleStatus *as; int flags = 0; @@ -679,6 +659,9 @@ static void prplcb_blist_update( PurpleBuddyList *list, PurpleBlistNode *node ) if( bud->server_alias ) imcb_rename_buddy( ic, bud->name, bud->server_alias ); + if( group ) + imcb_add_buddy( ic, bud->name, purple_group_get_name( group ) ); + flags |= purple_presence_is_online( bud->presence ) ? OPT_LOGGED_IN : 0; flags |= purple_presence_is_available( bud->presence ) ? 0 : OPT_AWAY; @@ -693,6 +676,22 @@ static void prplcb_blist_update( PurpleBuddyList *list, PurpleBlistNode *node ) } } +static void prplcb_blist_new( PurpleBlistNode *node ) +{ + if( node->type == PURPLE_BLIST_BUDDY_NODE ) + { + PurpleBuddy *bud = (PurpleBuddy*) node; + struct im_connection *ic = purple_ic_by_pa( bud->account ); + + if( ic == NULL ) + return; + + imcb_add_buddy( ic, bud->name, NULL ); + + prplcb_blist_update( NULL, node ); + } +} + static void prplcb_blist_remove( PurpleBuddyList *list, PurpleBlistNode *node ) { /* |