Lists the schemas in a given source.
If recursive
is %TRUE then include parent sources. If %FALSE then
only include the schemas from one source (ie: one directory). You
probably want %TRUE.
Non-relocatable schemas are those for which you can call g_settings_new(). Relocatable schemas are those for which you must use g_settings_new_with_path().
Do not call this function from normal programs. This is designed for use by database editors, commandline tools, etc.
if we should recurse
Looks up a schema with the identifier schema_id
in source
.
This function is not required for normal uses of #GSettings but it may be useful to authors of plugin management systems or to those who want to introspect the content of schemas.
If the schema isn't found directly in source
and recursive
is %TRUE
then the parent sources will also be checked.
If the schema isn't found, %NULL is returned.
a schema ID
%TRUE if the lookup should be recursive
Increase the reference count of source,
returning a new reference.
Decrease the reference count of source,
possibly freeing it.
Gets the default system schema source.
This function is not required for normal uses of #GSettings but it may be useful to authors of plugin management systems or to those who want to introspect the content of schemas.
If no schemas are installed, %NULL will be returned.
The returned source may actually consist of multiple schema sources
from different directories, depending on which directories were given
in XDG_DATA_DIRS
and GSETTINGS_SCHEMA_DIR
. For this reason, all
lookups performed against the default source should probably be done
recursively.
Attempts to create a new schema source corresponding to the contents of the given directory.
This function is not required for normal uses of #GSettings but it may be useful to authors of plugin management systems.
The directory should contain a file called gschemas.compiled
as
produced by the [glib-compile-schemas][glib-compile-schemas] tool.
If trusted
is %TRUE then gschemas.compiled
is trusted not to be
corrupted. This assumption has a performance advantage, but can result
in crashes or inconsistent behaviour in the case of a corrupted file.
Generally, you should set trusted
to %TRUE for files installed by the
system and to %FALSE for files in the home directory.
In either case, an empty file or some types of corruption in the file will result in %G_FILE_ERROR_INVAL being returned.
If parent
is non-%NULL then there are two effects.
First, if g_settings_schema_source_lookup() is called with the
recursive
flag set to %TRUE and the schema can not be found in the
source, the lookup will recurse to the parent.
Second, any references to other schemas specified within this
source (ie: child
or extends
) references may be resolved
from the parent
.
For this second reason, except in very unusual situations, the
parent
should probably be given as the default schema source, as
returned by g_settings_schema_source_get_default().
the filename of a directory
a #GSettingsSchemaSource, or %NULL
%TRUE, if the directory is trusted
This is an opaque structure type. You may not access it directly.