diff --git a/pype/settings/lib.py b/pype/settings/lib.py index c8578b84f8..d7395e7f1a 100644 --- a/pype/settings/lib.py +++ b/pype/settings/lib.py @@ -510,7 +510,7 @@ def get_environments(): dict: Output should be ready for `acre` module. """ - return find_environments(get_system_settings()) + return find_environments(get_system_settings(False)) def clear_metadata_from_settings(values): diff --git a/pype/tools/settings/settings/widgets/base.py b/pype/tools/settings/settings/widgets/base.py index 5127ea9f88..404ef8fed7 100644 --- a/pype/tools/settings/settings/widgets/base.py +++ b/pype/tools/settings/settings/widgets/base.py @@ -244,7 +244,6 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def _on_hide_studio_overrides(self, state): self._hide_studio_overrides = (state == QtCore.Qt.Checked) self._update_values() - self.hierarchical_style_update() def _save_as_defaults(self): if not self.items_are_valid(): @@ -288,7 +287,6 @@ class SettingsCategoryWidget(QtWidgets.QWidget): reset_default_settings() self._update_values() - self.hierarchical_style_update() def _update_values(self): self.ignore_value_changes = True @@ -590,14 +588,11 @@ class ProjectWidget(SettingsCategoryWidget): project_anatomy_data = output_data.get(PROJECT_ANATOMY_KEY, {}) save_project_anatomy(self.project_name, project_anatomy_data) - if studio_overrides: - # Update saved values - self._update_values() - else: - # Refill values with overrides - self._on_project_change() - def update_values(self): + if self.project_name is not None: + self._on_project_change() + return + default_values = lib.convert_data_to_gui_data( {self.main_schema_key: get_default_settings()} ) diff --git a/pype/tools/settings/settings/widgets/item_types.py b/pype/tools/settings/settings/widgets/item_types.py index 063262c43f..d96fb60cdd 100644 --- a/pype/tools/settings/settings/widgets/item_types.py +++ b/pype/tools/settings/settings/widgets/item_types.py @@ -326,9 +326,11 @@ class SettingObject: return True if self.is_overidable: + if self.as_widget: + return self._was_overriden != self.is_overriden return self.was_overriden != self.is_overriden - else: - return self.has_studio_override != self.had_studio_override + + return self.has_studio_override != self.had_studio_override @property def is_overriden(self): @@ -1744,7 +1746,9 @@ class ListWidget(QtWidgets.QWidget, InputObject): def apply_overrides(self, parent_values): self._is_modified = False - if parent_values is NOT_SET or self.key not in parent_values: + if self.as_widget: + override_value = parent_values + elif parent_values is NOT_SET or self.key not in parent_values: override_value = NOT_SET else: override_value = parent_values[self.key] @@ -2345,9 +2349,9 @@ class ModifiableDictItem(QtWidgets.QWidget, SettingObject): if self._is_empty: return False return ( - self.is_value_modified() - or self.is_key_modified() + self.is_key_modified() or self.is_key_label_modified() + or self.is_value_modified() ) def hierarchical_style_update(self):