pidgin/plugins/disco/xmppdisco.c

changeset 41473
f58243b85b2d
parent 41314
0dc72eacd8bf
child 41499
a80a41434f44
--- a/pidgin/plugins/disco/xmppdisco.c	Sun Jul 31 00:54:46 2022 -0500
+++ b/pidgin/plugins/disco/xmppdisco.c	Sun Jul 31 01:45:36 2022 -0500
@@ -583,24 +583,13 @@
 }
 
 static void
-create_dialog(PurplePluginAction *action)
+create_dialog(G_GNUC_UNUSED GSimpleAction *action,
+              G_GNUC_UNUSED GVariant *parameter,
+              G_GNUC_UNUSED gpointer data)
 {
 	pidgin_disco_dialog_new();
 }
 
-static GList *
-actions(PurplePlugin *plugin)
-{
-	GList *l = NULL;
-	PurplePluginAction *action = NULL;
-
-	action = purple_plugin_action_new(_("XMPP Service Discovery"),
-	                                  create_dialog);
-	l = g_list_prepend(l, action);
-
-	return l;
-}
-
 static void
 signed_off_cb(PurpleConnection *pc, gpointer unused)
 {
@@ -614,11 +603,26 @@
 static GPluginPluginInfo *
 xmpp_disco_query(GError **error)
 {
+	GActionEntry entries[] = {
+		{
+			.name = "dialog",
+			.activate = create_dialog,
+		}
+	};
+	GMenu *menu = NULL;
+	GSimpleActionGroup *group = NULL;
 	const gchar * const authors[] = {
 		"Paul Aurich <paul@darkrain42.org>",
 		NULL
 	};
 
+	group = g_simple_action_group_new();
+	g_action_map_add_action_entries(G_ACTION_MAP(group), entries,
+	                                G_N_ELEMENTS(entries), NULL);
+
+	menu = g_menu_new();
+	g_menu_append(menu, _("XMPP Service Discovery"), "dialog");
+
 	return pidgin_plugin_info_new(
 		"id",           PLUGIN_ID,
 		"name",         N_("XMPP Service Discovery"),
@@ -630,7 +634,8 @@
 		"authors",      authors,
 		"website",      PURPLE_WEBSITE,
 		"abi-version",  PURPLE_ABI_VERSION,
-		"actions-cb",   actions,
+		"action-group", group,
+		"action-menu",  menu,
 		NULL
 	);
 }

mercurial