mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 22:02:15 +01:00
store ignore_missing_defaults and reuse it on callbacks
This commit is contained in:
parent
df37c2e1ff
commit
672ee1d98d
7 changed files with 34 additions and 8 deletions
|
|
@ -136,6 +136,7 @@ class BaseItemEntity(BaseEntity):
|
|||
# Override state defines which values are used, saved and how.
|
||||
# TODO convert to private attribute
|
||||
self._override_state = OverrideState.NOT_DEFINED
|
||||
self._ignore_missing_defaults = None
|
||||
|
||||
# These attributes may change values during existence of an object
|
||||
# Default value, studio override values and project override values
|
||||
|
|
|
|||
|
|
@ -377,6 +377,7 @@ class DictConditionalEntity(ItemEntity):
|
|||
|
||||
# Change has/had override states
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
|
||||
# Set override state on enum entity first
|
||||
self.enum_entity.set_override_state(state, ignore_missing_defaults)
|
||||
|
|
|
|||
|
|
@ -266,6 +266,7 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
|
||||
# Change has/had override states
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.set_override_state(state, ignore_missing_defaults)
|
||||
|
|
|
|||
|
|
@ -154,7 +154,9 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
|
||||
def add_key(self, key):
|
||||
new_child = self._add_key(key)
|
||||
new_child.set_override_state(self._override_state)
|
||||
new_child.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
self.on_change()
|
||||
return new_child
|
||||
|
||||
|
|
@ -328,6 +330,8 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
|
||||
# TODO change metadata
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
|
||||
# Ignore if is dynamic item and use default in that case
|
||||
if not self.is_dynamic_item and not self.is_in_dynamic_item:
|
||||
if state > OverrideState.DEFAULTS:
|
||||
|
|
@ -616,7 +620,9 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
if not self._can_discard_changes:
|
||||
return
|
||||
|
||||
self.set_override_state(self._override_state)
|
||||
self.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def _add_to_studio_default(self, _on_change_trigger):
|
||||
|
|
@ -651,7 +657,9 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
if label:
|
||||
children_label_by_id[child_entity.id] = label
|
||||
|
||||
child_entity.set_override_state(self._override_state)
|
||||
child_entity.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
self.children_label_by_id = children_label_by_id
|
||||
|
||||
|
|
@ -700,7 +708,9 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
if label:
|
||||
children_label_by_id[child_entity.id] = label
|
||||
|
||||
child_entity.set_override_state(self._override_state)
|
||||
child_entity.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
self.children_label_by_id = children_label_by_id
|
||||
|
||||
|
|
|
|||
|
|
@ -224,6 +224,7 @@ class InputEntity(EndpointEntity):
|
|||
return
|
||||
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
# Ignore if is dynamic item and use default in that case
|
||||
if not self.is_dynamic_item and not self.is_in_dynamic_item:
|
||||
if state > OverrideState.DEFAULTS:
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ class PathEntity(ItemEntity):
|
|||
return
|
||||
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
self.child_obj.set_override_state(state, ignore_missing_defaults)
|
||||
|
||||
def update_default_value(self, value):
|
||||
|
|
@ -351,6 +352,7 @@ class ListStrictEntity(ItemEntity):
|
|||
return
|
||||
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
# Ignore if is dynamic item and use default in that case
|
||||
if not self.is_dynamic_item and not self.is_in_dynamic_item:
|
||||
if state > OverrideState.DEFAULTS:
|
||||
|
|
|
|||
|
|
@ -102,7 +102,9 @@ class ListEntity(EndpointEntity):
|
|||
|
||||
def add_new_item(self, idx=None, trigger_change=True):
|
||||
child_obj = self._add_new_item(idx)
|
||||
child_obj.set_override_state(self._override_state)
|
||||
child_obj.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
if trigger_change:
|
||||
self.on_child_change(child_obj)
|
||||
|
|
@ -212,6 +214,7 @@ class ListEntity(EndpointEntity):
|
|||
return
|
||||
|
||||
self._override_state = state
|
||||
self._ignore_missing_defaults = ignore_missing_defaults
|
||||
|
||||
while self.children:
|
||||
self.children.pop(0)
|
||||
|
|
@ -403,7 +406,9 @@ class ListEntity(EndpointEntity):
|
|||
if self.had_studio_override:
|
||||
child_obj.update_studio_value(item)
|
||||
|
||||
child_obj.set_override_state(self._override_state)
|
||||
child_obj.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
if self._override_state >= OverrideState.PROJECT:
|
||||
self._has_project_override = self.had_project_override
|
||||
|
|
@ -435,7 +440,9 @@ class ListEntity(EndpointEntity):
|
|||
for item in value:
|
||||
child_obj = self._add_new_item()
|
||||
child_obj.update_default_value(item)
|
||||
child_obj.set_override_state(self._override_state)
|
||||
child_obj.set_override_state(
|
||||
self._override_state, self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
self._ignore_child_changes = False
|
||||
|
||||
|
|
@ -468,7 +475,10 @@ class ListEntity(EndpointEntity):
|
|||
child_obj.update_default_value(item)
|
||||
if self._has_studio_override:
|
||||
child_obj.update_studio_value(item)
|
||||
child_obj.set_override_state(self._override_state)
|
||||
child_obj.set_override_state(
|
||||
self._override_state,
|
||||
self._ignore_missing_defaults
|
||||
)
|
||||
|
||||
self._ignore_child_changes = False
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue