Mercurial > pidgin.yaz
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: |