mirror of
https://github.com/altlinux/gpupdate.git
synced 2025-03-21 18:50:38 +03:00
GSettings property application mechanism fixes and expansion
This commit is contained in:
parent
ace949d4ec
commit
eeb8c3ce52
@ -57,18 +57,28 @@ def glib_map(value, glib_type):
|
||||
return result_value
|
||||
|
||||
class user_gsetting:
|
||||
def __init__(self, schema, path, value):
|
||||
def __init__(self, schema, path, value, helper_function=None):
|
||||
logging.debug('Creating GSettings element {} (in {}) with value {}'.format(path, schema, value))
|
||||
self.schema = schema
|
||||
self.path = path
|
||||
self.value = value
|
||||
self.helper_function = helper_function
|
||||
|
||||
def apply(self):
|
||||
source = Gio.SettingsSchemaSource.get_default()
|
||||
schema = source.lookup(self.schema, True)
|
||||
key = schema.get_key(self.path)
|
||||
gvformat = key.get_value_type()
|
||||
val = GLib.Variant(gvformat.dup_string(), self.value)
|
||||
schema.set_value(self.path, val)
|
||||
logging.debug('Setting GSettings key {} (in {}) to {}'.format(self.path, self.schema, self.value))
|
||||
if self.helper_function:
|
||||
self.helper_function(self.schema, self.path, self.value)
|
||||
# Access the current schema
|
||||
settings = Gio.Settings(self.schema)
|
||||
# Get the key to modify
|
||||
key = settings.get_value(self.path)
|
||||
# Query the data type for the key
|
||||
glib_value_type = key.get_type_string()
|
||||
# Build the new value with the determined type
|
||||
val = glib_map(self.value, glib_value_type)
|
||||
# Set the value
|
||||
settings.set_value(self.path, val)
|
||||
|
||||
#gso = Gio.Settings.new(self.schema)
|
||||
#variants = gso.get_property(self.path)
|
||||
#if (variants.has_key(self.path)):
|
||||
|
Loading…
x
Reference in New Issue
Block a user