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 *