mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 21:04:40 +01:00
Merge pull request #1457 from pypeclub/bugfix/settings_actions_process_fix
This commit is contained in:
commit
7afdbbcfb8
6 changed files with 79 additions and 57 deletions
|
|
@ -457,25 +457,16 @@ class BaseItemEntity(BaseEntity):
|
|||
pass
|
||||
|
||||
@property
|
||||
def can_discard_changes(self):
|
||||
"""Result defines if `discard_changes` will be processed.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
def _can_discard_changes(self):
|
||||
"""Defines if `discard_changes` will be processed."""
|
||||
return self.has_unsaved_changes
|
||||
|
||||
@property
|
||||
def can_add_to_studio_default(self):
|
||||
"""Result defines if `add_to_studio_default` will be processed.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
def _can_add_to_studio_default(self):
|
||||
"""Defines if `add_to_studio_default` will be processed."""
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return False
|
||||
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
|
||||
# Skip if entity is under group
|
||||
if self.group_item:
|
||||
return False
|
||||
|
|
@ -487,30 +478,18 @@ class BaseItemEntity(BaseEntity):
|
|||
return True
|
||||
|
||||
@property
|
||||
def can_remove_from_studio_default(self):
|
||||
"""Result defines if `remove_from_studio_default` can be triggered.
|
||||
|
||||
This can be also used as validation before the method is called.
|
||||
"""
|
||||
def _can_remove_from_studio_default(self):
|
||||
"""Defines if `remove_from_studio_default` can be processed."""
|
||||
if self._override_state is not OverrideState.STUDIO:
|
||||
return False
|
||||
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
|
||||
if not self.has_studio_override:
|
||||
return False
|
||||
return True
|
||||
|
||||
@property
|
||||
def can_add_to_project_override(self):
|
||||
"""Result defines if `add_to_project_override` can be triggered.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
|
||||
def _can_add_to_project_override(self):
|
||||
"""Defines if `add_to_project_override` can be processed."""
|
||||
# Show only when project overrides are set
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return False
|
||||
|
|
@ -525,14 +504,8 @@ class BaseItemEntity(BaseEntity):
|
|||
return True
|
||||
|
||||
@property
|
||||
def can_remove_from_project_override(self):
|
||||
"""Result defines if `remove_from_project_override` can be triggered.
|
||||
|
||||
This can be also used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
|
||||
def _can_remove_from_project_override(self):
|
||||
"""Defines if `remove_from_project_override` can be processed."""
|
||||
if self._override_state is not OverrideState.PROJECT:
|
||||
return False
|
||||
|
||||
|
|
@ -544,6 +517,54 @@ class BaseItemEntity(BaseEntity):
|
|||
return False
|
||||
return True
|
||||
|
||||
@property
|
||||
def can_trigger_discard_changes(self):
|
||||
"""Defines if can trigger `discard_changes`.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
return self._can_discard_changes
|
||||
|
||||
@property
|
||||
def can_trigger_add_to_studio_default(self):
|
||||
"""Defines if can trigger `add_to_studio_default`.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
return self._can_add_to_studio_default
|
||||
|
||||
@property
|
||||
def can_trigger_remove_from_studio_default(self):
|
||||
"""Defines if can trigger `remove_from_studio_default`.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
return self._can_remove_from_studio_default
|
||||
|
||||
@property
|
||||
def can_trigger_add_to_project_override(self):
|
||||
"""Defines if can trigger `add_to_project_override`.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
return self._can_add_to_project_override
|
||||
|
||||
@property
|
||||
def can_trigger_remove_from_project_override(self):
|
||||
"""Defines if can trigger `remove_from_project_override`.
|
||||
|
||||
Also can be used as validation before the method is called.
|
||||
"""
|
||||
if self.is_dynamic_item or self.is_in_dynamic_item:
|
||||
return False
|
||||
return self._can_remove_from_project_override
|
||||
|
||||
def discard_changes(self, on_change_trigger=None):
|
||||
"""Discard changes on entity and it's children.
|
||||
|
||||
|
|
@ -568,7 +589,7 @@ class BaseItemEntity(BaseEntity):
|
|||
"""
|
||||
initialized = False
|
||||
if on_change_trigger is None:
|
||||
if not self.can_discard_changes:
|
||||
if not self.can_trigger_discard_changes:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
|
|
@ -588,7 +609,7 @@ class BaseItemEntity(BaseEntity):
|
|||
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:
|
||||
if not self.can_trigger_add_to_studio_default:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
|
|
@ -625,7 +646,7 @@ class BaseItemEntity(BaseEntity):
|
|||
"""
|
||||
initialized = False
|
||||
if on_change_trigger is None:
|
||||
if not self.can_remove_from_studio_default:
|
||||
if not self.can_trigger_remove_from_studio_default:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
|
|
@ -649,7 +670,7 @@ class BaseItemEntity(BaseEntity):
|
|||
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:
|
||||
if not self.can_trigger_add_to_project_override:
|
||||
return
|
||||
|
||||
initialized = True
|
||||
|
|
@ -689,7 +710,7 @@ class BaseItemEntity(BaseEntity):
|
|||
|
||||
initialized = False
|
||||
if on_change_trigger is None:
|
||||
if not self.can_remove_from_project_override:
|
||||
if not self.can_trigger_remove_from_project_override:
|
||||
return
|
||||
initialized = True
|
||||
on_change_trigger = []
|
||||
|
|
|
|||
|
|
@ -522,7 +522,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
self.had_project_override = value is not NOT_SET
|
||||
|
||||
def _discard_changes(self, on_change_trigger):
|
||||
if not self.can_discard_changes:
|
||||
if not self._can_discard_changes:
|
||||
return
|
||||
|
||||
self.set_override_state(self._override_state)
|
||||
|
|
@ -533,7 +533,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_studio_default(self, on_change_trigger):
|
||||
if not self.can_remove_from_studio_default:
|
||||
if not self._can_remove_from_studio_default:
|
||||
return
|
||||
|
||||
value = self._default_value
|
||||
|
|
@ -574,7 +574,7 @@ class DictMutableKeysEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_project_override(self, on_change_trigger):
|
||||
if not self.can_remove_from_project_override:
|
||||
if not self._can_remove_from_project_override:
|
||||
return
|
||||
|
||||
if self._has_studio_override:
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ class InputEntity(EndpointEntity):
|
|||
self._current_value = copy.deepcopy(value)
|
||||
|
||||
def _discard_changes(self, on_change_trigger=None):
|
||||
if not self.can_discard_changes:
|
||||
if not self._can_discard_changes:
|
||||
return
|
||||
|
||||
self._value_is_modified = False
|
||||
|
|
@ -289,7 +289,7 @@ class InputEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_studio_default(self, on_change_trigger):
|
||||
if not self.can_remove_from_studio_default:
|
||||
if not self._can_remove_from_studio_default:
|
||||
return
|
||||
|
||||
value = self._default_value
|
||||
|
|
@ -307,7 +307,7 @@ class InputEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_project_override(self, on_change_trigger):
|
||||
if not self.can_remove_from_project_override:
|
||||
if not self._can_remove_from_project_override:
|
||||
return
|
||||
|
||||
self._has_project_override = False
|
||||
|
|
|
|||
|
|
@ -453,4 +453,5 @@ class ListStrictEntity(ItemEntity):
|
|||
|
||||
def reset_callbacks(self):
|
||||
super(ListStrictEntity, self).reset_callbacks()
|
||||
self.child_obj.reset_callbacks()
|
||||
for child_obj in self.children:
|
||||
child_obj.reset_callbacks()
|
||||
|
|
|
|||
|
|
@ -343,7 +343,7 @@ class ListEntity(EndpointEntity):
|
|||
return output
|
||||
|
||||
def _discard_changes(self, on_change_trigger):
|
||||
if not self.can_discard_changes:
|
||||
if not self._can_discard_changes:
|
||||
return
|
||||
|
||||
not_set = object()
|
||||
|
|
@ -405,7 +405,7 @@ class ListEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_studio_default(self, on_change_trigger):
|
||||
if not self.can_remove_from_studio_default:
|
||||
if not self._can_remove_from_studio_default:
|
||||
return
|
||||
|
||||
value = self._default_value
|
||||
|
|
@ -433,7 +433,7 @@ class ListEntity(EndpointEntity):
|
|||
self.on_change()
|
||||
|
||||
def _remove_from_project_override(self, on_change_trigger):
|
||||
if not self.can_remove_from_project_override:
|
||||
if not self._can_remove_from_project_override:
|
||||
return
|
||||
|
||||
if self._has_studio_override:
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ class BaseWidget(QtWidgets.QWidget):
|
|||
def _discard_changes_action(self, menu, actions_mapping):
|
||||
# TODO use better condition as unsaved changes may be caused due to
|
||||
# changes in schema.
|
||||
if not self.entity.can_discard_changes:
|
||||
if not self.entity.can_trigger_discard_changes:
|
||||
return
|
||||
|
||||
def discard_changes():
|
||||
|
|
@ -86,7 +86,7 @@ class BaseWidget(QtWidgets.QWidget):
|
|||
def _add_to_studio_default(self, menu, actions_mapping):
|
||||
"""Set values as studio overrides."""
|
||||
# Skip if not in studio overrides
|
||||
if not self.entity.can_add_to_studio_default:
|
||||
if not self.entity.can_trigger_add_to_studio_default:
|
||||
return
|
||||
|
||||
action = QtWidgets.QAction("Add to studio default")
|
||||
|
|
@ -94,7 +94,7 @@ class BaseWidget(QtWidgets.QWidget):
|
|||
menu.addAction(action)
|
||||
|
||||
def _remove_from_studio_default_action(self, menu, actions_mapping):
|
||||
if not self.entity.can_remove_from_studio_default:
|
||||
if not self.entity.can_trigger_remove_from_studio_default:
|
||||
return
|
||||
|
||||
def remove_from_studio_default():
|
||||
|
|
@ -106,7 +106,7 @@ class BaseWidget(QtWidgets.QWidget):
|
|||
menu.addAction(action)
|
||||
|
||||
def _add_to_project_override_action(self, menu, actions_mapping):
|
||||
if not self.entity.can_add_to_project_override:
|
||||
if not self.entity.can_trigger_add_to_project_override:
|
||||
return
|
||||
|
||||
action = QtWidgets.QAction("Add to project project override")
|
||||
|
|
@ -114,7 +114,7 @@ class BaseWidget(QtWidgets.QWidget):
|
|||
menu.addAction(action)
|
||||
|
||||
def _remove_from_project_override_action(self, menu, actions_mapping):
|
||||
if not self.entity.can_remove_from_project_override:
|
||||
if not self.entity.can_trigger_remove_from_project_override:
|
||||
return
|
||||
|
||||
def remove_from_project_override():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue