GSettings: properly support 'extends'
authorRyan Lortie <desrt@desrt.ca>
Mon, 28 Oct 2013 00:18:10 +0000 (17:18 -0700)
committerRyan Lortie <desrt@desrt.ca>
Mon, 28 Oct 2013 00:18:10 +0000 (17:18 -0700)
commitcbf8cf8598e527a0d3b895cbfedef6b728ab8b82
treee38135015ede29271ff8a9d1eba9aaf5cb8c31b8
parent3041d0a8dbc9b82d15291061814c4160a5d400ab
GSettings: properly support 'extends'

Support the 'extends' attribute that has been supported by the compiler
for a long time by doing three things:

 - when creating a schema that extends another schema, lookup that other
   schema

 - when looking up keys and we can't find them in the schema, check
   (recursively) in the 'extends' schema

 - when listing all keys in a schema, also visit the extends schemas,
   but take care to avoid duplicates caused by overrides

Extend the testsuite to verify that it works.

https://bugzilla.gnome.org/show_bug.cgi?id=645453
gio/gsettingsschema.c