Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge pull request #1446 from pypeclub/feature/faster_settings_actions
Browse files Browse the repository at this point in the history
Faster settings actions
  • Loading branch information
mkolar authored May 3, 2021
2 parents db1cb01 + bfc07c8 commit abe9352
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 14 deletions.
11 changes: 7 additions & 4 deletions openpype/settings/entities/dict_mutable_keys_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -519,6 +519,9 @@ def update_project_value(self, value):
self.had_project_override = value is not NOT_SET

def _discard_changes(self, on_change_trigger):
if not self.can_discard_changes:
return

self.set_override_state(self._override_state)
on_change_trigger.append(self.on_change)

Expand All @@ -527,6 +530,9 @@ def _add_to_studio_default(self, _on_change_trigger):
self.on_change()

def _remove_from_studio_default(self, on_change_trigger):
if not self.can_remove_from_studio_default:
return

value = self._default_value
if value is NOT_SET:
value = self.value_on_not_set
Expand Down Expand Up @@ -555,10 +561,7 @@ def _add_to_project_override(self, _on_change_trigger):
self.on_change()

def _remove_from_project_override(self, on_change_trigger):
if self._override_state is not OverrideState.PROJECT:
return

if not self.has_project_override:
if not self.can_remove_from_project_override:
return

if self._has_studio_override:
Expand Down
11 changes: 7 additions & 4 deletions openpype/settings/entities/input_entities.py
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,9 @@ def set_override_state(self, state):
self._current_value = copy.deepcopy(value)

def _discard_changes(self, on_change_trigger=None):
if not self.can_discard_changes:
return

self._value_is_modified = False
if self._override_state >= OverrideState.PROJECT:
self._has_project_override = self.had_project_override
Expand Down Expand Up @@ -286,6 +289,9 @@ def _add_to_studio_default(self, _on_change_trigger):
self.on_change()

def _remove_from_studio_default(self, on_change_trigger):
if not self.can_remove_from_studio_default:
return

value = self._default_value
if value is NOT_SET:
value = self.value_on_not_set
Expand All @@ -301,10 +307,7 @@ def _add_to_project_override(self, _on_change_trigger):
self.on_change()

def _remove_from_project_override(self, on_change_trigger):
if self._override_state is not OverrideState.PROJECT:
return

if not self._has_project_override:
if not self.can_remove_from_project_override:
return

self._has_project_override = False
Expand Down
9 changes: 3 additions & 6 deletions openpype/settings/entities/list_entity.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,7 @@ def _settings_value(self):
return output

def _discard_changes(self, on_change_trigger):
if self._override_state is OverrideState.NOT_DEFINED:
if not self.can_discard_changes:
return

not_set = object()
Expand Down Expand Up @@ -405,7 +405,7 @@ def _add_to_studio_default(self, _on_change_trigger):
self.on_change()

def _remove_from_studio_default(self, on_change_trigger):
if self._override_state is not OverrideState.STUDIO:
if not self.can_remove_from_studio_default:
return

value = self._default_value
Expand Down Expand Up @@ -433,10 +433,7 @@ def _add_to_project_override(self, _on_change_trigger):
self.on_change()

def _remove_from_project_override(self, on_change_trigger):
if self._override_state is not OverrideState.PROJECT:
return

if not self.has_project_override:
if not self.can_remove_from_project_override:
return

if self._has_studio_override:
Expand Down

0 comments on commit abe9352

Please sign in to comment.