Re: gio settings schema
- From: Richard Henwood <rjhenwood yahoo co uk>
- To: desktop-devel-list <desktop-devel-list gnome org>
- Subject: Re: gio settings schema
- Date: Wed, 19 Nov 2014 14:44:50 +0000
I've received help from #gtk+ on irc.gimp.org that has got me unstuck with this knowledge:
+ I must compile the schema to create a cache file. This cache file is what gsettings uses.
+ I can include a cache file in my source distribution as it is platform independent. So, I only need to compile once per release, and no users will need to do the compile step.
+ This page answers my exact question:
+ Once I have my compiled schema, I can use it (in my specific case) as:
""" this seems to work, when the plugin is not installed as root."""
schema_dir = os.path.join(self.plugin_info.get_module_dir(), "gutenberg")
schema_source = Gio.SettingsSchemaSource.new_from_directory(
schema_dir,
Gio.SettingsSchemaSource.get_default(),
False,
)
schema = schema_source.lookup('org.gnome.rhythmbox.plugins.gutenberg', False)
self.settings = Gio.Settings.new_full(schema, None, None)
self.settings.set_boolean('my-bool-setting', False)
^ I imagine there is a nicer way than this - but I wanted to share this method with any other hackers.
cheers,
Richard
From: Richard Henwood <rjhenwood yahoo co uk>
To: desktop-devel-list <desktop-devel-list gnome org>
Sent: Tuesday, 11 November 2014, 13:29
Subject: gio settings schema
Hi All,
I'm writing a plugin in python for Rhythmbox. I want to use GSettings to record the state of the plugin.
I feel like I should be able to do something like:
if source.lookup("org.gnome.rhythmbox.plugins.gutenberg", True):
print ("got settings.")
else:
print("seems like settings are missing. Creating new ones.")
self.settings =
Gio.Settings.new("org.gnome.rhythmbox.plugins.gutenberg")
... but I can't - and it seems [1] I need to create a schema manually, as root, by copying a file into /usr/share/glib-2.0/schemas/
This feels weird to me: I can install my plug-in as a user, but I can't create a GSetting (that I think my plugin should be using for good hygiene). I imagine I've missed something - and I'd appreciate guidance back to the path.
best regards,
Richard
_______________________________________________
desktop-devel-list mailing list
desktop-devel-list gnome orghttps://mail.gnome.org/mailman/listinfo/desktop-devel-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]