Merge branch 'bugfix_config' into develop

This commit is contained in:
misyaguziya
2025-11-14 11:30:22 +09:00

View File

@@ -85,8 +85,10 @@ class ManagedDict(dict):
internal_dict = self._get_internal() internal_dict = self._get_internal()
internal_dict.clear() internal_dict.clear()
internal_dict.update(dict.items(self)) internal_dict.update(dict.items(self))
# Trigger config save # Trigger config save only if the corresponding property is serializable
self._instance.saveConfig(self._property_name, dict(self), immediate_save=self._immediate_save) descriptor = getattr(type(self._instance), self._property_name, None)
if getattr(descriptor, "serialize", True):
self._instance.saveConfig(self._property_name, dict(self), immediate_save=self._immediate_save)
except Exception: except Exception:
pass pass
@@ -162,8 +164,10 @@ class ManagedList(list):
internal_list = self._get_internal() internal_list = self._get_internal()
internal_list.clear() internal_list.clear()
internal_list.extend(list.__iter__(self)) internal_list.extend(list.__iter__(self))
# Trigger config save # Trigger config save only if the corresponding property is serializable
self._instance.saveConfig(self._property_name, list(self), immediate_save=self._immediate_save) descriptor = getattr(type(self._instance), self._property_name, None)
if getattr(descriptor, "serialize", True):
self._instance.saveConfig(self._property_name, list(self), immediate_save=self._immediate_save)
except Exception: except Exception:
pass pass
@@ -292,7 +296,8 @@ class ManagedProperty:
setattr(instance, self.private_name, value) setattr(instance, self.private_name, value)
# Persist change # Persist change
try: try:
instance.saveConfig(self.name, value, immediate_save=self.immediate_save) if self.serialize:
instance.saveConfig(self.name, value, immediate_save=self.immediate_save)
except Exception: except Exception:
# Keep setter robust during import-time initialization # Keep setter robust during import-time initialization
pass pass
@@ -324,7 +329,8 @@ class ValidatedProperty:
return return
setattr(instance, self.private_name, normalized) setattr(instance, self.private_name, normalized)
try: try:
instance.saveConfig(self.name, normalized, immediate_save=self.immediate_save) if self.serialize:
instance.saveConfig(self.name, normalized, immediate_save=self.immediate_save)
except Exception: except Exception:
pass pass