diff options
author | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2022-09-11 00:33:00 -0500 |
---|---|---|
committer | Elliott Sales de Andrade <quantum.analyst@gmail.com> | 2022-09-11 00:33:00 -0500 |
commit | 147772e248ff118af4af62c1be8769b7b4d14ad2 (patch) | |
tree | 1d1471e662c6b542627c05c41a7af2d688adbdc6 /libpurple/core.c | |
parent | 9a0ce08766ac86a3db99f52bd38e2b34600e54c8 (diff) | |
download | pidgin-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.c | 16 |
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) { |