mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-02 17:04:54 +01:00
has unsaved changes should work properly
This commit is contained in:
parent
4407f5186c
commit
b9c31d1c5d
3 changed files with 24 additions and 4 deletions
|
|
@ -159,6 +159,8 @@ class BaseEntity:
|
|||
self.defaults_not_set = False
|
||||
|
||||
# Default input attributes
|
||||
self.had_default_value = False
|
||||
|
||||
self.has_studio_override = False
|
||||
self.had_studio_override = False
|
||||
|
||||
|
|
@ -168,7 +170,7 @@ class BaseEntity:
|
|||
self.value_is_modified = False
|
||||
self.is_invalid = False
|
||||
|
||||
self.override_state = OverrideState.STUDIO
|
||||
self.override_state = OverrideState.NOT_DEFINED
|
||||
|
||||
@property
|
||||
def path(self):
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ __all__ = (
|
|||
|
||||
|
||||
class OverrideState(enum.Enum):
|
||||
NOT_DEFINED = object()
|
||||
DEFAULTS = object()
|
||||
STUDIO = object()
|
||||
PROJECT = object()
|
||||
|
|
|
|||
|
|
@ -125,17 +125,33 @@ class InputEntity(ItemEntity):
|
|||
|
||||
@property
|
||||
def has_unsaved_changes(self):
|
||||
if self.override_state is OverrideState.NOT_DEFINED:
|
||||
return False
|
||||
|
||||
if self.value_is_modified:
|
||||
return True
|
||||
|
||||
if self.override_state is OverrideState.STUDIO:
|
||||
if self.override_state is OverrideState.DEFAULTS:
|
||||
if not self.had_default_value:
|
||||
return True
|
||||
|
||||
elif self.override_state is OverrideState.STUDIO:
|
||||
if self.has_studio_override != self.had_studio_override:
|
||||
return True
|
||||
|
||||
if not self.has_studio_override and not self.had_default_value:
|
||||
return True
|
||||
|
||||
elif self.override_state is OverrideState.PROJECT:
|
||||
if self.has_project_override != self.had_project_override:
|
||||
return True
|
||||
|
||||
if (
|
||||
not self.has_project_override
|
||||
and not self.has_studio_override
|
||||
and not self.had_default_value
|
||||
):
|
||||
return True
|
||||
return False
|
||||
|
||||
def settings_value(self):
|
||||
|
|
@ -179,9 +195,10 @@ class InputEntity(ItemEntity):
|
|||
|
||||
if value is NOT_SET:
|
||||
value = self.value_on_not_set
|
||||
self.value_is_modified = True
|
||||
self.had_default_value = False
|
||||
else:
|
||||
self.value_is_modified = False
|
||||
self.had_default_value = True
|
||||
self.value_is_modified = False
|
||||
|
||||
self._current_value = copy.deepcopy(value)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue