mirror of
				https://gitlab.gnome.org/GNOME/glib.git
				synced 2025-11-04 01:58:54 +01:00 
			
		
		
		
	Add g_settings_new_full() taking GSettingsSchema
This commit is contained in:
		@@ -1125,6 +1125,7 @@ g_settings_new
 | 
			
		||||
g_settings_new_with_backend
 | 
			
		||||
g_settings_new_with_backend_and_path
 | 
			
		||||
g_settings_new_with_path
 | 
			
		||||
g_settings_new_full
 | 
			
		||||
g_settings_revert
 | 
			
		||||
g_settings_reset
 | 
			
		||||
g_settings_set
 | 
			
		||||
 
 | 
			
		||||
@@ -937,6 +937,43 @@ g_settings_new_with_backend_and_path (const gchar      *schema,
 | 
			
		||||
                       NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * g_settings_new_full:
 | 
			
		||||
 * @schema: a #GSettingsSchema
 | 
			
		||||
 * @backend: a #GSettingsBackend
 | 
			
		||||
 * @path: the path to use
 | 
			
		||||
 * @returns: a new #GSettings object
 | 
			
		||||
 *
 | 
			
		||||
 * Creates a new #GSettings object with a given schema, backend and
 | 
			
		||||
 * path.
 | 
			
		||||
 *
 | 
			
		||||
 * It should be extremely rare that you ever want to use this function.
 | 
			
		||||
 * It is made available for advanced use-cases (such as plugin systems
 | 
			
		||||
 * that want to provide access to schemas loaded from custom locations,
 | 
			
		||||
 * etc).
 | 
			
		||||
 *
 | 
			
		||||
 * At the most basic level, a #GSettings object is a pure composition of
 | 
			
		||||
 * 4 things: a #GSettingsSchema, a #GSettingsBackend, a path within that
 | 
			
		||||
 * backend, and a #GMainContext to which signals are dispatched.
 | 
			
		||||
 *
 | 
			
		||||
 * This constructor therefore gives you full control over constructing
 | 
			
		||||
 * #GSettings instances.  The first 4 parameters are given directly as
 | 
			
		||||
 * @schema, @backend and @path, and the main context is taken from the
 | 
			
		||||
 * thread-default (as per g_settings_new()).
 | 
			
		||||
 *
 | 
			
		||||
 * Since: 2.32
 | 
			
		||||
 */
 | 
			
		||||
GSettings *
 | 
			
		||||
g_settings_new_full (GSettingsSchema  *schema,
 | 
			
		||||
                     GSettingsBackend *backend,
 | 
			
		||||
                     const gchar      *path)
 | 
			
		||||
{
 | 
			
		||||
  return g_object_new (G_TYPE_SETTINGS,
 | 
			
		||||
                       "settings-schema", schema,
 | 
			
		||||
                       "backend", backend,
 | 
			
		||||
                       "path", path);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Internal read/write utilities {{{1 */
 | 
			
		||||
static gboolean
 | 
			
		||||
g_settings_write_to_backend (GSettings          *settings,
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,7 @@
 | 
			
		||||
#ifndef __G_SETTINGS_H__
 | 
			
		||||
#define __G_SETTINGS_H__
 | 
			
		||||
 | 
			
		||||
#include <gio/gsettingsschema.h>
 | 
			
		||||
#include <gio/giotypes.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
@@ -80,6 +81,9 @@ GSettings *             g_settings_new_with_backend                     (const g
 | 
			
		||||
GSettings *             g_settings_new_with_backend_and_path            (const gchar        *schema,
 | 
			
		||||
                                                                         GSettingsBackend   *backend,
 | 
			
		||||
                                                                         const gchar        *path);
 | 
			
		||||
GSettings *             g_settings_new_full                             (GSettingsSchema    *schema,
 | 
			
		||||
                                                                         GSettingsBackend   *backend,
 | 
			
		||||
                                                                         const gchar        *path);
 | 
			
		||||
gchar **                g_settings_list_children                        (GSettings          *settings);
 | 
			
		||||
gchar **                g_settings_list_keys                            (GSettings          *settings);
 | 
			
		||||
GVariant *              g_settings_get_range                            (GSettings          *settings,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user