Wed, 14 May 2025 01:54:28 -0500
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/
--- 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);