| 358 } |
358 } |
| 359 } |
359 } |
| 360 |
360 |
| 361 purple_request_field_list_set_selected(field, selected); |
361 purple_request_field_list_set_selected(field, selected); |
| 362 g_list_free(selected); |
362 g_list_free(selected); |
| 363 } |
363 |
| 364 else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) |
364 } else if (PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { |
| 365 { |
365 GntWidget *combo = NULL; |
| 366 GntWidget *combo = g_object_get_data(G_OBJECT(field), "finch-ui-data"); |
366 PurpleAccount *acc = NULL; |
| 367 PurpleAccount *acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); |
367 PurpleRequestFieldAccount *afield = NULL; |
| 368 purple_request_field_account_set_value(field, acc); |
368 |
| |
369 combo = g_object_get_data(G_OBJECT(field), "finch-ui-data"); |
| |
370 acc = gnt_combo_box_get_selected_data(GNT_COMBO_BOX(combo)); |
| |
371 afield = PURPLE_REQUEST_FIELD_ACCOUNT(field); |
| |
372 purple_request_field_account_set_value(afield, acc); |
| 369 } |
373 } |
| 370 } |
374 } |
| 371 } |
375 } |
| 372 |
376 |
| 373 purple_notify_close_with_handle(button); |
377 purple_notify_close_with_handle(button); |
| 527 } |
531 } |
| 528 |
532 |
| 529 static GntWidget* |
533 static GntWidget* |
| 530 create_account_field(PurpleRequestField *field) |
534 create_account_field(PurpleRequestField *field) |
| 531 { |
535 { |
| |
536 PurpleRequestFieldAccount *afield = PURPLE_REQUEST_FIELD_ACCOUNT(field); |
| 532 gboolean all; |
537 gboolean all; |
| 533 PurpleAccount *def; |
538 PurpleAccount *def; |
| 534 GntWidget *combo = gnt_combo_box_new(); |
539 GntWidget *combo = gnt_combo_box_new(); |
| 535 |
540 |
| 536 all = purple_request_field_account_get_show_all(field); |
541 all = purple_request_field_account_get_show_all(afield); |
| 537 def = purple_request_field_account_get_value(field); |
542 def = purple_request_field_account_get_value(afield); |
| 538 if (!def) { |
543 if(!PURPLE_IS_ACCOUNT(def)) { |
| 539 def = purple_request_field_account_get_default_value(field); |
544 def = purple_request_field_account_get_default_value(afield); |
| 540 } |
545 } |
| 541 |
546 |
| 542 if(all) { |
547 if(all) { |
| 543 GListModel *manager_model = NULL; |
548 GListModel *manager_model = NULL; |
| 544 guint n_items = 0; |
549 guint n_items = 0; |
| 660 widget = create_integer_field(field); |
665 widget = create_integer_field(field); |
| 661 } else if (type == PURPLE_REQUEST_FIELD_CHOICE) { |
666 } else if (type == PURPLE_REQUEST_FIELD_CHOICE) { |
| 662 widget = create_choice_field(field); |
667 widget = create_choice_field(field); |
| 663 } else if (type == PURPLE_REQUEST_FIELD_LIST) { |
668 } else if (type == PURPLE_REQUEST_FIELD_LIST) { |
| 664 widget = create_list_field(field); |
669 widget = create_list_field(field); |
| 665 } else if (type == PURPLE_REQUEST_FIELD_ACCOUNT) { |
670 } else if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { |
| 666 accountlist = create_account_field(field); |
671 accountlist = create_account_field(field); |
| 667 widget = accountlist; |
672 widget = accountlist; |
| 668 } else { |
673 } else { |
| 669 widget = gnt_label_new_with_format(_("Not implemented yet."), |
674 widget = gnt_label_new_with_format(_("Not implemented yet."), |
| 670 GNT_TEXT_FLAG_BOLD); |
675 GNT_TEXT_FLAG_BOLD); |
| 910 } |
915 } |
| 911 |
916 |
| 912 GntWidget *finch_request_field_get_widget(PurpleRequestField *field) |
917 GntWidget *finch_request_field_get_widget(PurpleRequestField *field) |
| 913 { |
918 { |
| 914 GntWidget *ret = NULL; |
919 GntWidget *ret = NULL; |
| |
920 if(PURPLE_IS_REQUEST_FIELD_ACCOUNT(field)) { |
| |
921 ret = create_account_field(field); |
| |
922 } else { |
| 915 switch (purple_request_field_get_field_type(field)) { |
923 switch (purple_request_field_get_field_type(field)) { |
| 916 case PURPLE_REQUEST_FIELD_BOOLEAN: |
924 case PURPLE_REQUEST_FIELD_BOOLEAN: |
| 917 ret = create_boolean_field(field); |
925 ret = create_boolean_field(field); |
| 918 break; |
926 break; |
| 919 case PURPLE_REQUEST_FIELD_STRING: |
927 case PURPLE_REQUEST_FIELD_STRING: |
| 926 ret = create_choice_field(field); |
934 ret = create_choice_field(field); |
| 927 break; |
935 break; |
| 928 case PURPLE_REQUEST_FIELD_LIST: |
936 case PURPLE_REQUEST_FIELD_LIST: |
| 929 ret = create_list_field(field); |
937 ret = create_list_field(field); |
| 930 break; |
938 break; |
| 931 case PURPLE_REQUEST_FIELD_ACCOUNT: |
|
| 932 ret = create_account_field(field); |
|
| 933 break; |
|
| 934 default: |
939 default: |
| 935 purple_debug_error("GntRequest", "Unimplemented request-field %d\n", |
940 purple_debug_error("GntRequest", "Unimplemented request-field %d\n", |
| 936 purple_request_field_get_field_type(field)); |
941 purple_request_field_get_field_type(field)); |
| 937 break; |
942 break; |
| 938 } |
943 } |
| |
944 } |
| 939 return ret; |
945 return ret; |
| 940 } |
946 } |
| 941 |
947 |