mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 00:44:52 +01:00
added child change ignore ability
This commit is contained in:
parent
634db846cd
commit
4e1c327b25
2 changed files with 23 additions and 5 deletions
|
|
@ -71,7 +71,8 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
self.parent.on_child_change(self)
|
||||
|
||||
def on_child_change(self, _child_obj):
|
||||
self.on_change()
|
||||
if not self.ignore_child_changes:
|
||||
self.on_change()
|
||||
|
||||
def _add_children(self, schema_data, first=True):
|
||||
added_children = []
|
||||
|
|
@ -108,6 +109,8 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
self.studio_override_metadata = NOT_SET
|
||||
self.project_override_metadata = NOT_SET
|
||||
|
||||
self.ignore_child_changes = False
|
||||
|
||||
# `current_metadata` are still when schema is loaded
|
||||
# - only metadata stored with dict item are gorup overrides in
|
||||
# M_OVERRIDEN_KEY
|
||||
|
|
@ -364,33 +367,48 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
)
|
||||
|
||||
def discard_changes(self):
|
||||
self.ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.discard_changes()
|
||||
self.ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def set_studio_default(self):
|
||||
if self.override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
|
||||
self.ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.set_studio_default()
|
||||
self.ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def reset_to_pype_default(self):
|
||||
if self.override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
|
||||
self.ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.reset_to_pype_default()
|
||||
self.ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def remove_overrides(self):
|
||||
if self.override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
|
||||
self.ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.remove_overrides()
|
||||
self.ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def set_as_overriden(self):
|
||||
if self.override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
|
||||
self.ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.set_as_overriden()
|
||||
self.ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
|
|
|||
|
|
@ -329,8 +329,7 @@ class ListEntity(ItemEntity):
|
|||
self._has_studio_override = self.had_studio_override
|
||||
|
||||
self.ignore_child_changes = False
|
||||
|
||||
self.on_change()
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def set_studio_default(self):
|
||||
if self.override_state is not OverrideState.STUDIO:
|
||||
|
|
@ -358,7 +357,8 @@ class ListEntity(ItemEntity):
|
|||
self.ignore_child_changes = False
|
||||
|
||||
self._has_studio_override = False
|
||||
self.on_change()
|
||||
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def set_as_overriden(self):
|
||||
self._has_project_override = True
|
||||
|
|
@ -390,7 +390,7 @@ class ListEntity(ItemEntity):
|
|||
|
||||
self._has_project_override = False
|
||||
|
||||
self.on_change()
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
def update_default_value(self, value):
|
||||
self.has_default_value = value is not NOT_SET
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue