comparison pidgin/gtkconv.c @ 32767:2ec94166be43

On the way to hiding the PurpleConnection struct. * Added purple_connection_get_flags() and purple_connection_set_flags() * Use purple_connection_ accessor functions.
author andrew.victor@mxit.com
date Tue, 18 Oct 2011 18:47:48 +0000
parents 599f8901a5e0
children 75104780b1a3
comparison
equal deleted inserted replaced
32766:ea2b621fd3ba 32767:2ec94166be43
562 { 562 {
563 PurplePluginProtocolInfo *prpl_info = NULL; 563 PurplePluginProtocolInfo *prpl_info = NULL;
564 PurpleConnection *gc; 564 PurpleConnection *gc;
565 565
566 if ((gc = purple_conversation_get_gc(conv))) 566 if ((gc = purple_conversation_get_gc(conv)))
567 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 567 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
568 568
569 if ((prpl_info != NULL) && (prpl_info->options & OPT_PROTO_SLASH_COMMANDS_NATIVE)) { 569 if ((prpl_info != NULL) && (prpl_info->options & OPT_PROTO_SLASH_COMMANDS_NATIVE)) {
570 char *spaceslash; 570 char *spaceslash;
571 571
572 /* If the first word in the entered text has a '/' in it, then the user 572 /* If the first word in the entered text has a '/' in it, then the user
1510 g_return_if_fail(account != NULL); 1510 g_return_if_fail(account != NULL);
1511 1511
1512 gc = purple_account_get_connection(account); 1512 gc = purple_account_get_connection(account);
1513 g_return_if_fail(gc != NULL); 1513 g_return_if_fail(gc != NULL);
1514 1514
1515 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 1515 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
1516 1516
1517 if (prpl_info && prpl_info->get_cb_real_name) 1517 if (prpl_info && prpl_info->get_cb_real_name)
1518 real_who = prpl_info->get_cb_real_name(gc, 1518 real_who = prpl_info->get_cb_real_name(gc,
1519 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); 1519 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who);
1520 1520
1566 PurpleConnection *gc = purple_conversation_get_gc(conv); 1566 PurpleConnection *gc = purple_conversation_get_gc(conv);
1567 gchar *real_who = NULL; 1567 gchar *real_who = NULL;
1568 1568
1569 g_return_if_fail(gc != NULL); 1569 g_return_if_fail(gc != NULL);
1570 1570
1571 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 1571 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
1572 1572
1573 if (prpl_info && prpl_info->get_cb_real_name) 1573 if (prpl_info && prpl_info->get_cb_real_name)
1574 real_who = prpl_info->get_cb_real_name(gc, 1574 real_who = prpl_info->get_cb_real_name(gc,
1575 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); 1575 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who);
1576 1576
1647 gboolean is_me = FALSE; 1647 gboolean is_me = FALSE;
1648 GtkWidget *button; 1648 GtkWidget *button;
1649 PurpleBuddy *buddy = NULL; 1649 PurpleBuddy *buddy = NULL;
1650 1650
1651 if (gc != NULL) 1651 if (gc != NULL)
1652 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 1652 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
1653 1653
1654 /* 1654 /*
1655 * If a menu already exists, destroy it before creating a new one, 1655 * If a menu already exists, destroy it before creating a new one,
1656 * thus freeing-up the memory it occupied. 1656 * thus freeing-up the memory it occupied.
1657 */ 1657 */
4067 chat = PURPLE_CONV_CHAT(conv); 4067 chat = PURPLE_CONV_CHAT(conv);
4068 gtkconv = PIDGIN_CONVERSATION(conv); 4068 gtkconv = PIDGIN_CONVERSATION(conv);
4069 gtkchat = gtkconv->u.chat; 4069 gtkchat = gtkconv->u.chat;
4070 gc = purple_conversation_get_gc(conv); 4070 gc = purple_conversation_get_gc(conv);
4071 4071
4072 if (!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl))) 4072 if (!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))))
4073 return; 4073 return;
4074 4074
4075 tm = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list)); 4075 tm = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list));
4076 ls = GTK_LIST_STORE(tm); 4076 ls = GTK_LIST_STORE(tm);
4077 4077
4377 char *new_topic; 4377 char *new_topic;
4378 const char *current_topic; 4378 const char *current_topic;
4379 4379
4380 gc = purple_conversation_get_gc(conv); 4380 gc = purple_conversation_get_gc(conv);
4381 4381
4382 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl))) 4382 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc))))
4383 return; 4383 return;
4384 4384
4385 if(prpl_info->set_chat_topic == NULL) 4385 if(prpl_info->set_chat_topic == NULL)
4386 return; 4386 return;
4387 4387
4520 g_return_if_fail(node != NULL); 4520 g_return_if_fail(node != NULL);
4521 g_return_if_fail(conv != NULL); 4521 g_return_if_fail(conv != NULL);
4522 4522
4523 gc = purple_conversation_get_gc(conv); 4523 gc = purple_conversation_get_gc(conv);
4524 g_return_if_fail(gc != NULL); 4524 g_return_if_fail(gc != NULL);
4525 g_return_if_fail(gc->prpl != NULL); 4525 g_return_if_fail(purple_connection_get_prpl(gc) != NULL);
4526 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 4526 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
4527 4527
4528 if (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME) 4528 if (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)
4529 return; 4529 return;
4530 4530
4531 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) 4531 if (PURPLE_BLIST_NODE_IS_CONTACT(node))
4729 static void 4729 static void
4730 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox) 4730 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox)
4731 { 4731 {
4732 PurpleConversation *conv = gtkconv->active_conv; 4732 PurpleConversation *conv = gtkconv->active_conv;
4733 PurpleConnection *gc = purple_conversation_get_gc(conv); 4733 PurpleConnection *gc = purple_conversation_get_gc(conv);
4734 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 4734 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
4735 if (prpl_info->options & OPT_PROTO_CHAT_TOPIC) 4735 if (prpl_info->options & OPT_PROTO_CHAT_TOPIC)
4736 { 4736 {
4737 GtkWidget *hbox, *label; 4737 GtkWidget *hbox, *label;
4738 PidginChatPane *gtkchat = gtkconv->u.chat; 4738 PidginChatPane *gtkchat = gtkconv->u.chat;
4739 4739
4778 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path)) 4778 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path))
4779 return FALSE; 4779 return FALSE;
4780 4780
4781 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &who, -1); 4781 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &who, -1);
4782 4782
4783 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_account_get_connection(account)->prpl); 4783 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(purple_account_get_connection(account)));
4784 node = (PurpleBlistNode*)(purple_find_buddy(purple_conversation_get_account(conv), who)); 4784 node = (PurpleBlistNode*)(purple_find_buddy(purple_conversation_get_account(conv), who));
4785 if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) 4785 if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME))
4786 pidgin_blist_draw_tooltip(node, gtkconv->infopane); 4786 pidgin_blist_draw_tooltip(node, gtkconv->infopane);
4787 4787
4788 g_free(who); 4788 g_free(who);
5368 PurpleConversation *conv = gtkconv->active_conv; 5368 PurpleConversation *conv = gtkconv->active_conv;
5369 PidginWindow *win = gtkconv->win; 5369 PidginWindow *win = gtkconv->win;
5370 PurpleConversation *c; 5370 PurpleConversation *c;
5371 PurpleAccount *convaccount = purple_conversation_get_account(conv); 5371 PurpleAccount *convaccount = purple_conversation_get_account(conv);
5372 PurpleConnection *gc = purple_account_get_connection(convaccount); 5372 PurpleConnection *gc = purple_account_get_connection(convaccount);
5373 PurplePluginProtocolInfo *prpl_info = gc ? PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl) : NULL; 5373 PurplePluginProtocolInfo *prpl_info = gc ? PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)) : NULL;
5374 5374
5375 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE)) 5375 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE))
5376 { 5376 {
5377 PurpleBlistNode *n = NULL; 5377 PurpleBlistNode *n = NULL;
5378 PurpleBuddy *b; 5378 PurpleBuddy *b;
6863 win = pidgin_conv_get_window(gtkconv); 6863 win = pidgin_conv_get_window(gtkconv);
6864 gc = purple_conversation_get_gc(conv); 6864 gc = purple_conversation_get_gc(conv);
6865 account = purple_conversation_get_account(conv); 6865 account = purple_conversation_get_account(conv);
6866 6866
6867 if (gc != NULL) 6867 if (gc != NULL)
6868 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 6868 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
6869 6869
6870 if (win->menu.send_to != NULL) 6870 if (win->menu.send_to != NULL)
6871 update_send_to_selection(win); 6871 update_send_to_selection(win);
6872 6872
6873 /* 6873 /*
7927 pidgin_conv_update_fields(conv, PIDGIN_CONV_TAB_ICON | 7927 pidgin_conv_update_fields(conv, PIDGIN_CONV_TAB_ICON |
7928 PIDGIN_CONV_MENU | PIDGIN_CONV_COLORIZE_TITLE); 7928 PIDGIN_CONV_MENU | PIDGIN_CONV_COLORIZE_TITLE);
7929 7929
7930 if (PURPLE_CONNECTION_IS_CONNECTED(gc) && 7930 if (PURPLE_CONNECTION_IS_CONNECTED(gc) &&
7931 purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && 7931 purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT &&
7932 purple_conversation_get_account(conv) == gc->account && 7932 purple_conversation_get_account(conv) == purple_connection_get_account(gc) &&
7933 purple_conversation_get_data(conv, "want-to-rejoin")) { 7933 purple_conversation_get_data(conv, "want-to-rejoin")) {
7934 GHashTable *comps = NULL; 7934 GHashTable *comps = NULL;
7935 PurpleChat *chat = purple_blist_find_chat(purple_conversation_get_account(conv), purple_conversation_get_name(conv)); 7935 PurpleChat *chat = purple_blist_find_chat(purple_conversation_get_account(conv), purple_conversation_get_name(conv));
7936 if (chat == NULL) { 7936 if (chat == NULL) {
7937 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) 7937 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
7938 comps = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, purple_conversation_get_name(conv)); 7938
7939 if (prpl_info->chat_info_defaults != NULL)
7940 comps = prpl_info->chat_info_defaults(gc, purple_conversation_get_name(conv));
7939 } else { 7941 } else {
7940 comps = chat->components; 7942 comps = chat->components;
7941 } 7943 }
7942 serv_join_chat(gc, comps); 7944 serv_join_chat(gc, comps);
7943 if (chat == NULL && comps != NULL) 7945 if (chat == NULL && comps != NULL)
9428 PurpleConnection *gc; 9430 PurpleConnection *gc;
9429 PurplePluginProtocolInfo *prpl_info = NULL; 9431 PurplePluginProtocolInfo *prpl_info = NULL;
9430 9432
9431 gc = purple_conversation_get_gc(conv); 9433 gc = purple_conversation_get_gc(conv);
9432 if (gc != NULL) 9434 if (gc != NULL)
9433 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); 9435 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc));
9434 if (prpl_info && prpl_info->set_chat_topic == NULL) 9436 if (prpl_info && prpl_info->set_chat_topic == NULL)
9435 /* This protocol doesn't support setting the chat room topic */ 9437 /* This protocol doesn't support setting the chat room topic */
9436 return FALSE; 9438 return FALSE;
9437 9439
9438 text = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); 9440 text = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv));