comparison libpurple/ft.c @ 29835:afc9cec164e4

Rename purple_xfer_get_thumbnail_data/size to be more D-Bus friendly.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sun, 25 Apr 2010 21:09:34 +0000
parents 834038426c38
children ce52e101844a
comparison
equal deleted inserted replaced
29834:905e291986bc 29835:afc9cec164e4
279 const char *message, gboolean is_error, gboolean print_thumbnail) 279 const char *message, gboolean is_error, gboolean print_thumbnail)
280 { 280 {
281 PurpleConversation *conv = NULL; 281 PurpleConversation *conv = NULL;
282 PurpleMessageFlags flags = PURPLE_MESSAGE_SYSTEM; 282 PurpleMessageFlags flags = PURPLE_MESSAGE_SYSTEM;
283 char *escaped; 283 char *escaped;
284 gconstpointer thumbnail_data = purple_xfer_get_thumbnail_data(xfer); 284 gconstpointer thumbnail_data;
285 gsize size;
285 286
286 g_return_if_fail(xfer != NULL); 287 g_return_if_fail(xfer != NULL);
287 g_return_if_fail(message != NULL); 288 g_return_if_fail(message != NULL);
289
290 thumbnail_data = purple_xfer_get_thumbnail(xfer, &size);
288 291
289 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who, 292 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who,
290 purple_xfer_get_account(xfer)); 293 purple_xfer_get_account(xfer));
291 294
292 if (conv == NULL) 295 if (conv == NULL)
297 if (is_error) 300 if (is_error)
298 flags |= PURPLE_MESSAGE_ERROR; 301 flags |= PURPLE_MESSAGE_ERROR;
299 302
300 if (print_thumbnail && thumbnail_data) { 303 if (print_thumbnail && thumbnail_data) {
301 gchar *message_with_img; 304 gchar *message_with_img;
302 gsize size = purple_xfer_get_thumbnail_size(xfer);
303 gpointer data = g_memdup(thumbnail_data, size); 305 gpointer data = g_memdup(thumbnail_data, size);
304 int id = purple_imgstore_add_with_id(data, size, NULL); 306 int id = purple_imgstore_add_with_id(data, size, NULL);
305 307
306 message_with_img = 308 message_with_img =
307 g_strdup_printf("<img id='%d'> %s", id, escaped); 309 g_strdup_printf("<img id='%d'> %s", id, escaped);
487 static void 489 static void
488 purple_xfer_ask_recv(PurpleXfer *xfer) 490 purple_xfer_ask_recv(PurpleXfer *xfer)
489 { 491 {
490 char *buf, *size_buf; 492 char *buf, *size_buf;
491 size_t size; 493 size_t size;
494 gconstpointer thumb;
495 gsize thumb_size;
492 496
493 /* If we have already accepted the request, ask the destination file 497 /* If we have already accepted the request, ask the destination file
494 name directly */ 498 name directly */
495 if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_ACCEPTED) { 499 if (purple_xfer_get_status(xfer) != PURPLE_XFER_STATUS_ACCEPTED) {
496 PurpleBuddy *buddy = purple_find_buddy(xfer->account, xfer->who); 500 PurpleBuddy *buddy = purple_find_buddy(xfer->account, xfer->who);
512 516
513 if (xfer->message != NULL) 517 if (xfer->message != NULL)
514 serv_got_im(purple_account_get_connection(xfer->account), 518 serv_got_im(purple_account_get_connection(xfer->account),
515 xfer->who, xfer->message, 0, time(NULL)); 519 xfer->who, xfer->message, 0, time(NULL));
516 520
517 if (purple_xfer_get_thumbnail_data(xfer)) { 521 if ((thumb = purple_xfer_get_thumbnail(xfer, &thumb_size))) {
518 purple_request_accept_cancel_with_icon(xfer, NULL, buf, NULL, 522 purple_request_accept_cancel_with_icon(xfer, NULL, buf, NULL,
519 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, 523 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL,
520 purple_xfer_get_thumbnail_data(xfer), 524 thumb, thumb_size, xfer,
521 purple_xfer_get_thumbnail_size(xfer), xfer,
522 G_CALLBACK(purple_xfer_choose_file), 525 G_CALLBACK(purple_xfer_choose_file),
523 G_CALLBACK(cancel_recv_cb)); 526 G_CALLBACK(cancel_recv_cb));
524 } else { 527 } else {
525 purple_request_accept_cancel(xfer, NULL, buf, NULL, 528 purple_request_accept_cancel(xfer, NULL, buf, NULL,
526 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, 529 PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL,
1628 ui_ops = purple_xfer_get_ui_ops(xfer); 1631 ui_ops = purple_xfer_get_ui_ops(xfer);
1629 if (ui_ops != NULL && ui_ops->update_progress != NULL) 1632 if (ui_ops != NULL && ui_ops->update_progress != NULL)
1630 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer)); 1633 ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer));
1631 } 1634 }
1632 1635
1633 const void * 1636 gconstpointer
1634 purple_xfer_get_thumbnail_data(const PurpleXfer *xfer) 1637 purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len)
1635 { 1638 {
1636 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); 1639 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
1637 1640
1641 if (len)
1642 *len = priv->thumbnail_size;
1643
1638 return priv->thumbnail_data; 1644 return priv->thumbnail_data;
1639 }
1640
1641 gsize
1642 purple_xfer_get_thumbnail_size(const PurpleXfer *xfer)
1643 {
1644 PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer);
1645
1646 return priv->thumbnail_size;
1647 } 1645 }
1648 1646
1649 const gchar * 1647 const gchar *
1650 purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer) 1648 purple_xfer_get_thumbnail_mimetype(const PurpleXfer *xfer)
1651 { 1649 {