libpurple/protocols/qq/group_conv.c

changeset 24302
0130b3e3ba4c
parent 24299
b3ebedfac7cb
child 24022
d01a6b8ccfad
child 24309
8d52952c9c55
equal deleted inserted replaced
24301:af1ac5f7ced8 24302:0130b3e3ba4c
23 */ 23 */
24 24
25 #include <glib.h> 25 #include <glib.h>
26 #include "qq.h" 26 #include "qq.h"
27 27
28 #include "conversation.h"
29
30 #include "group_conv.h" 28 #include "group_conv.h"
31 #include "buddy_list.h" 29 #include "buddy_list.h"
30 #include "header_info.h"
31 #include "qq_network.h"
32 #include "qq_process.h"
32 #include "utils.h" 33 #include "utils.h"
33 34
34 /* show group conversation window */ 35 /* show group conversation window */
35 void qq_group_conv_show_window(PurpleConnection *gc, qq_group *group) 36 PurpleConversation *qq_room_conv_create(PurpleConnection *gc, qq_group *group)
36 { 37 {
37 PurpleConversation *conv; 38 PurpleConversation *conv;
38 qq_data *qd; 39 qq_data *qd;
39 40
40 g_return_if_fail(group != NULL); 41 g_return_val_if_fail(group != NULL, NULL);
41 qd = (qq_data *) gc->proto_data; 42 qd = (qq_data *) gc->proto_data;
42 43
43 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, 44 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT,
44 group->title_utf8, purple_connection_get_account(gc)); 45 group->title_utf8, purple_connection_get_account(gc));
45 if (conv == NULL) /* show only one window per group */ 46 if (conv != NULL) {
46 serv_got_joined_chat(gc, qd->channel++, group->title_utf8); 47 /* show only one window per group */
48 return conv;
49 }
50
51 serv_got_joined_chat(gc, qd->channel++, group->title_utf8);
52 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT, group->title_utf8, purple_connection_get_account(gc));
53 if (conv != NULL) {
54 purple_conv_chat_set_topic(PURPLE_CONV_CHAT(conv), NULL, group->notice_utf8);
55 /* qq_update_room(gc, 0, group->id); */
56 qq_send_room_cmd_only(gc, QQ_ROOM_CMD_GET_ONLINES, group->id);
57 return conv;
58 }
59 return NULL;
47 } 60 }
48 61
49 /* refresh online member in group conversation window */ 62 /* refresh online member in group conversation window */
50 void qq_group_conv_refresh_online_member(PurpleConnection *gc, qq_group *group) 63 void qq_group_conv_refresh_online_member(PurpleConnection *gc, qq_group *group)
51 { 64 {

mercurial