Update Pidgin for the Purple.ProtocolManager deprecations

Fri, 01 Nov 2024 00:32:09 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Fri, 01 Nov 2024 00:32:09 -0500
changeset 43035
c6caa9bd7afe
parent 43034
b45543113d52
child 43036
bb4db2d67c61

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());

mercurial