pidgin/gtkstatusbox.c

branch
soc.2013.gobjectification.plugins
changeset 36544
1bf8b6ef5aea
parent 36459
b52f5391d12d
child 36545
23b59a16c808
equal deleted inserted replaced
36543:a8c3fecee2d3 36544:1bf8b6ef5aea
492 492
493 switch (param_id) { 493 switch (param_id) {
494 case PROP_ICON_SEL: 494 case PROP_ICON_SEL:
495 if (g_value_get_boolean(value)) { 495 if (g_value_get_boolean(value)) {
496 if (statusbox->account) { 496 if (statusbox->account) {
497 PurplePluginProtocolInfo *prpl_info = 497 PurpleProtocol *protocol =
498 purple_find_protocol_info(purple_account_get_protocol_id(statusbox->account)); 498 purple_find_protocol_info(purple_account_get_protocol_id(statusbox->account));
499 if (prpl_info && prpl_info->icon_spec.format != NULL) 499 if (protocol && protocol->icon_spec.format != NULL)
500 setup_icon_box(statusbox); 500 setup_icon_box(statusbox);
501 } else { 501 } else {
502 setup_icon_box(statusbox); 502 setup_icon_box(statusbox);
503 } 503 }
504 } else { 504 } else {
1448 buddy_icon_set_cb(const char *filename, PidginStatusBox *box) 1448 buddy_icon_set_cb(const char *filename, PidginStatusBox *box)
1449 { 1449 {
1450 PurpleStoredImage *img = NULL; 1450 PurpleStoredImage *img = NULL;
1451 1451
1452 if (box->account) { 1452 if (box->account) {
1453 PurplePluginProtocolInfo *prpl_info = 1453 PurpleProtocol *protocol =
1454 purple_find_protocol_info(purple_account_get_protocol_id(box->account)); 1454 purple_find_protocol_info(purple_account_get_protocol_id(box->account));
1455 if (prpl_info && prpl_info->icon_spec.format) { 1455 if (protocol && protocol->icon_spec.format) {
1456 gpointer data = NULL; 1456 gpointer data = NULL;
1457 size_t len = 0; 1457 size_t len = 0;
1458 if (filename) 1458 if (filename)
1459 data = pidgin_convert_buddy_icon(prpl_info, filename, &len); 1459 data = pidgin_convert_buddy_icon(protocol, filename, &len);
1460 img = purple_buddy_icons_set_account_icon(box->account, data, len); 1460 img = purple_buddy_icons_set_account_icon(box->account, data, len);
1461 if (img) 1461 if (img)
1462 /* 1462 /*
1463 * set_account_icon doesn't give us a reference, but we 1463 * set_account_icon doesn't give us a reference, but we
1464 * unref one below (for the other code path) 1464 * unref one below (for the other code path)
1471 } 1471 }
1472 } else { 1472 } else {
1473 GList *accounts; 1473 GList *accounts;
1474 for (accounts = purple_accounts_get_all(); accounts != NULL; accounts = accounts->next) { 1474 for (accounts = purple_accounts_get_all(); accounts != NULL; accounts = accounts->next) {
1475 PurpleAccount *account = accounts->data; 1475 PurpleAccount *account = accounts->data;
1476 PurplePluginProtocolInfo *prpl_info = 1476 PurpleProtocol *protocol =
1477 purple_find_protocol_info(purple_account_get_protocol_id(account)); 1477 purple_find_protocol_info(purple_account_get_protocol_id(account));
1478 if (prpl_info != NULL && 1478 if (protocol != NULL &&
1479 purple_account_get_bool(account, "use-global-buddyicon", TRUE) && 1479 purple_account_get_bool(account, "use-global-buddyicon", TRUE) &&
1480 prpl_info->icon_spec.format) { 1480 protocol->icon_spec.format) {
1481 gpointer data = NULL; 1481 gpointer data = NULL;
1482 size_t len = 0; 1482 size_t len = 0;
1483 if (filename) 1483 if (filename)
1484 data = pidgin_convert_buddy_icon(prpl_info, filename, &len); 1484 data = pidgin_convert_buddy_icon(protocol, filename, &len);
1485 purple_buddy_icons_set_account_icon(account, data, len); 1485 purple_buddy_icons_set_account_icon(account, data, len);
1486 purple_account_set_buddy_icon_path(account, filename); 1486 purple_account_set_buddy_icon_path(account, filename);
1487 } 1487 }
1488 } 1488 }
1489 1489

mercurial