--- a/ChangeLog.API Sat Nov 05 00:15:03 2022 -0500
+++ b/ChangeLog.API Sat Nov 05 01:06:18 2022 -0500
@@ -326,8 +326,9 @@
- * account-added signal. Use PurpleAccountManager::added
+ * account-added signal. Use PurpleAccountManager::added instead. + * account-created signal. Use PurpleAccountManager::added instead. + * account-destroying signal. Use PurpleAccountManager::removed instead. * account-disabled signal. Use
PurpleAccountManager::account-changed::enabled instead.
* account-enabled signal. Use
--- a/doc/reference/libpurple/signals_account.md Sat Nov 05 00:15:03 2022 -0500
+++ b/doc/reference/libpurple/signals_account.md Sat Nov 05 01:06:18 2022 -0500
@@ -5,8 +5,6 @@
-* [account-created](#account-created)
-* [account-destroying](#account-destroying)
* [account-status-changed](#account-status-changed)
* [account-actions-changed](#account-actions-changed)
* [account-error-changed](#account-error-changed)
--- a/libpurple/account.c Sat Nov 05 00:15:03 2022 -0500
+++ b/libpurple/account.c Sat Nov 05 01:06:18 2022 -0500
@@ -870,9 +870,6 @@
"protocol-id", &protocol_id,
- purple_signal_emit(purple_accounts_get_handle(), "account-created",
manager = purple_protocol_manager_get_default();
protocol = purple_protocol_manager_find(manager, protocol_id);
@@ -924,8 +921,6 @@
PurpleConversationManager *manager = NULL;
purple_debug_info("account", "Destroying account %p", account);
- purple_signal_emit(purple_accounts_get_handle(), "account-destroying",
manager = purple_conversation_manager_get_default();
l = purple_conversation_manager_get_all(manager);
--- a/libpurple/accounts.c Sat Nov 05 00:15:03 2022 -0500
+++ b/libpurple/accounts.c Sat Nov 05 01:06:18 2022 -0500
@@ -680,14 +680,6 @@
void *handle = purple_accounts_get_handle();
void *conn_handle = purple_connections_get_handle();
- purple_signal_register(handle, "account-created",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
- purple_signal_register(handle, "account-destroying",
- purple_marshal_VOID__POINTER, G_TYPE_NONE, 1,
purple_signal_register(handle, "account-status-changing",
purple_marshal_VOID__POINTER_POINTER_POINTER,
G_TYPE_NONE, 3, PURPLE_TYPE_ACCOUNT,
--- a/libpurple/buddylist.c Sat Nov 05 00:15:03 2022 -0500
+++ b/libpurple/buddylist.c Sat Nov 05 01:06:18 2022 -0500
@@ -144,11 +144,27 @@
+purple_buddy_list_account_added_cb(G_GNUC_UNUSED PurpleAccountManager *manager, + PurpleAccount *account, + G_GNUC_UNUSED gpointer data) + purple_blist_buddies_cache_add_account(account); purple_blist_buddies_cache_remove_account(const PurpleAccount *account)
g_hash_table_remove(buddies_cache, account);
+purple_buddy_list_account_removed_cb(G_GNUC_UNUSED PurpleAccountManager *manager, + PurpleAccount *account, + G_GNUC_UNUSED gpointer data) + purple_blist_buddies_cache_remove_account(account); /*********************************************************************
*********************************************************************/
@@ -2202,16 +2218,6 @@
purple_signal_register(handle, "buddy-caps-changed",
purple_marshal_VOID__POINTER_INT_INT, G_TYPE_NONE,
3, PURPLE_TYPE_BUDDY, G_TYPE_INT, G_TYPE_INT);
- purple_signal_connect(purple_accounts_get_handle(), "account-created",
- G_CALLBACK(purple_blist_buddies_cache_add_account),
- purple_signal_connect(purple_accounts_get_handle(), "account-destroying",
- G_CALLBACK(purple_blist_buddies_cache_remove_account),
@@ -2277,13 +2283,23 @@
purple_buddy_list_init(PurpleBuddyList *blist)
- PurpleBuddyListPrivate *priv =
- purple_buddy_list_get_instance_private(blist);
+ PurpleBuddyListPrivate *priv = NULL; + PurpleAccountManager *manager = NULL; + priv = purple_buddy_list_get_instance_private(blist); priv->buddies = g_hash_table_new_full(
(GHashFunc)_purple_blist_hbuddy_hash,
(GEqualFunc)_purple_blist_hbuddy_equal,
(GDestroyNotify)_purple_blist_hbuddy_free_key, NULL);
+ manager = purple_account_manager_get_default(); + g_signal_connect_object(manager, "added", + G_CALLBACK(purple_buddy_list_account_added_cb), + g_signal_connect_object(manager, "removed", + G_CALLBACK(purple_buddy_list_account_removed_cb), /* GObject finalize function */