Fri, 01 Nov 2024 00:32:09 -0500
Update Pidgin for the Purple.ProtocolManager deprecations
Reviewed at https://reviews.imfreedom.org/r/3628/
| pidgin/pidginui.c | file | annotate | diff | comparison | revisions |
--- a/pidgin/pidginui.c Fri Nov 01 00:30:41 2024 -0500 +++ b/pidgin/pidginui.c Fri Nov 01 00:32:09 2024 -0500 @@ -71,15 +71,8 @@ * Callbacks *****************************************************************************/ static void -pidgin_ui_protocol_foreach_theme_cb(PurpleProtocol *protocol, - G_GNUC_UNUSED gpointer data) -{ - pidgin_ui_add_protocol_theme_paths(protocol); -} - -static void -pidgin_ui_protocol_registered_cb(G_GNUC_UNUSED PurpleProtocolManager *manager, - PurpleProtocol *protocol) +pidgin_ui_protocol_added_cb(G_GNUC_UNUSED PurpleProtocolManager *manager, + PurpleProtocol *protocol) { pidgin_ui_add_protocol_theme_paths(protocol); } @@ -97,6 +90,7 @@ PurpleProtocolManager *protocol_manager = NULL; GdkDisplay *display = NULL; GtkIconTheme *theme = NULL; + GListModel *protocol_model = NULL; gchar *path; pidgin_debug_init(); @@ -112,14 +106,20 @@ * if it was found after initial startup. */ protocol_manager = purple_protocol_manager_get_default(); - g_signal_connect(protocol_manager, "registered", - G_CALLBACK(pidgin_ui_protocol_registered_cb), NULL); + protocol_model = G_LIST_MODEL(protocol_manager); + g_signal_connect(protocol_manager, "added", + G_CALLBACK(pidgin_ui_protocol_added_cb), NULL); - /* Add the icon paths for all the protocols that libpurple found at start - * up. + /* Add the icon paths for all the protocols that libpurple found during + * start up. */ - purple_protocol_manager_foreach(protocol_manager, - pidgin_ui_protocol_foreach_theme_cb, NULL); + for(guint i = 0; i < g_list_model_get_n_items(protocol_model); i++) { + PurpleProtocol *protocol = NULL; + + protocol = g_list_model_get_item(protocol_model, i); + pidgin_ui_add_protocol_theme_paths(protocol); + g_clear_object(&protocol); + } /* Set the UI operation structures. */ purple_request_set_ui_ops(pidgin_request_get_ui_ops());