comparison src/account.c @ 8235:63c7a16a2c09

[gaim-migrate @ 8958] A bunch of minor changes, much of it from Gary Kramlich (amc_grim/xgrimx): gaim-away_do_menu_leak.diff - plugs a memory leak in the do away menu code gaim-gtkpounce_smart_menu.diff - makes the buddy pounce menu only show currently online accounts so that we can edit them. With the current pounce dialog you can only edit pounces for accounts that are online, this stops users from inadvertently change the account for which a pounce belongs. gaim-remove_pouces_with_account.diff - removes pounces for an account when that account is deleted. It adds a function to pounce.[ch]; gaim_pounces_delete_all_from_account, the doxygen help has been added to punce.h so that it will generate it with the rest of the doxygen api. gaim-yahoo_segfault_on_self_pounce.diff - fixes a segfault which occurred with yahoo if you had a pounce set on yourself to message on signon. What was happening was that the display name was being set after the pounces were being executed. This fixes that. committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Thu, 12 Feb 2004 05:26:52 +0000
parents ea3eb461efc0
children f24172f53650
comparison
equal deleted inserted replaced
8234:a2662eb5955b 8235:63c7a16a2c09
24 */ 24 */
25 #include "internal.h" 25 #include "internal.h"
26 #include "account.h" 26 #include "account.h"
27 #include "debug.h" 27 #include "debug.h"
28 #include "notify.h" 28 #include "notify.h"
29 #include "pounce.h"
29 #include "prefs.h" 30 #include "prefs.h"
30 #include "prpl.h" 31 #include "prpl.h"
31 #include "request.h" 32 #include "request.h"
32 #include "signals.h" 33 #include "signals.h"
33 #include "server.h" 34 #include "server.h"
1441 1442
1442 g_return_if_fail(account != NULL); 1443 g_return_if_fail(account != NULL);
1443 1444
1444 gaim_accounts_remove(account); 1445 gaim_accounts_remove(account);
1445 1446
1447 /* Remove this account's buddies */
1446 for (gnode = gaim_get_blist()->root; gnode != NULL; gnode = gnode->next) { 1448 for (gnode = gaim_get_blist()->root; gnode != NULL; gnode = gnode->next) {
1447 if (!GAIM_BLIST_NODE_IS_GROUP(gnode)) 1449 if (!GAIM_BLIST_NODE_IS_GROUP(gnode))
1448 continue; 1450 continue;
1449 for (cnode = gnode->child; cnode; cnode = cnode->next) { 1451 for (cnode = gnode->child; cnode; cnode = cnode->next) {
1450 if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) { 1452 if(GAIM_BLIST_NODE_IS_CONTACT(cnode)) {
1462 if (c->account == account) 1464 if (c->account == account)
1463 gaim_blist_remove_chat(c); 1465 gaim_blist_remove_chat(c);
1464 } 1466 }
1465 } 1467 }
1466 } 1468 }
1467
1468 gaim_blist_save(); 1469 gaim_blist_save();
1470
1471 /* Remove this account's pounces */
1472 gaim_pounce_destroy_all_by_account(account);
1469 1473
1470 gaim_account_destroy(account); 1474 gaim_account_destroy(account);
1471 } 1475 }
1472 1476
1473 void 1477 void
1652 } 1656 }
1653 1657
1654 void 1658 void
1655 gaim_accounts_uninit(void) 1659 gaim_accounts_uninit(void)
1656 { 1660 {
1661 if (accounts_save_timer != 0) {
1662 g_source_remove(accounts_save_timer);
1663 accounts_save_timer = 0;
1664 gaim_accounts_sync();
1665 }
1666
1657 gaim_signals_unregister_by_instance(gaim_accounts_get_handle()); 1667 gaim_signals_unregister_by_instance(gaim_accounts_get_handle());
1658 } 1668 }