summaryrefslogtreecommitdiff
path: root/libpurple/conversations.c
diff options
context:
space:
mode:
authorAnkit Vani <a@nevitus.org>2013-06-26 16:33:01 +0530
committerAnkit Vani <a@nevitus.org>2013-06-26 16:33:01 +0530
commit4890592cb34d0ef02c191aa3e85b3c27216cd73b (patch)
tree4db412aeacf091c9c21ab2d654c6e98edc27c088 /libpurple/conversations.c
parentbb3b5ae53f63f5439aaca480436c673cdb3c4268 (diff)
downloadpidgin-4890592cb34d0ef02c191aa3e85b3c27216cd73b.tar.gz
Refactored PurpleConversation base object to use the GObject conversation API
Diffstat (limited to 'libpurple/conversations.c')
-rw-r--r--libpurple/conversations.c47
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)
{