libpurple/purplecredentialmanager.c

changeset 41661
d8a78f5c982d
parent 41314
0dc72eacd8bf
child 41734
a708bd1edc77
--- a/libpurple/purplecredentialmanager.c	Sun Sep 11 00:33:00 2022 -0500
+++ b/libpurple/purplecredentialmanager.c	Sun Sep 11 00:34:53 2022 -0500
@@ -128,10 +128,14 @@
 	PurpleCredentialManager *manager = PURPLE_CREDENTIAL_MANAGER(data);
 
 	if(!PURPLE_IS_CREDENTIAL_PROVIDER(manager->active)) {
+		GSettings *settings = NULL;
 		GError *error = NULL;
-		const gchar *id = NULL;
+		gchar *id = NULL;
 
-		id = purple_prefs_get_string("/purple/credentials/active-provider");
+		settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
+		                                       purple_core_get_settings_backend());
+		id = g_settings_get_string(settings, "active-provider");
+		g_object_unref(settings);
 
 		if(!purple_credential_manager_set_active(manager, id, &error)) {
 			g_warning("Failed to make %s the active credential provider : %s",
@@ -145,6 +149,7 @@
 			                    NULL);
 		}
 
+		g_free(id);
 		g_clear_error(&error);
 	}
 }
@@ -247,11 +252,6 @@
 		2,
 		PURPLE_TYPE_CREDENTIAL_PROVIDER,
 		PURPLE_TYPE_CREDENTIAL_PROVIDER);
-
-	/* Add our purple preferences. */
-	purple_prefs_add_none("/purple/credentials");
-	purple_prefs_add_string("/purple/credentials/active-provider",
-	                        "noop-provider");
 }
 
 /******************************************************************************
@@ -354,13 +354,19 @@
 	 * If it is, go ahead and make it the active provider.
 	 */
 	if(!PURPLE_IS_CREDENTIAL_PROVIDER(manager->active)) {
-		const gchar *wanted = NULL;
+		GSettings *settings = NULL;
+		gchar *wanted = NULL;
 
-		wanted = purple_prefs_get_string("/purple/credentials/active-provider");
+		settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
+		                                       purple_core_get_settings_backend());
+		wanted = g_settings_get_string(settings, "active-provider");
 
 		if(purple_strequal(wanted, id)) {
 			purple_credential_manager_set_active(manager, id, error);
 		}
+
+		g_free(wanted);
+		g_object_unref(settings);
 	}
 
 	return TRUE;
@@ -438,7 +444,12 @@
 
 	/* Finally update the preference. */
 	if(id != NULL) {
-		purple_prefs_set_string("/purple/credentials/active-provider", id);
+		GSettings *settings = NULL;
+
+		settings = g_settings_new_with_backend("im.pidgin.Purple.Credentials",
+		                                       purple_core_get_settings_backend());
+		g_settings_set_string(settings, "active-provider", id);
+		g_object_unref(settings);
 	}
 
 	purple_debug_info("credential-manager", "set active provider to '%s'", id);

mercurial