Fix for gsettings relocatable schemas
Submitted by info-cppsp
Assigned to Allison (desrt)
Link to original bug (#789969)
Description
Created attachment 363056 patch1
Hello!
Most info can be found here: https://github.com/mate-desktop/mate-panel/issues/675
To sum things up, after some programs like the applets in mate-desktop/mate-panel (in my case mate-sensors-applet) started using relocatable schemas to store app settings in gsettings / dconf, the problem arose that the user can no longer see all options that are otherwise defined in a gschema.xml file in dconf-editor. That is because dconf - as a backend and/or database - only stores paths (a gsettings object path + key) and value (a GVariant) pairs.
This patch changes the two ways a program can save a setting in glib/gsettings to implicitly write an additional key to the backend, with the same object path, and 'schema-id' as the key name to store the schema id of the program, so that dconf-editor could load the right gschema file to display all settings for the application, (like it does with non relocatable schemas.)
This is a preliminary patch, some points have already been raised in IRC, which I shall fix later.
I would like to ask you to help me finalise this solution.
Attachment 363056, "patch1":
gliba.patch.txt