| 28 #include "debug.h" |
28 #include "debug.h" |
| 29 #include "network.h" |
29 #include "network.h" |
| 30 #include "notify.h" |
30 #include "notify.h" |
| 31 #include "prefs.h" |
31 #include "prefs.h" |
| 32 #include "purpleaccountpresence.h" |
32 #include "purpleaccountpresence.h" |
| |
33 #include "purpleconversationmanager.h" |
| 33 #include "purplecredentialmanager.h" |
34 #include "purplecredentialmanager.h" |
| 34 #include "purpleprivate.h" |
35 #include "purpleprivate.h" |
| 35 #include "purpleprotocolclient.h" |
36 #include "purpleprotocolclient.h" |
| 36 #include "purpleprotocolmanager.h" |
37 #include "purpleprotocolmanager.h" |
| 37 #include "purpleprotocolserver.h" |
38 #include "purpleprotocolserver.h" |
| 1049 purple_account_finalize(GObject *object) |
1050 purple_account_finalize(GObject *object) |
| 1050 { |
1051 { |
| 1051 GList *l; |
1052 GList *l; |
| 1052 PurpleAccount *account = PURPLE_ACCOUNT(object); |
1053 PurpleAccount *account = PURPLE_ACCOUNT(object); |
| 1053 PurpleAccountPrivate *priv = purple_account_get_instance_private(account); |
1054 PurpleAccountPrivate *priv = purple_account_get_instance_private(account); |
| |
1055 PurpleConversationManager *manager = NULL; |
| 1054 |
1056 |
| 1055 purple_debug_info("account", "Destroying account %p\n", account); |
1057 purple_debug_info("account", "Destroying account %p\n", account); |
| 1056 purple_signal_emit(purple_accounts_get_handle(), "account-destroying", |
1058 purple_signal_emit(purple_accounts_get_handle(), "account-destroying", |
| 1057 account); |
1059 account); |
| 1058 |
1060 |
| 1059 for (l = purple_conversations_get_all(); l != NULL; l = l->next) |
1061 manager = purple_conversation_manager_get_default(); |
| 1060 { |
1062 l = purple_conversation_manager_get_all(manager); |
| 1061 PurpleConversation *conv = (PurpleConversation *)l->data; |
1063 while(l != NULL) { |
| 1062 |
1064 PurpleConversation *conv = PURPLE_CONVERSATION(l->data); |
| 1063 if (purple_conversation_get_account(conv) == account) |
1065 |
| |
1066 if (purple_conversation_get_account(conv) == account) { |
| 1064 purple_conversation_set_account(conv, NULL); |
1067 purple_conversation_set_account(conv, NULL); |
| |
1068 } |
| |
1069 |
| |
1070 l = g_list_delete_link(l, l); |
| 1065 } |
1071 } |
| 1066 |
1072 |
| 1067 purple_account_set_status_types(account, NULL); |
1073 purple_account_set_status_types(account, NULL); |
| 1068 |
1074 |
| 1069 if (priv->proxy_info) |
1075 if (priv->proxy_info) |