mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 13:52:15 +01:00
all actions have wrappers
This commit is contained in:
parent
c0a1144490
commit
cfb339da73
7 changed files with 58 additions and 49 deletions
|
|
@ -546,8 +546,23 @@ class BaseItemEntity(BaseEntity):
|
|||
"""Entity's implementation to discard all changes made by user."""
|
||||
pass
|
||||
|
||||
def add_to_studio_default(self, on_change_trigger=None):
|
||||
initialized = False
|
||||
if on_change_trigger is None:
|
||||
if not self.can_add_to_studio_default:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
on_change_trigger = []
|
||||
|
||||
self._add_to_studio_default(on_change_trigger)
|
||||
|
||||
if initialized:
|
||||
for callback in on_change_trigger:
|
||||
callback()
|
||||
|
||||
@abstractmethod
|
||||
def add_to_studio_default(self):
|
||||
def _add_to_studio_default(self, on_change_trigger):
|
||||
"""Item's implementation to set current values as studio's overrides.
|
||||
|
||||
Mark item and it's children as they have studio overrides.
|
||||
|
|
@ -592,8 +607,23 @@ class BaseItemEntity(BaseEntity):
|
|||
"""
|
||||
pass
|
||||
|
||||
def add_to_project_override(self, on_change_trigger=None):
|
||||
initialized = False
|
||||
if on_change_trigger is None:
|
||||
if not self.can_add_to_project_override:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
on_change_trigger = []
|
||||
|
||||
self._add_to_project_override(on_change_trigger)
|
||||
|
||||
if initialized:
|
||||
for callback in on_change_trigger:
|
||||
callback()
|
||||
|
||||
@abstractmethod
|
||||
def add_to_project_override(self):
|
||||
def _add_to_project_override(self, on_change_trigger):
|
||||
"""Item's implementation to set values as overriden for project.
|
||||
|
||||
Mark item and all it's children to be stored as project overrides.
|
||||
|
|
|
|||
|
|
@ -435,13 +435,10 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
|
||||
self._ignore_child_changes = False
|
||||
|
||||
def add_to_studio_default(self):
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
|
||||
def _add_to_studio_default(self, on_change_trigger):
|
||||
self._ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.add_to_studio_default()
|
||||
child_obj.add_to_studio_default(on_change_trigger)
|
||||
self._ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
|
|
@ -451,13 +448,10 @@ class DictImmutableKeysEntity(ItemEntity):
|
|||
child_obj.remove_from_studio_default(on_change_trigger)
|
||||
self._ignore_child_changes = False
|
||||
|
||||
def add_to_project_override(self):
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
|
||||
def _add_to_project_override(self, _on_change_trigger):
|
||||
self._ignore_child_changes = True
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.add_to_project_override()
|
||||
child_obj.add_to_project_override(_on_change_trigger)
|
||||
self._ignore_child_changes = False
|
||||
self.parent.on_child_change(self)
|
||||
|
||||
|
|
|
|||
|
|
@ -443,9 +443,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
self.set_override_state(self._override_state)
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def add_to_studio_default(self):
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
def _add_to_studio_default(self, _on_change_trigger):
|
||||
self._has_studio_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
@ -473,9 +471,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def add_to_project_override(self):
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
def _add_to_project_override(self, _on_change_trigger):
|
||||
self._has_project_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
|
|||
|
|
@ -276,9 +276,7 @@ class InputEntity(EndpointEntity):
|
|||
|
||||
raise NotImplementedError("BUG: Unexcpected part of code.")
|
||||
|
||||
def add_to_studio_default(self):
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
def _add_to_studio_default(self, _on_change_trigger):
|
||||
self._has_studio_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
@ -293,9 +291,7 @@ class InputEntity(EndpointEntity):
|
|||
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def add_to_project_override(self):
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
def _add_to_project_override(self, _on_change_trigger):
|
||||
self._has_project_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
|
|||
|
|
@ -162,20 +162,20 @@ class PathEntity(ItemEntity):
|
|||
def update_studio_value(self, value):
|
||||
self.child_obj.update_studio_value(value)
|
||||
|
||||
def _discard_changes(self, *args):
|
||||
self.child_obj.discard_changes(*args)
|
||||
def _discard_changes(self, *args, **kwargs):
|
||||
self.child_obj.discard_changes(*args, **kwargs)
|
||||
|
||||
def add_to_studio_default(self):
|
||||
self.child_obj.add_to_studio_default()
|
||||
def _add_to_studio_default(self, *args, **kwargs):
|
||||
self.child_obj.add_to_studio_default(*args, **kwargs)
|
||||
|
||||
def _remove_from_studio_default(self, *args):
|
||||
self.child_obj.remove_from_studio_default(*args)
|
||||
def _remove_from_studio_default(self, *args, **kwargs):
|
||||
self.child_obj.remove_from_studio_default(*args, **kwargs)
|
||||
|
||||
def add_to_project_override(self):
|
||||
self.child_obj.add_to_project_override()
|
||||
def _add_to_project_override(self, *args, **kwargs):
|
||||
self.child_obj.add_to_project_override(*args, **kwargs)
|
||||
|
||||
def _remove_from_project_override(self, *args):
|
||||
self.child_obj.remove_from_project_override(*args)
|
||||
def _remove_from_project_override(self, *args, **kwargs):
|
||||
self.child_obj.remove_from_project_override(*args, **kwargs)
|
||||
|
||||
def reset_callbacks(self):
|
||||
super(PathEntity, self).reset_callbacks()
|
||||
|
|
@ -359,9 +359,7 @@ class ListStrictEntity(ItemEntity):
|
|||
for child_obj in self.children:
|
||||
child_obj.discard_changes(on_change_trigger)
|
||||
|
||||
def add_to_studio_default(self):
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
def _add_to_studio_default(self, _on_change_trigger):
|
||||
self._has_studio_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
@ -375,14 +373,11 @@ class ListStrictEntity(ItemEntity):
|
|||
|
||||
self._has_studio_override = False
|
||||
|
||||
def add_to_project_override(self):
|
||||
def _add_to_project_override(self, _on_change_trigger):
|
||||
self._has_project_override = True
|
||||
self.on_change()
|
||||
|
||||
def _remove_from_project_override(self, on_change_trigger):
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return
|
||||
|
||||
self._ignore_child_changes = True
|
||||
|
||||
for child_obj in self.children:
|
||||
|
|
|
|||
|
|
@ -357,9 +357,7 @@ class ListEntity(EndpointEntity):
|
|||
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def add_to_studio_default(self):
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return
|
||||
def _add_to_studio_default(self, _on_change_trigger):
|
||||
self._has_studio_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
@ -387,7 +385,7 @@ class ListEntity(EndpointEntity):
|
|||
|
||||
on_change_trigger.append(self.on_change)
|
||||
|
||||
def add_to_project_override(self):
|
||||
def _add_to_project_override(self, _on_change_trigger):
|
||||
self._has_project_override = True
|
||||
self.on_change()
|
||||
|
||||
|
|
|
|||
|
|
@ -321,20 +321,20 @@ class RootEntity(BaseItemEntity):
|
|||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.discard_changes(on_change_trigger)
|
||||
|
||||
def add_to_studio_default(self):
|
||||
def _add_to_studio_default(self, *args, **kwargs):
|
||||
"""Implementation of abstract method only trigger children callback."""
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.add_to_studio_default()
|
||||
child_obj.add_to_studio_default(*args, **kwargs)
|
||||
|
||||
def _remove_from_studio_default(self, on_change_trigger):
|
||||
"""Implementation of abstract method only trigger children callback."""
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.remove_from_studio_default(on_change_trigger)
|
||||
|
||||
def add_to_project_override(self):
|
||||
def _add_to_project_override(self, *args, **kwargs):
|
||||
"""Implementation of abstract method only trigger children callback."""
|
||||
for child_obj in self.non_gui_children.values():
|
||||
child_obj.add_to_project_override()
|
||||
child_obj.add_to_project_override(*args, **kwargs)
|
||||
|
||||
def _remove_from_project_override(self, on_change_trigger):
|
||||
"""Implementation of abstract method only trigger children callback."""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue