Mercurial > pidgin
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 { |