diff options
author | Elliott Sales de Andrade <qulogic@pidgin.im> | 2019-07-03 03:16:32 -0400 |
---|---|---|
committer | Elliott Sales de Andrade <qulogic@pidgin.im> | 2019-07-03 03:16:32 -0400 |
commit | df2b90904dae1ed07b9ea3aa8d985cd95b216326 (patch) | |
tree | fa5089aee00ebb24faff34779fed04e13d5149a6 /libpurple/buddylist.c | |
parent | fea5e2154cf01f7ef400bd19aa45e9b66b420e9c (diff) | |
download | pidgin-df2b90904dae1ed07b9ea3aa8d985cd95b216326.tar.gz |
Add wrapper functions for some PurpleBlistUiOps.
Diffstat (limited to 'libpurple/buddylist.c')
-rw-r--r-- | libpurple/buddylist.c | 74 |
1 files changed, 58 insertions, 16 deletions
diff --git a/libpurple/buddylist.c b/libpurple/buddylist.c index 2f89ab2843..a26b98c9af 100644 --- a/libpurple/buddylist.c +++ b/libpurple/buddylist.c @@ -375,8 +375,8 @@ blist_to_xmlnode(void) "localized-default-group", localized_default); } - for (gnode = purplebuddylist->root; gnode != NULL; gnode = gnode->next) - { + for (gnode = purple_blist_get_default_root(); gnode != NULL; + gnode = gnode->next) { if (purple_blist_node_is_transient(gnode)) continue; if (PURPLE_IS_GROUP(gnode)) @@ -433,7 +433,7 @@ _purple_blist_schedule_save() } static void -purple_blist_save_account(PurpleAccount *account) +_purple_blist_save_account(PurpleAccount *account) { #if 1 _purple_blist_schedule_save(); @@ -447,7 +447,7 @@ purple_blist_save_account(PurpleAccount *account) } static void -purple_blist_save_node(PurpleBlistNode *node) +_purple_blist_save_node(PurpleBlistNode *node) { _purple_blist_schedule_save(); } @@ -863,8 +863,10 @@ void purple_blist_add_chat(PurpleChat *chat, PurpleGroup *group, PurpleBlistNode /* Add group to blist if isn't already on it. Fixes #2752. */ if (!purple_blist_find_group(purple_group_get_name(group))) { - purple_blist_add_group(group, - purple_blist_get_last_sibling(purplebuddylist->root)); + purple_blist_add_group( + group, + purple_blist_get_last_sibling( + purple_blist_get_default_root())); } } else { group = PURPLE_GROUP(node->parent); @@ -1699,7 +1701,8 @@ purple_blist_find_chat(PurpleAccount *account, const char *name) return purple_protocol_client_iface_find_blist_chat(protocol, account, name); normname = g_strdup(purple_normalize(account, name)); - for (group = purplebuddylist->root; group != NULL; group = group->next) { + for (group = purple_blist_get_default_root(); group != NULL; + group = group->next) { for (node = group->child; node != NULL; node = node->next) { if (PURPLE_IS_CHAT(node)) { @@ -1741,7 +1744,8 @@ void purple_blist_add_account(PurpleAccount *account) if (!ops || !ops->update) return; - for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) { + for (gnode = purple_blist_get_default_root(); gnode; + gnode = gnode->next) { if (!PURPLE_IS_GROUP(gnode)) continue; for (cnode = gnode->child; cnode; cnode = cnode->next) { @@ -1789,7 +1793,8 @@ void purple_blist_remove_account(PurpleAccount *account) g_return_if_fail(PURPLE_IS_BUDDY_LIST(purplebuddylist)); - for (gnode = purplebuddylist->root; gnode; gnode = gnode->next) { + for (gnode = purple_blist_get_default_root(); gnode; + gnode = gnode->next) { if (!PURPLE_IS_GROUP(gnode)) continue; @@ -1875,7 +1880,8 @@ purple_blist_walk(PurpleBlistWalkFunc group_func, { PurpleBlistNode *group = NULL, *meta_contact = NULL, *contact = NULL; - for(group = purplebuddylist->root; group != NULL; group = group->next) { + for (group = purple_blist_get_default_root(); group != NULL; + group = group->next) { if(group_func != NULL) { group_func(group, data); } @@ -1937,6 +1943,42 @@ purple_blist_request_add_group(void) } void +purple_blist_new_node(PurpleBlistNode *node) +{ + PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); + if (ops && ops->new_node) { + ops->new_node(node); + } +} + +void +purple_blist_update_node(PurpleBuddyList *list, PurpleBlistNode *node) +{ + PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); + if (ops && ops->update) { + ops->update(list, node); + } +} + +void +purple_blist_save_node(PurpleBlistNode *node) +{ + PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); + if (ops && ops->save_node) { + ops->save_node(node); + } +} + +void +purple_blist_save_account(PurpleAccount *account) +{ + PurpleBlistUiOps *ops = purple_blist_get_ui_ops(); + if (ops && ops->save_account) { + ops->save_account(account); + } +} + +void purple_blist_set_ui_ops(PurpleBlistUiOps *ops) { gboolean overrode = FALSE; @@ -1946,21 +1988,21 @@ purple_blist_set_ui_ops(PurpleBlistUiOps *ops) return; if (!ops->save_node) { - ops->save_node = purple_blist_save_node; + ops->save_node = _purple_blist_save_node; overrode = TRUE; } if (!ops->remove_node) { - ops->remove_node = purple_blist_save_node; + ops->remove_node = _purple_blist_save_node; overrode = TRUE; } if (!ops->save_account) { - ops->save_account = purple_blist_save_account; + ops->save_account = _purple_blist_save_account; overrode = TRUE; } - if (overrode && (ops->save_node != purple_blist_save_node || - ops->remove_node != purple_blist_save_node || - ops->save_account != purple_blist_save_account)) { + if (overrode && (ops->save_node != _purple_blist_save_node || + ops->remove_node != _purple_blist_save_node || + ops->save_account != _purple_blist_save_account)) { purple_debug_warning("buddylist", "Only some of the blist saving UI ops " "were overridden. This probably is not what you want!\n"); } |