since: 2.32


g_settings_schema_source_new_from_directory (
  const gchar* directory,
  GSettingsSchemaSource* parent,
  gboolean trusted,
  GError** error


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().

Available since: 2.32



Type: const gchar*

The filename of a directory.

The data is owned by the caller of the function.
The value is a file system path, using the OS encoding.

Type: GSettingsSchemaSource

A GSettingsSchemaSource, or NULL.

The argument can be NULL.
The data is owned by the caller of the function.

Type: gboolean

TRUE, if the directory is trusted.


Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will left initialized to NULL by the function if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: GSettingsSchemaSource

No description available.

The caller of the function takes ownership of the data, and is responsible for freeing it.