diff options
author | Ankit Vani <a@nevitus.org> | 2013-06-26 16:33:01 +0530 |
---|---|---|
committer | Ankit Vani <a@nevitus.org> | 2013-06-26 16:33:01 +0530 |
commit | 4890592cb34d0ef02c191aa3e85b3c27216cd73b (patch) | |
tree | 4db412aeacf091c9c21ab2d654c6e98edc27c088 /libpurple/conversations.c | |
parent | bb3b5ae53f63f5439aaca480436c673cdb3c4268 (diff) | |
download | pidgin-4890592cb34d0ef02c191aa3e85b3c27216cd73b.tar.gz |
Refactored PurpleConversation base object to use the GObject conversation API
Diffstat (limited to 'libpurple/conversations.c')
-rw-r--r-- | libpurple/conversations.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/libpurple/conversations.c b/libpurple/conversations.c index 50a77935c6..bd6814b6ab 100644 --- a/libpurple/conversations.c +++ b/libpurple/conversations.c @@ -132,6 +132,53 @@ purple_conversations_remove(PurpleConversation *conv) g_hash_table_remove(conversation_cache, &hc); } +void +purple_conversations_update_cache_name(PurpleConversation *conv, + const char *name) +{ + PurpleAccount *account; + struct _purple_hconv *hc; + + g_return_if_fail(conv != NULL); + + account = purple_conversation_get_account(conv); + + hc = g_new(struct _purple_hconv, 1); + hc->im = PURPLE_IS_IM_CONVERSATION(im); + hc->account = account; + hc->name = (gchar *)purple_normalize(account, + purple_conversation_get_name(conv)); + + g_hash_table_remove(conversation_cache, hc); + + hc->name = g_strdup(purple_normalize(account, name)); + g_hash_table_insert(conversation_cache, hc, conv); +} + +void +purple_conversations_update_cache_account(PurpleConversation *conv, + PurpleAccount *account) +{ + PurpleAccount *old_account; + struct _purple_hconv *hc; + + g_return_if_fail(conv != NULL); + g_return_if_fail(account != NULL); + + old_account = purple_conversation_get_account(conv); + + hc = g_new(struct _purple_hconv, 1); + hc->im = PURPLE_IS_IM_CONVERSATION(im); + hc->account = old_account; + hc->name = (gchar *)purple_normalize(old_account, + purple_conversation_get_name(conv)); + + g_hash_table_remove(conversation_cache, hc); + + hc->account = account; + g_hash_table_insert(conversation_cache, hc, conv); +} + GList * purple_conversations_get(void) { |