Create purple_core_new_settings

Wed, 14 May 2025 01:54:28 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Wed, 14 May 2025 01:54:28 -0500
changeset 43253
0cc00d7d6215
parent 43252
7be870f03030
child 43254
27610c58b03b

Create purple_core_new_settings

This is a helper around g_settings_new_with_backend using the settings backend
that the core is using.

Testing Done:
Called in the turtles and connected a few accounts in a devenv without issue.

Reviewed at https://reviews.imfreedom.org/r/4000/

libpurple/core.c file | annotate | diff | comparison | revisions
libpurple/core.h file | annotate | diff | comparison | revisions
libpurple/network.c file | annotate | diff | comparison | revisions
libpurple/purplecredentialmanager.c file | annotate | diff | comparison | revisions
libpurple/purplegio.c file | annotate | diff | comparison | revisions
pidgin/pidgindebug.c file | annotate | diff | comparison | revisions
pidgin/pidginmessage.c file | annotate | diff | comparison | revisions
pidgin/plugins/transparency/transparency.c file | annotate | diff | comparison | revisions
pidgin/prefs/pidginappearanceprefs.c file | annotate | diff | comparison | revisions
pidgin/prefs/pidginawayprefs.c file | annotate | diff | comparison | revisions
pidgin/prefs/pidginnetworkprefs.c file | annotate | diff | comparison | revisions
pidgin/prefs/pidginprivacyprefs.c file | annotate | diff | comparison | revisions
pidgin/prefs/pidginproxyprefs.c file | annotate | diff | comparison | revisions
--- a/libpurple/core.c	Tue May 13 16:22:50 2025 -0500
+++ b/libpurple/core.c	Wed May 14 01:54:28 2025 -0500
@@ -267,10 +267,9 @@
 	GSettings *settings = NULL;
 	gboolean developer_mode = FALSE;
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Core",
-	                                       settings_backend);
-
+	settings = purple_core_new_settings("im.pidgin.Purple.Core");
 	developer_mode = g_settings_get_boolean(settings, "developer-mode");
+	g_clear_object(&settings);
 
 	return developer_mode;
 }
@@ -280,6 +279,13 @@
 	return settings_backend;
 }
 
+GSettings *
+purple_core_new_settings(const char *schema_id) {
+	g_return_val_if_fail(schema_id != NULL, NULL);
+
+	return g_settings_new_with_backend(schema_id, settings_backend);
+}
+
 PurpleUi *
 purple_core_get_ui(void) {
 	return _core->ui;
--- a/libpurple/core.h	Tue May 13 16:22:50 2025 -0500
+++ b/libpurple/core.h	Wed May 14 01:54:28 2025 -0500
@@ -129,6 +129,19 @@
 gpointer purple_core_get_settings_backend(void);
 
 /**
+ * purple_core_new_settings:
+ * @schema_id: the id of the schema
+ *
+ * Creates a new settings object using the preferred backend.
+ *
+ * Returns: (transfer full): The new instance.
+ *
+ * Since: 3.0
+ */
+PURPLE_AVAILABLE_IN_3_0
+GSettings *purple_core_new_settings(const char *schema_id);
+
+/**
  * purple_core_get_ui:
  *
  * Gets the [class@Purple.Ui] that is running.
--- a/libpurple/network.c	Tue May 13 16:22:50 2025 -0500
+++ b/libpurple/network.c	Wed May 14 01:54:28 2025 -0500
@@ -46,8 +46,7 @@
 
 	/* XXX - Ensure the IP address is valid */
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 	g_settings_set_string(settings, "address", ip);
 	g_object_unref(settings);
 }
@@ -58,8 +57,7 @@
 	GSettings *settings = NULL;
 	char *ip = NULL;
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 	ip = g_settings_get_string(settings, "address");
 	g_object_unref(settings);
 
@@ -114,8 +112,7 @@
 {
 	GSettings *settings = NULL;
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 
 	/* Check if the user specified an IP manually */
 	if(!g_settings_get_boolean(settings, "autodetect")) {
@@ -139,8 +136,7 @@
 {
 	GSettings *settings = NULL;
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 
 	/* Check if the user specified an IP manually */
 	if(!g_settings_get_boolean(settings, "autodetect")) {
--- a/libpurple/purplecredentialmanager.c	Tue May 13 16:22:50 2025 -0500
+++ b/libpurple/purplecredentialmanager.c	Wed May 14 01:54:28 2025 -0500
@@ -400,13 +400,10 @@
 	if(default_manager == NULL) {
 		PurpleUi *ui = NULL;
 		GError *error = NULL;
-		gpointer backend;
 
 		default_manager = g_object_new(PURPLE_TYPE_CREDENTIAL_MANAGER, NULL);
 
-		backend = purple_core_get_settings_backend();
-		default_manager->settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
-		                                                        backend);
+		default_manager->settings = purple_core_new_settings("im.pidgin.Purple.Credentials");
 
 		ui = purple_core_get_ui();
 		g_signal_connect_object(ui, "started",
--- a/libpurple/purplegio.c	Tue May 13 16:22:50 2025 -0500
+++ b/libpurple/purplegio.c	Wed May 14 01:54:28 2025 -0500
@@ -146,8 +146,7 @@
 	GError *internal_error = NULL;
 	guint16 port, start, end;
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports.Manual",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.Ports.Manual");
 
 	if(!g_settings_get_boolean(settings, "enabled")) {
 		g_object_unref(settings);
--- a/pidgin/pidgindebug.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/pidgindebug.c	Wed May 14 01:54:28 2025 -0500
@@ -767,8 +767,7 @@
 pidgin_debug_init(void)
 {
 	/* Debug window preferences. */
-	GSettingsBackend *backend = purple_core_get_settings_backend();
-	settings = g_settings_new_with_backend("im.pidgin.Pidgin3.Debug", backend);
+	settings = purple_core_new_settings("im.pidgin.Pidgin3.Debug");
 	pref_callback_id = g_signal_connect(settings, "changed::visible",
 	                                    G_CALLBACK(debug_visible_cb), NULL);
 }
--- a/pidgin/pidginmessage.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/pidginmessage.c	Wed May 14 01:54:28 2025 -0500
@@ -273,8 +273,7 @@
 
 	gtk_widget_init_template(GTK_WIDGET(message));
 
-	settings = g_settings_new_with_backend("im.pidgin.Pidgin3.Appearance",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Pidgin3.Appearance");
 	g_settings_bind(settings, "show-formatting",
 	                G_OBJECT(message), "show-formatting",
 	                G_SETTINGS_BIND_GET);
--- a/pidgin/plugins/transparency/transparency.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/plugins/transparency/transparency.c	Wed May 14 01:54:28 2025 -0500
@@ -81,8 +81,7 @@
 	gboolean enter = GPOINTER_TO_INT(data);
 	GSettings *settings = NULL;
 
-	settings = g_settings_new_with_backend(OPT_SCHEMA,
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings(OPT_SCHEMA);
 
 	if(!g_settings_get_boolean(settings, OPT_WINTRANS_ONFOCUS)) {
 		g_object_unref(settings);
@@ -125,8 +124,7 @@
 	int alpha = gtk_range_get_value(GTK_RANGE(w));
 	GSettings *settings = NULL;
 
-	settings = g_settings_new_with_backend(OPT_SCHEMA,
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings(OPT_SCHEMA);
 
 	g_settings_set_int(settings, OPT_WINTRANS_ALPHA, alpha);
 
@@ -195,8 +193,7 @@
 		return;
 	}
 
-	settings = g_settings_new_with_backend(OPT_SCHEMA,
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings(OPT_SCHEMA);
 
 	slider_frame = gtk_frame_new(NULL);
 	gtk_widget_set_margin_start(slider_frame, 6);
@@ -267,8 +264,7 @@
 set_conv_window_trans(GtkWidget *window) {
 	GSettings *settings = NULL;
 
-	settings = g_settings_new_with_backend(OPT_SCHEMA,
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings(OPT_SCHEMA);
 
 	set_wintrans(window, g_settings_get_int(settings, OPT_WINTRANS_ALPHA),
 	             TRUE);
--- a/pidgin/prefs/pidginappearanceprefs.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/prefs/pidginappearanceprefs.c	Wed May 14 01:54:28 2025 -0500
@@ -58,8 +58,7 @@
 
 	gtk_widget_init_template(GTK_WIDGET(prefs));
 
-	settings = g_settings_new_with_backend("im.pidgin.Pidgin3.Appearance",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Pidgin3.Appearance");
 	g_settings_bind(settings, "show-formatting",
 	                prefs->show_formatting, "active", G_SETTINGS_BIND_DEFAULT);
 	g_clear_object(&settings);
--- a/pidgin/prefs/pidginawayprefs.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/prefs/pidginawayprefs.c	Wed May 14 01:54:28 2025 -0500
@@ -232,17 +232,15 @@
 {
 	GListModel *model = NULL;
 	GSettings *settings = NULL;
-	gpointer backend = NULL;
 
 	gtk_widget_init_template(GTK_WIDGET(prefs));
 
-	backend = purple_core_get_settings_backend();
 	model = purple_presence_manager_get_default_as_model();
 
 	/* Finish setting up our idle preferences. */
 	adw_combo_row_set_model(ADW_COMBO_ROW(prefs->idle_row), model);
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Idle", backend);
+	settings = purple_core_new_settings("im.pidgin.Purple.Idle");
 
 	g_settings_bind_with_mapping(settings, "method",
 	                             prefs->idle_reporting, "selected",
@@ -266,8 +264,7 @@
 	/* Finish setting up the startup presence preferences. */
 	adw_combo_row_set_model(ADW_COMBO_ROW(prefs->startup_row), model);
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Startup",
-	                                       backend);
+	settings = purple_core_new_settings("im.pidgin.Purple.Startup");
 
 	g_settings_bind(settings, "use-previous-presence",
 	                prefs->startup_current_status, "active",
--- a/pidgin/prefs/pidginnetworkprefs.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/prefs/pidginnetworkprefs.c	Wed May 14 01:54:28 2025 -0500
@@ -80,8 +80,7 @@
 	GList *list = NULL;
 
 	/* Make a lookup for the auto-detected IP ourselves. */
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 	if(g_settings_get_boolean(settings, "autodetect")) {
 		ip = "0.0.0.0";
 	} else {
@@ -136,14 +135,12 @@
 
 	gtk_widget_init_template(GTK_WIDGET(prefs));
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Stun",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.Stun");
 	g_settings_bind(settings, "server", prefs->stun_server, "text",
 	                G_SETTINGS_BIND_DEFAULT);
 	g_clear_object(&settings);
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.IP",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.IP");
 	g_settings_bind(settings, "autodetect", prefs->auto_ip, "active",
 	                G_SETTINGS_BIND_DEFAULT);
 	g_clear_object(&settings);
@@ -152,15 +149,12 @@
 	gtk_editable_set_text(GTK_EDITABLE(prefs->public_ip), ip);
 	g_free(ip);
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.Ports");
 	g_settings_bind(settings, "use-discovery", prefs->map_ports, "active",
 	                G_SETTINGS_BIND_DEFAULT);
 	g_clear_object(&settings);
 
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports.Manual",
-	                                       purple_core_get_settings_backend());
-
+	settings = purple_core_new_settings("im.pidgin.Purple.Network.Ports.Manual");
 	g_settings_bind(settings, "enabled",
 	                prefs->ports_range_use, "enable-expansion",
 	                G_SETTINGS_BIND_DEFAULT);
--- a/pidgin/prefs/pidginprivacyprefs.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/prefs/pidginprivacyprefs.c	Wed May 14 01:54:28 2025 -0500
@@ -58,8 +58,7 @@
 
 	gtk_widget_init_template(GTK_WIDGET(prefs));
 
-	settings = g_settings_new_with_backend("im.pidgin.Pidgin3.Privacy",
-	                                       purple_core_get_settings_backend());
+	settings = purple_core_new_settings("im.pidgin.Pidgin3.Privacy");
 	g_settings_bind(settings, "send-typing-notifications",
 	                prefs->send_typing_notifications, "active",
 	                G_SETTINGS_BIND_DEFAULT);
--- a/pidgin/prefs/pidginproxyprefs.c	Tue May 13 16:22:50 2025 -0500
+++ b/pidgin/prefs/pidginproxyprefs.c	Wed May 14 01:54:28 2025 -0500
@@ -211,11 +211,8 @@
 static void
 pidgin_proxy_prefs_init_non_gnome(PidginProxyPrefs *prefs) {
 	GSettings *settings = NULL;
-	gpointer settings_backend = NULL;
 
-	settings_backend = purple_core_get_settings_backend();
-	settings = g_settings_new_with_backend("im.pidgin.Purple.Proxy",
-	                                       settings_backend);
+	settings = purple_core_new_settings("im.pidgin.Purple.Proxy");
 
 	gtk_widget_set_visible(prefs->gnome, FALSE);
 	gtk_widget_set_visible(prefs->nongnome, TRUE);

mercurial