finch/gntrequest.c

changeset 42134
1b5ce0f4302d
parent 42128
118067ca0367
child 42135
1a89a067a0d5
equal deleted inserted replaced
42133:e9a794bfe183 42134:1b5ce0f4302d
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

mercurial