Creates a keyfile-backed SettingsBackend.
The filename of the keyfile to use is given by filename
.
All settings read to or written from the backend must fall under the path given in root_path
(which must start and end with
a slash and not contain two consecutive slashes). root_path
may be "/".
If root_group
is non-null then it specifies the name of the keyfile group used for keys
that are written directly below root_path
. For example, if root_path
is "/apps/example/" and root_group
is "toplevel", then settings the key "/apps/example/enabled" to a value of true will cause the
following to appear in the keyfile:
[toplevel]
enabled=true
If root_group
is null then it is not permitted to store keys directly below the
root_path
.
For keys not stored directly below root_path
(ie: in a sub-path), the name of the subpath (with the final slash stripped) is
used as the name of the keyfile group. To continue the example, if "/apps/example/profiles/default/font-size" were set to 12 then the
following would appear in the keyfile:
[profiles/default]
font-size=12
The backend will refuse writes (and return writability as being false) for keys outside of
root_path
and, in the event that root_group
is null, also for keys directly under
root_path
. Writes will also be refused if the backend detects that it has the inability to rewrite the keyfile (ie: the
containing directory is not writable).
There is no checking done for your key namespace clashing with the syntax of the key file format. For example, if you have '[' or ']' characters in your path names or '=' in your key names you may be in trouble.
The backend reads default values from a keyfile called `defaults` in the directory specified by the
GKeyfileSettingsBackend:defaults-dir
property, and a list of locked keys from a text file with the name `locks` in the same
location.
filename |
the filename of the keyfile |
root_path |
the path under which all settings keys appear |
root_group |
the group name corresponding to |
a keyfile-backed SettingsBackend |