| 93 |
94 |
| 94 account = gaim_buddy_icon_get_account(icon); |
95 account = gaim_buddy_icon_get_account(icon); |
| 95 username = gaim_buddy_icon_get_username(icon); |
96 username = gaim_buddy_icon_get_username(icon); |
| 96 |
97 |
| 97 conv = gaim_find_conversation_with_account(username, account); |
98 conv = gaim_find_conversation_with_account(username, account); |
| |
99 |
| |
100 for (list = sl = gaim_find_buddies(account, username); sl != NULL; |
| |
101 sl = sl->next) |
| |
102 { |
| |
103 GaimBuddy *buddy = (GaimBuddy *)sl->data; |
| |
104 |
| |
105 gaim_buddy_set_icon(buddy, NULL); |
| |
106 } |
| |
107 |
| |
108 g_slist_free(list); |
| 98 |
109 |
| 99 if (conv != NULL && gaim_conversation_get_type(conv) == GAIM_CONV_IM) |
110 if (conv != NULL && gaim_conversation_get_type(conv) == GAIM_CONV_IM) |
| 100 gaim_conv_im_set_icon(GAIM_CONV_IM(conv), NULL); |
111 gaim_conv_im_set_icon(GAIM_CONV_IM(conv), NULL); |
| 101 |
112 |
| 102 icon_cache = g_hash_table_lookup(account_cache, |
113 icon_cache = g_hash_table_lookup(account_cache, |
| 155 g_return_if_fail(icon != NULL); |
166 g_return_if_fail(icon != NULL); |
| 156 |
167 |
| 157 account = gaim_buddy_icon_get_account(icon); |
168 account = gaim_buddy_icon_get_account(icon); |
| 158 username = gaim_buddy_icon_get_username(icon); |
169 username = gaim_buddy_icon_get_username(icon); |
| 159 |
170 |
| 160 for (list =sl = gaim_find_buddies(account, username); sl != NULL; |
171 for (list = sl = gaim_find_buddies(account, username); sl != NULL; |
| 161 sl = sl->next) |
172 sl = sl->next) |
| 162 { |
173 { |
| 163 GaimBuddy *buddy = (GaimBuddy *)sl->data; |
174 GaimBuddy *buddy = (GaimBuddy *)sl->data; |
| 164 |
175 |
| 165 gaim_buddy_set_icon(buddy, icon); |
176 gaim_buddy_set_icon(buddy, icon); |
| 166 } |
177 } |
| 300 void *icon_data, size_t icon_len) |
311 void *icon_data, size_t icon_len) |
| 301 { |
312 { |
| 302 g_return_if_fail(account != NULL); |
313 g_return_if_fail(account != NULL); |
| 303 g_return_if_fail(username != NULL); |
314 g_return_if_fail(username != NULL); |
| 304 |
315 |
| 305 gaim_buddy_icon_new(account, username, icon_data, icon_len); |
316 if (icon_data == NULL || icon_len == 0) |
| |
317 { |
| |
318 GaimBuddyIcon *buddy_icon; |
| |
319 |
| |
320 buddy_icon = gaim_buddy_icons_find(account, username); |
| |
321 |
| |
322 if (buddy_icon != NULL) |
| |
323 gaim_buddy_icon_destroy(buddy_icon); |
| |
324 } |
| |
325 else |
| |
326 { |
| |
327 gaim_buddy_icon_new(account, username, icon_data, icon_len); |
| |
328 } |
| 306 } |
329 } |
| 307 |
330 |
| 308 GaimBuddyIcon * |
331 GaimBuddyIcon * |
| 309 gaim_buddy_icons_find(const GaimAccount *account, const char *username) |
332 gaim_buddy_icons_find(const GaimAccount *account, const char *username) |
| 310 { |
333 { |