comparison finch/gntrequest.c @ 30909:25e200cb3532

propagate from branch 'im.pidgin.pidgin' (head dca20e09164518b0f7a773edd7e9649f41d8873d) to branch 'im.pidgin.cpw.malu.xmpp.google_refactor' (head 7823c556f2d1bbca43f5ef9f0fea30cabc5d313f)
author Marcus Lundblad <ml@update.uu.se>
date Tue, 31 Aug 2010 18:28:10 +0000
parents b258ffa87424
children a8cc50c2279f
comparison
equal deleted inserted replaced
30908:c44ec533a48c 30909:25e200cb3532
347 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo))); 347 id = GPOINTER_TO_INT(gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)));
348 purple_request_field_choice_set_value(field, id); 348 purple_request_field_choice_set_value(field, id);
349 } 349 }
350 else if (type == PURPLE_REQUEST_FIELD_LIST) 350 else if (type == PURPLE_REQUEST_FIELD_LIST)
351 { 351 {
352 GList *list = NULL; 352 GList *list = NULL, *iter;
353 if (purple_request_field_list_get_multi_select(field)) 353 if (purple_request_field_list_get_multi_select(field))
354 { 354 {
355 GList *iter;
356 GntWidget *tree = FINCH_GET_DATA(field); 355 GntWidget *tree = FINCH_GET_DATA(field);
357 356
358 iter = purple_request_field_list_get_items(field); 357 iter = purple_request_field_list_get_items(field);
359 for (; iter; iter = iter->next) 358 for (; iter; iter = iter->next)
360 { 359 {
361 const char *text = iter->data; 360 const char *text = iter->data;
362 gpointer key = purple_request_field_list_get_data(field, text); 361 gpointer key = purple_request_field_list_get_data(field, text);
363 if (gnt_tree_get_choice(GNT_TREE(tree), key)) 362 if (gnt_tree_get_choice(GNT_TREE(tree), key))
364 list = g_list_prepend(list, key); 363 list = g_list_prepend(list, (gpointer)text);
365 } 364 }
366 } 365 }
367 else 366 else
368 { 367 {
369 GntWidget *combo = FINCH_GET_DATA(field); 368 GntWidget *combo = FINCH_GET_DATA(field);
370 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); 369 gpointer data = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo));
371 list = g_list_append(list, data); 370
371 iter = purple_request_field_list_get_items(field);
372 for (; iter; iter = iter->next) {
373 const char *text = iter->data;
374 gpointer key = purple_request_field_list_get_data(field, text);
375 if (key == data) {
376 list = g_list_prepend(list, (gpointer)text);
377 break;
378 }
379 }
372 } 380 }
373 381
374 purple_request_field_list_set_selected(field, list); 382 purple_request_field_list_set_selected(field, list);
375 g_list_free(list); 383 g_list_free(list);
376 } 384 }
813 { 821 {
814 GList *list; 822 GList *list;
815 for (list = purple_request_fields_get_groups(allfields); list; list = list->next) { 823 for (list = purple_request_fields_get_groups(allfields); list; list = list->next) {
816 PurpleRequestFieldGroup *group = list->data; 824 PurpleRequestFieldGroup *group = list->data;
817 GList *fields = purple_request_field_group_get_fields(group); 825 GList *fields = purple_request_field_group_get_fields(group);
818 826
819 for (; fields ; fields = fields->next) { 827 for (; fields ; fields = fields->next) {
820 PurpleRequestField *field = fields->data; 828 PurpleRequestField *field = fields->data;
821 PurpleRequestFieldType type = purple_request_field_get_type(field); 829 PurpleRequestFieldType type = purple_request_field_get_type(field);
822 PurplePrefType pt; 830 PurplePrefType pt;
823 gpointer val = NULL; 831 gpointer val = NULL;
824 const char *id = purple_request_field_get_id(field); 832 const char *id = purple_request_field_get_id(field);
825 833
826 switch (type) { 834 switch (type) {
827 case PURPLE_REQUEST_FIELD_LIST: 835 case PURPLE_REQUEST_FIELD_LIST:
828 val = purple_request_field_list_get_selected(field)->data; 836 val = purple_request_field_list_get_selected(field)->data;
837 val = purple_request_field_list_get_data(field, val);
829 break; 838 break;
830 case PURPLE_REQUEST_FIELD_BOOLEAN: 839 case PURPLE_REQUEST_FIELD_BOOLEAN:
831 val = GINT_TO_POINTER(purple_request_field_bool_get_value(field)); 840 val = GINT_TO_POINTER(purple_request_field_bool_get_value(field));
832 break; 841 break;
833 case PURPLE_REQUEST_FIELD_INTEGER: 842 case PURPLE_REQUEST_FIELD_INTEGER: