| 1514 } |
1514 } |
| 1515 |
1515 |
| 1516 g_free(who); |
1516 g_free(who); |
| 1517 } |
1517 } |
| 1518 |
1518 |
| 1519 static void resource_select_ok_cb(PurpleXfer *xfer, PurpleRequestFields *fields) |
1519 static void |
| 1520 { |
1520 resource_select_ok_cb(PurpleXfer *xfer, PurpleRequestPage *page) |
| 1521 PurpleRequestField *field = purple_request_fields_get_field(fields, "resource"); |
1521 { |
| |
1522 PurpleRequestField *field = purple_request_page_get_field(page, "resource"); |
| 1522 const char *selected_label = purple_request_field_choice_get_value(field); |
1523 const char *selected_label = purple_request_field_choice_get_value(field); |
| 1523 |
1524 |
| 1524 do_transfer_send(xfer, selected_label); |
1525 do_transfer_send(xfer, selected_label); |
| 1525 } |
1526 } |
| 1526 |
1527 |
| 1585 do_transfer_send(xfer, jbr->name); |
1586 do_transfer_send(xfer, jbr->name); |
| 1586 } else { |
1587 } else { |
| 1587 /* we've got multiple resources, we need to pick one to send to */ |
1588 /* we've got multiple resources, we need to pick one to send to */ |
| 1588 GList *l; |
1589 GList *l; |
| 1589 char *msg = g_strdup_printf(_("Please select the resource of %s to which you would like to send a file"), purple_xfer_get_remote_user(xfer)); |
1590 char *msg = g_strdup_printf(_("Please select the resource of %s to which you would like to send a file"), purple_xfer_get_remote_user(xfer)); |
| 1590 PurpleRequestFields *fields = purple_request_fields_new(); |
1591 PurpleRequestPage *page = purple_request_page_new(); |
| 1591 PurpleRequestField *field = purple_request_field_choice_new("resource", _("Resource"), 0); |
1592 PurpleRequestField *field = purple_request_field_choice_new("resource", _("Resource"), 0); |
| 1592 PurpleRequestGroup *group = purple_request_group_new(NULL); |
1593 PurpleRequestGroup *group = purple_request_group_new(NULL); |
| 1593 |
1594 |
| 1594 for(l = resources; l; l = l->next) { |
1595 for(l = resources; l; l = l->next) { |
| 1595 jbr = l->data; |
1596 jbr = l->data; |
| 1596 purple_request_field_choice_add_full(field, jbr->name, g_strdup(jbr->name), g_free); |
1597 purple_request_field_choice_add_full(field, jbr->name, g_strdup(jbr->name), g_free); |
| 1597 } |
1598 } |
| 1598 |
1599 |
| 1599 purple_request_group_add_field(group, field); |
1600 purple_request_group_add_field(group, field); |
| 1600 |
1601 |
| 1601 purple_request_fields_add_group(fields, group); |
1602 purple_request_page_add_group(page, group); |
| 1602 |
1603 |
| 1603 purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, fields, |
1604 purple_request_fields(jsx->js->gc, _("Select a Resource"), msg, NULL, page, |
| 1604 _("Send File"), G_CALLBACK(resource_select_ok_cb), _("Cancel"), G_CALLBACK(resource_select_cancel_cb), |
1605 _("Send File"), G_CALLBACK(resource_select_ok_cb), _("Cancel"), G_CALLBACK(resource_select_cancel_cb), |
| 1605 purple_request_cpar_from_connection(jsx->js->gc), xfer); |
1606 purple_request_cpar_from_connection(jsx->js->gc), xfer); |
| 1606 |
1607 |
| 1607 g_free(msg); |
1608 g_free(msg); |
| 1608 } |
1609 } |