summaryrefslogtreecommitdiff
path: root/libpurple/core.c
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2022-09-11 00:33:00 -0500
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2022-09-11 00:33:00 -0500
commit147772e248ff118af4af62c1be8769b7b4d14ad2 (patch)
tree1d1471e662c6b542627c05c41a7af2d688adbdc6 /libpurple/core.c
parent9a0ce08766ac86a3db99f52bd38e2b34600e54c8 (diff)
downloadpidgin-147772e248ff118af4af62c1be8769b7b4d14ad2.tar.gz
Prepare GSettings schemas and a default settings backend
This does nothing by itself yet. Reviewed at https://reviews.imfreedom.org/r/1733/
Diffstat (limited to 'libpurple/core.c')
-rw-r--r--libpurple/core.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libpurple/core.c b/libpurple/core.c
index ea71aa0a62..662159b846 100644
--- a/libpurple/core.c
+++ b/libpurple/core.c
@@ -20,6 +20,8 @@
*/
#include <glib/gi18n-lib.h>
+#define G_SETTINGS_ENABLE_BACKEND
+#include <gio/gsettingsbackend.h>
#include "internal.h"
#include "cmds.h"
@@ -56,6 +58,7 @@ struct PurpleCore
static PurpleCoreUiOps *_ops = NULL;
static PurpleCore *_core = NULL;
+static GSettingsBackend *settings_backend = NULL;
static void
purple_core_print_version(void)
@@ -90,6 +93,8 @@ gboolean
purple_core_init(PurpleUiInfo *ui_info) {
PurpleCoreUiOps *ops;
PurpleCore *core;
+ gchar *config_file = NULL;
+ gchar *config = NULL;
g_return_val_if_fail(PURPLE_IS_UI_INFO(ui_info), FALSE);
g_return_val_if_fail(purple_get_core() == NULL, FALSE);
@@ -128,6 +133,11 @@ purple_core_init(PurpleUiInfo *ui_info) {
/* The prefs subsystem needs to be initialized before static protocols
* for protocol prefs to work. */
purple_prefs_init();
+ config_file = g_strdup_printf("%s.ini", purple_ui_info_get_id(ui_info));
+ config = g_build_filename(purple_config_dir(), config_file, NULL);
+ settings_backend = g_keyfile_settings_backend_new(config, "/", NULL);
+ g_free(config_file);
+ g_free(config);
purple_debug_init();
@@ -237,6 +247,7 @@ purple_core_quit(void)
ops->quit();
/* Everything after prefs_uninit must not try to read any prefs */
+ g_clear_object(&settings_backend);
purple_prefs_uninit();
purple_plugins_uninit();
@@ -286,6 +297,11 @@ purple_get_core(void)
return _core;
}
+gpointer
+purple_core_get_settings_backend(void) {
+ return settings_backend;
+}
+
void
purple_core_set_ui_ops(PurpleCoreUiOps *ops)
{