libpurple/protocols/qq/buddy_info.c

branch
openq
changeset 31112
9022a48eb75c
parent 27865
f80c375ba798
parent 30706
612b36b49058
child 31393
04447b1f6403
equal deleted inserted replaced
29195:60308d3345ec 31112:9022a48eb75c
223 } 223 }
224 224
225 void qq_request_buddy_info(PurpleConnection *gc, guint32 uid, 225 void qq_request_buddy_info(PurpleConnection *gc, guint32 uid,
226 guint32 update_class, int action) 226 guint32 update_class, int action)
227 { 227 {
228 qq_data *qd;
229 gchar raw_data[16] = {0}; 228 gchar raw_data[16] = {0};
230 229
231 g_return_if_fail(uid != 0); 230 g_return_if_fail(uid != 0);
232 231
233 qd = (qq_data *) gc->proto_data;
234 g_snprintf(raw_data, sizeof(raw_data), "%u", uid); 232 g_snprintf(raw_data, sizeof(raw_data), "%u", uid);
235 qq_send_cmd_mess(gc, QQ_CMD_GET_BUDDY_INFO, (guint8 *) raw_data, strlen(raw_data), 233 qq_send_cmd_mess(gc, QQ_CMD_GET_BUDDY_INFO, (guint8 *) raw_data, strlen(raw_data),
236 update_class, action); 234 update_class, action);
237 } 235 }
238 236
270 268
271 /* parse fields and send info packet */ 269 /* parse fields and send info packet */
272 static void info_modify_ok_cb(modify_info_request *info_request, PurpleRequestFields *fields) 270 static void info_modify_ok_cb(modify_info_request *info_request, PurpleRequestFields *fields)
273 { 271 {
274 PurpleConnection *gc; 272 PurpleConnection *gc;
275 qq_data *qd;
276 gchar **segments; 273 gchar **segments;
277 int index; 274 int index;
278 const char *utf8_str; 275 const char *utf8_str;
279 gchar *value; 276 gchar *value;
280 int choice_num; 277 int choice_num;
281 278
282 gc = info_request->gc; 279 gc = info_request->gc;
283 g_return_if_fail(gc != NULL && info_request->gc); 280 g_return_if_fail(gc != NULL);
284 qd = (qq_data *) gc->proto_data;
285 segments = info_request->segments; 281 segments = info_request->segments;
286 g_return_if_fail(segments != NULL); 282 g_return_if_fail(segments != NULL);
287 283
288 for (index = 1; segments[index] != NULL && index < QQ_INFO_LAST; index++) { 284 for (index = 1; segments[index] != NULL && index < QQ_INFO_LAST; index++) {
289 if (field_infos[index].iclass == QQ_FIELD_UNUSED) { 285 if (field_infos[index].iclass == QQ_FIELD_UNUSED) {
389 } 385 }
390 } 386 }
391 387
392 static void info_modify_dialogue(PurpleConnection *gc, gchar **segments, int iclass) 388 static void info_modify_dialogue(PurpleConnection *gc, gchar **segments, int iclass)
393 { 389 {
394 qq_data *qd;
395 PurpleRequestFieldGroup *group; 390 PurpleRequestFieldGroup *group;
396 PurpleRequestFields *fields; 391 PurpleRequestFields *fields;
397 modify_info_request *info_request; 392 modify_info_request *info_request;
398 gchar *utf8_title, *utf8_prim; 393 gchar *utf8_title, *utf8_prim;
399 int index; 394 int index;
400 395
401 qd = (qq_data *) gc->proto_data;
402 /* Keep one dialog once a time */ 396 /* Keep one dialog once a time */
403 purple_request_close_with_handle(gc); 397 purple_request_close_with_handle(gc);
404 398
405 fields = purple_request_fields_new(); 399 fields = purple_request_fields_new();
406 group = purple_request_field_group_new(NULL); 400 group = purple_request_field_group_new(NULL);
415 409
416 switch (iclass) { 410 switch (iclass) {
417 case QQ_FIELD_CONTACT: 411 case QQ_FIELD_CONTACT:
418 utf8_title = g_strdup(_("Modify Contact")); 412 utf8_title = g_strdup(_("Modify Contact"));
419 utf8_prim = g_strdup_printf("%s for %s", _("Modify Contact"), segments[0]); 413 utf8_prim = g_strdup_printf("%s for %s", _("Modify Contact"), segments[0]);
414 break;
420 case QQ_FIELD_ADDR: 415 case QQ_FIELD_ADDR:
421 utf8_title = g_strdup(_("Modify Address")); 416 utf8_title = g_strdup(_("Modify Address"));
422 utf8_prim = g_strdup_printf("%s for %s", _("Modify Address"), segments[0]); 417 utf8_prim = g_strdup_printf("%s for %s", _("Modify Address"), segments[0]);
418 break;
423 case QQ_FIELD_EXT: 419 case QQ_FIELD_EXT:
424 utf8_title = g_strdup(_("Modify Extended Information")); 420 utf8_title = g_strdup(_("Modify Extended Information"));
425 utf8_prim = g_strdup_printf("%s for %s", _("Modify Extended Information"), segments[0]); 421 utf8_prim = g_strdup_printf("%s for %s", _("Modify Extended Information"), segments[0]);
426 break; 422 break;
427 case QQ_FIELD_BASE: 423 case QQ_FIELD_BASE:
428 default: 424 default:
429 utf8_title = g_strdup(_("Modify Information")); 425 utf8_title = g_strdup(_("Modify Information"));
430 utf8_prim = g_strdup_printf("%s for %s", _("Modify Information"), segments[0]); 426 utf8_prim = g_strdup_printf("%s for %s", _("Modify Information"), segments[0]);
427 break;
431 } 428 }
432 429
433 info_request = g_new0(modify_info_request, 1); 430 info_request = g_new0(modify_info_request, 1);
434 info_request->gc = gc; 431 info_request->gc = gc;
435 info_request->iclass = iclass; 432 info_request->iclass = iclass;

mercurial