mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-26 05:42:15 +01:00
styles are automatically updated on _ignore_value_changes changed to False
This commit is contained in:
parent
6342f02574
commit
31d75aa5cc
2 changed files with 51 additions and 2 deletions
|
|
@ -12,11 +12,12 @@ class StudioWidget(QtWidgets.QWidget):
|
|||
is_overriden = False
|
||||
is_group = False
|
||||
any_parent_is_group = False
|
||||
ignore_value_changes = False
|
||||
|
||||
def __init__(self, parent=None):
|
||||
super(StudioWidget, self).__init__(parent)
|
||||
|
||||
self._ignore_value_changes = False
|
||||
|
||||
self.input_fields = []
|
||||
|
||||
scroll_widget = QtWidgets.QScrollArea(self)
|
||||
|
|
@ -55,6 +56,20 @@ class StudioWidget(QtWidgets.QWidget):
|
|||
|
||||
self.reset()
|
||||
|
||||
@property
|
||||
def ignore_value_changes(self):
|
||||
return self._ignore_value_changes
|
||||
|
||||
@ignore_value_changes.setter
|
||||
def ignore_value_changes(self, value):
|
||||
self._ignore_value_changes = value
|
||||
if value is False:
|
||||
self.hierarchical_style_update()
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
for input_field in self.input_fields:
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
def reset(self):
|
||||
if self.content_layout.count() != 0:
|
||||
for widget in self.input_fields:
|
||||
|
|
@ -256,7 +271,7 @@ class ProjectWidget(QtWidgets.QWidget):
|
|||
super(ProjectWidget, self).__init__(parent)
|
||||
|
||||
self.is_overidable = False
|
||||
self.ignore_value_changes = False
|
||||
self._ignore_value_changes = False
|
||||
self.project_name = None
|
||||
|
||||
self.input_fields = []
|
||||
|
|
@ -310,6 +325,20 @@ class ProjectWidget(QtWidgets.QWidget):
|
|||
|
||||
self.reset()
|
||||
|
||||
@property
|
||||
def ignore_value_changes(self):
|
||||
return self._ignore_value_changes
|
||||
|
||||
@ignore_value_changes.setter
|
||||
def ignore_value_changes(self, value):
|
||||
self._ignore_value_changes = value
|
||||
if value is False:
|
||||
self.hierarchical_style_update()
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
for input_field in self.input_fields:
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
def reset(self):
|
||||
values = {"project": config.global_project_configurations()}
|
||||
schema = lib.gui_schema("projects_schema", "0_project_gui_schema")
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@ class ConfigWidget:
|
|||
raise NotImplementedError(
|
||||
"Method `reset_children_attributes` not implemented!"
|
||||
)
|
||||
@ignore_value_changes.setter
|
||||
def ignore_value_changes(self, value):
|
||||
self._parent.ignore_value_changes = value
|
||||
|
||||
def item_value(self):
|
||||
raise NotImplementedError(
|
||||
|
|
@ -136,6 +139,9 @@ class InputWidget(ConfigWidget):
|
|||
return NOT_SET, False
|
||||
return self.config_value(), self.is_group
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
self.update_style()
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
|
@ -1780,6 +1786,11 @@ class DictWidget(QtWidgets.QWidget, ConfigWidget):
|
|||
|
||||
self.update_style()
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
self.update_style()
|
||||
for input_field in self.input_fields:
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
def update_style(self, is_overriden=None):
|
||||
child_modified = self.child_modified
|
||||
child_state = self.style_state(self.child_overriden, child_modified)
|
||||
|
|
@ -1951,6 +1962,11 @@ class DictInvisible(QtWidgets.QWidget, ConfigWidget):
|
|||
|
||||
self.value_changed.emit(self)
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
self.update_style()
|
||||
for input_field in self.input_fields:
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
def apply_overrides(self, override_value):
|
||||
self._is_overriden = False
|
||||
for item in self.input_fields:
|
||||
|
|
@ -2051,6 +2067,10 @@ class DictFormWidget(QtWidgets.QWidget, ConfigWidget):
|
|||
self.input_fields[key] = item
|
||||
return item
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
for input_field in self.input_fields.items():
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
def item_value(self):
|
||||
output = {}
|
||||
for input_field in self.input_fields.values():
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue