Mercurial > pidgin
comparison finch/gntblist.c @ 22214:2b426862ffbf
Add accessor and update finch to not touch the internals of PurpleConnection.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Sat, 26 Jan 2008 21:13:46 +0000 |
parents | 16ff37f64e29 |
children | ad357ca94de9 |
comparison
equal
deleted
inserted
replaced
22213:16ff37f64e29 | 22214:2b426862ffbf |
---|---|
627 PurpleChat *chat; | 627 PurpleChat *chat; |
628 PurpleGroup *grp; | 628 PurpleGroup *grp; |
629 GHashTable *hash = NULL; | 629 GHashTable *hash = NULL; |
630 PurpleConnection *gc; | 630 PurpleConnection *gc; |
631 gboolean autojoin; | 631 gboolean autojoin; |
632 PurplePluginProtocolInfo *info; | |
632 | 633 |
633 account = purple_request_fields_get_account(allfields, "account"); | 634 account = purple_request_fields_get_account(allfields, "account"); |
634 name = purple_request_fields_get_string(allfields, "name"); | 635 name = purple_request_fields_get_string(allfields, "name"); |
635 alias = purple_request_fields_get_string(allfields, "alias"); | 636 alias = purple_request_fields_get_string(allfields, "alias"); |
636 group = purple_request_fields_get_string(allfields, "group"); | 637 group = purple_request_fields_get_string(allfields, "group"); |
637 autojoin = purple_request_fields_get_bool(allfields, "autojoin"); | 638 autojoin = purple_request_fields_get_bool(allfields, "autojoin"); |
638 | 639 |
639 if (!purple_account_is_connected(account) || !name || !*name) | 640 if (!purple_account_is_connected(account) || !name || !*name) |
640 return; | 641 return; |
641 | 642 |
642 if (!group || !*group) | 643 if (!group || !*group) |
643 group = _("Chats"); | 644 group = _("Chats"); |
644 | 645 |
645 gc = purple_account_get_connection(account); | 646 gc = purple_account_get_connection(account); |
646 | 647 info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
647 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | 648 if (info->chat_info_defaults != NULL) |
648 hash = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, name); | 649 hash = info->chat_info_defaults(gc, name); |
649 | 650 |
650 chat = purple_chat_new(account, name, hash); | 651 chat = purple_chat_new(account, name, hash); |
651 | 652 |
652 if (chat != NULL) { | 653 if (chat != NULL) { |
653 if ((grp = purple_find_group(group)) == NULL) { | 654 if ((grp = purple_find_group(group)) == NULL) { |
654 grp = purple_group_new(group); | 655 grp = purple_group_new(group); |
986 | 987 |
987 static void | 988 static void |
988 append_proto_menu(GntMenu *menu, PurpleConnection *gc, PurpleBlistNode *node) | 989 append_proto_menu(GntMenu *menu, PurpleConnection *gc, PurpleBlistNode *node) |
989 { | 990 { |
990 GList *list; | 991 GList *list; |
991 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 992 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
992 | 993 |
993 if(!prpl_info || !prpl_info->blist_node_menu) | 994 if(!prpl_info || !prpl_info->blist_node_menu) |
994 return; | 995 return; |
995 | 996 |
996 for(list = prpl_info->blist_node_menu(node); list; | 997 for(list = prpl_info->blist_node_menu(node); list; |
1046 PurpleConnection *gc; | 1047 PurpleConnection *gc; |
1047 | 1048 |
1048 purple_request_fields_add_group(fields, group); | 1049 purple_request_fields_add_group(fields, group); |
1049 | 1050 |
1050 gc = purple_account_get_connection(chat->account); | 1051 gc = purple_account_get_connection(chat->account); |
1051 parts = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info(gc); | 1052 parts = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))->chat_info(gc); |
1052 | 1053 |
1053 for (iter = parts; iter; iter = iter->next) { | 1054 for (iter = parts; iter; iter = iter->next) { |
1054 pce = iter->data; | 1055 pce = iter->data; |
1055 if (pce->is_int) { | 1056 if (pce->is_int) { |
1056 int val; | 1057 int val; |
1167 create_buddy_menu(GntMenu *menu, PurpleBuddy *buddy) | 1168 create_buddy_menu(GntMenu *menu, PurpleBuddy *buddy) |
1168 { | 1169 { |
1169 PurplePluginProtocolInfo *prpl_info; | 1170 PurplePluginProtocolInfo *prpl_info; |
1170 PurpleConnection *gc = purple_account_get_connection(buddy->account); | 1171 PurpleConnection *gc = purple_account_get_connection(buddy->account); |
1171 | 1172 |
1172 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 1173 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
1173 if (prpl_info && prpl_info->get_info) | 1174 if (prpl_info && prpl_info->get_info) |
1174 { | 1175 { |
1175 add_custom_action(menu, _("Get Info"), | 1176 add_custom_action(menu, _("Get Info"), |
1176 PURPLE_CALLBACK(finch_blist_get_buddy_info_cb), buddy); | 1177 PURPLE_CALLBACK(finch_blist_get_buddy_info_cb), buddy); |
1177 } | 1178 } |
2417 PurpleConnection *gc = purple_account_get_connection(account); | 2418 PurpleConnection *gc = purple_account_get_connection(account); |
2418 PurplePlugin *prpl; | 2419 PurplePlugin *prpl; |
2419 | 2420 |
2420 if (!gc || !PURPLE_CONNECTION_IS_CONNECTED(gc)) | 2421 if (!gc || !PURPLE_CONNECTION_IS_CONNECTED(gc)) |
2421 continue; | 2422 continue; |
2422 prpl = gc->prpl; | 2423 prpl = purple_connection_get_prpl(gc); |
2423 | 2424 |
2424 if (PURPLE_PLUGIN_HAS_ACTIONS(prpl)) { | 2425 if (PURPLE_PLUGIN_HAS_ACTIONS(prpl)) { |
2425 item = gnt_menuitem_new(purple_account_get_username(account)); | 2426 item = gnt_menuitem_new(purple_account_get_username(account)); |
2426 gnt_menu_add_item(GNT_MENU(sub), item); | 2427 gnt_menu_add_item(GNT_MENU(sub), item); |
2427 build_plugin_actions(item, prpl, gc); | 2428 build_plugin_actions(item, prpl, gc); |
2550 name = purple_request_fields_get_string(fields, "chat"); | 2551 name = purple_request_fields_get_string(fields, "chat"); |
2551 | 2552 |
2552 if (!purple_account_is_connected(account)) | 2553 if (!purple_account_is_connected(account)) |
2553 return; | 2554 return; |
2554 | 2555 |
2555 gc = purple_account_get_connection(account); | 2556 gc = purple_account_get_connection(account); |
2556 purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name); | 2557 purple_conversation_new(PURPLE_CONV_TYPE_CHAT, account, name); |
2557 chat = purple_blist_find_chat(account, name); | 2558 chat = purple_blist_find_chat(account, name); |
2558 if (chat == NULL) { | 2559 if (chat == NULL) { |
2559 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | 2560 PurplePluginProtocolInfo *info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
2560 hash = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, name); | 2561 if (info->chat_info_defaults != NULL) |
2562 hash = info->chat_info_defaults(gc, name); | |
2561 } else { | 2563 } else { |
2562 hash = chat->components; | 2564 hash = chat->components; |
2563 } | 2565 } |
2564 serv_join_chat(gc, hash); | 2566 serv_join_chat(gc, hash); |
2565 if (chat == NULL && hash != NULL) | 2567 if (chat == NULL && hash != NULL) |