Mercurial > pidgin
changeset 16497:1d1ddf972ac8
Ref the filenames for account buddy icons on load.
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Fri, 27 Apr 2007 04:28:41 +0000 |
parents | 3ef6a81a9fba |
children | d6b81413ef79 |
files | libpurple/account.c libpurple/buddyicon.c libpurple/internal.h |
diffstat | 3 files changed, 31 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/account.c Fri Apr 27 04:18:02 2007 +0000 +++ b/libpurple/account.c Fri Apr 27 04:28:41 2007 +0000 @@ -792,6 +792,8 @@ } xmlnode_free(node); + + purple_buddy_icons_account_loaded_cb(); }
--- a/libpurple/buddyicon.c Fri Apr 27 04:18:02 2007 +0000 +++ b/libpurple/buddyicon.c Fri Apr 27 04:28:41 2007 +0000 @@ -960,6 +960,30 @@ } void +purple_buddy_icons_account_loaded_cb() +{ + GList *cur; + + for (cur = purple_accounts_get_all(); cur != NULL; cur = cur->next) + { + PurpleAccount *account = cur->data; + const char *account_icon_file = purple_account_get_string(account, "buddy_icon", NULL); + + if (account_icon_file != NULL) + { + char *path = g_build_filename(dirname, filename, NULL); + if (!g_file_test(filename, G_FILE_TEST_EXISTS)) + { + purple_account_set_string(account, "buddy_icon", NULL); + } else { + ref_filename(account_icon_file); + } + g_free(path); + } + } +} + +void purple_buddy_icons_blist_loaded_cb() { PurpleBlistNode *node = purple_blist_get_root();
--- a/libpurple/internal.h Fri Apr 27 04:18:02 2007 +0000 +++ b/libpurple/internal.h Fri Apr 27 04:28:41 2007 +0000 @@ -184,6 +184,11 @@ #define PURPLE_WEBSITE "http://pidgin.im/" +/* This is for the accounts code to notify the buddy icon code that + * it's done loading. We may want to replace this with a signal. */ +void +purple_buddy_icons_account_loaded_cb(void); + /* This is for the buddy list to notify the buddy icon code that * it's done loading. We may want to replace this with a signal. */ void