Mercurial > pidgin
comparison libpurple/ft.c @ 29801:0db570ed5570
propagate from branch 'im.pidgin.pidgin' (head 0d319bbd23fdd7e6cf2065b21e92612657c6e8cb)
to branch 'im.pidgin.cpw.malu.ft_thumbnails' (head a8e7713b46e016ab9b39700c105307911804119b)
author | Marcus Lundblad <ml@update.uu.se> |
---|---|
date | Thu, 15 Oct 2009 21:25:07 +0000 |
parents | 53aab96e61a9 7763697a85c8 |
children | cb09d358d777 |
comparison
equal
deleted
inserted
replaced
28385:d5ff2cd6064a | 29801:0db570ed5570 |
---|---|
134 g_free(xfer->filename); | 134 g_free(xfer->filename); |
135 g_free(xfer->remote_ip); | 135 g_free(xfer->remote_ip); |
136 g_free(xfer->local_filename); | 136 g_free(xfer->local_filename); |
137 | 137 |
138 g_hash_table_remove(xfers_data, xfer); | 138 g_hash_table_remove(xfers_data, xfer); |
139 g_free(xfer->thumbnail_data); | |
139 | 140 |
140 PURPLE_DBUS_UNREGISTER_POINTER(xfer); | 141 PURPLE_DBUS_UNREGISTER_POINTER(xfer); |
141 xfers = g_list_remove(xfers, xfer); | 142 xfers = g_list_remove(xfers, xfer); |
142 g_free(xfer); | 143 g_free(xfer); |
143 } | 144 } |
396 | 397 |
397 if (xfer->message != NULL) | 398 if (xfer->message != NULL) |
398 serv_got_im(purple_account_get_connection(xfer->account), | 399 serv_got_im(purple_account_get_connection(xfer->account), |
399 xfer->who, xfer->message, 0, time(NULL)); | 400 xfer->who, xfer->message, 0, time(NULL)); |
400 | 401 |
401 purple_request_accept_cancel(xfer, NULL, buf, NULL, | 402 if (purple_xfer_get_thumbnail_data(xfer)) { |
402 PURPLE_DEFAULT_ACTION_NONE, | 403 purple_request_accept_cancel_with_icon(xfer, NULL, buf, NULL, |
403 xfer->account, xfer->who, NULL, | 404 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, |
404 xfer, | 405 purple_xfer_get_thumbnail_data(xfer), |
405 G_CALLBACK(purple_xfer_choose_file), | 406 purple_xfer_get_thumbnail_size(xfer), xfer, |
406 G_CALLBACK(cancel_recv_cb)); | 407 G_CALLBACK(purple_xfer_choose_file), |
407 | 408 G_CALLBACK(cancel_recv_cb)); |
409 } else { | |
410 purple_request_accept_cancel(xfer, NULL, buf, NULL, | |
411 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, | |
412 xfer, G_CALLBACK(purple_xfer_choose_file), | |
413 G_CALLBACK(cancel_recv_cb)); | |
414 } | |
415 | |
408 g_free(buf); | 416 g_free(buf); |
409 } else | 417 } else |
410 purple_xfer_choose_file(xfer); | 418 purple_xfer_choose_file(xfer); |
411 } | 419 } |
412 | 420 |
1457 ui_ops = purple_xfer_get_ui_ops(xfer); | 1465 ui_ops = purple_xfer_get_ui_ops(xfer); |
1458 if (ui_ops != NULL && ui_ops->update_progress != NULL) | 1466 if (ui_ops != NULL && ui_ops->update_progress != NULL) |
1459 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer)); | 1467 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer)); |
1460 } | 1468 } |
1461 | 1469 |
1470 const void * | |
1471 purple_xfer_get_thumbnail_data(const PurpleXfer *xfer) | |
1472 { | |
1473 return xfer->thumbnail_data; | |
1474 } | |
1475 | |
1476 gsize | |
1477 purple_xfer_get_thumbnail_size(const PurpleXfer *xfer) | |
1478 { | |
1479 return xfer->thumbnail_size; | |
1480 } | |
1481 | |
1482 void | |
1483 purple_xfer_set_thumbnail(PurpleXfer *xfer, gconstpointer thumbnail, | |
1484 gsize size) | |
1485 { | |
1486 if (thumbnail && size > 0) { | |
1487 xfer->thumbnail_data = g_memdup(thumbnail, size); | |
1488 xfer->thumbnail_size = size; | |
1489 } | |
1490 } | |
1491 | |
1492 void | |
1493 purple_xfer_prepare_thumbnail(PurpleXfer *xfer) | |
1494 { | |
1495 if (xfer->ui_ops->add_thumbnail) { | |
1496 xfer->ui_ops->add_thumbnail(xfer); | |
1497 } | |
1498 } | |
1462 | 1499 |
1463 /************************************************************************** | 1500 /************************************************************************** |
1464 * File Transfer Subsystem API | 1501 * File Transfer Subsystem API |
1465 **************************************************************************/ | 1502 **************************************************************************/ |
1466 void * | 1503 void * |