1
0
mirror of https://github.com/altlinux/gpupdate.git synced 2025-10-17 03:33:18 +03:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Evgeny Sinelnikov
a8bc2dbcb5 Fix gsettings_applier arrays processing for machine 2021-10-25 12:48:13 +04:00
Valery Sinelnikov
585811e282 Added work with arrays in gsettings 2021-10-22 20:23:05 +04:00
Valery Sinelnikov
0b497bcc02 Fixed bug for authentication-methods in org.gnome.Vino 2021-10-21 19:17:02 +04:00
2 changed files with 37 additions and 4 deletions

View File

@@ -61,6 +61,9 @@ class system_gsettings:
def append(self, schema, path, data, lock, helper):
self.gsettings.append(system_gsetting(schema, path, data, lock, helper))
def pop(self):
self.gsettings.pop()
def apply(self):
config = configparser.ConfigParser()

View File

@@ -78,6 +78,7 @@ class gsettings_applier(applier_frontend):
self.override_old_file = os.path.join(self.__global_schema, self.__override_old_file)
self.gsettings = system_gsettings(self.override_file)
self.locks = dict()
self.dictArr = dict()
self.__module_enabled = check_enabled(
self.storage
, self.__module_name
@@ -113,16 +114,33 @@ class gsettings_applier(applier_frontend):
# Calculate all configured gsettings
for setting in self.gsettings_keys:
helper = None
valuename = setting.hive_key.rpartition('\\')[2]
valuename = setting.valuename
rp = valuename.rpartition('.')
schema = rp[0]
path = rp[2]
lock = bool(self.locks[valuename]) if valuename in self.locks else None
data = setting.data
if setting.hive_key.lower() == self.__wallpaper_entry.lower():
self.update_file_cache(setting.data)
helper = self.uri_fetch_helper
self.gsettings.append(schema, path, setting.data, lock, helper)
# Registry branch ends with back slash.
# If keyname starts with same prefix, it would be array
elif setting.keyname.lower().startswith(self.__registry_branch.lower()):
valuenameArr = setting.keyname.rpartition('\\')[2]
if valuenameArr:
valuename = valuenameArr
rpArr = valuename.rpartition('.')
schema = rpArr[0]
path = rpArr[2]
if self.dictArr and path in self.dictArr.keys():
self.dictArr[path].append(setting.data)
self.gsettings.pop()
else:
self.dictArr[path] = [setting.data,]
data = self.dictArr[path]
lock = bool(self.locks[valuename]) if valuename in self.locks else None
self.gsettings.append(schema, path, data, lock, helper)
# Create GSettings policy with highest available priority
self.gsettings.apply()
@@ -193,7 +211,7 @@ class gsettings_applier_user(applier_frontend):
self.gsettings = list()
self.__module_enabled = check_enabled(self.storage, self.__module_name, self.__module_enabled)
self.__windows_mapping_enabled = check_windows_mapping_enabled(self.storage)
self.dictArr = dict()
self.__windows_settings = dict()
self.windows_settings = list()
mapping = [
@@ -265,6 +283,18 @@ class gsettings_applier_user(applier_frontend):
schema = rp[0]
path = rp[2]
helper = self.uri_fetch_helper if setting.hive_key.lower() == self.__wallpaper_entry.lower() else None
if valuename == setting.data:
valuenameArr = setting.keyname.rpartition('\\')[2]
rpArr = valuenameArr.rpartition('.')
schema = rpArr[0]
path = rpArr[2]
if self.dictArr and path in self.dictArr.keys():
self.dictArr[path].append(setting.data)
self.gsettings.pop()
else:
self.dictArr[path] = [setting.data,]
self.gsettings.append(user_gsetting(schema, path, self.dictArr[path], helper))
continue
self.gsettings.append(user_gsetting(schema, path, setting.data, helper))
# Create GSettings policy with highest available priority