mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
added required modifications to be able use dynamically loaded items
This commit is contained in:
parent
ce0465aab9
commit
c6fe33b08a
1 changed files with 63 additions and 73 deletions
|
|
@ -72,19 +72,15 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
content_layout.setContentsMargins(CHILD_OFFSET, 5, 0, 0)
|
||||
content_layout.setSpacing(5)
|
||||
|
||||
content_layout.addWidget(self.root_widget)
|
||||
content_layout.addWidget(self.templates_widget)
|
||||
content_layout.addWidget(self.imageio_widget)
|
||||
for input_field in self.input_fields:
|
||||
content_layout.addWidget(input_field)
|
||||
input_field.value_changed.connect(self._on_value_change)
|
||||
|
||||
body_widget.set_content_widget(content_widget)
|
||||
|
||||
self.body_widget = body_widget
|
||||
self.label_widget = body_widget.label_widget
|
||||
|
||||
self.root_widget.value_changed.connect(self._on_value_change)
|
||||
self.templates_widget.value_changed.connect(self._on_value_change)
|
||||
self.imageio_widget.value_changed.connect(self._on_value_change)
|
||||
|
||||
def update_default_values(self, parent_values):
|
||||
self._state = None
|
||||
self._child_state = None
|
||||
|
|
@ -94,9 +90,8 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
else:
|
||||
value = NOT_SET
|
||||
|
||||
self.root_widget.update_default_values(value)
|
||||
self.templates_widget.update_default_values(value)
|
||||
self.imageio_widget.update_default_values(value)
|
||||
for input_field in self.input_fields:
|
||||
input_field.update_default_values(value)
|
||||
|
||||
def update_studio_values(self, parent_values):
|
||||
self._state = None
|
||||
|
|
@ -107,9 +102,8 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
else:
|
||||
value = NOT_SET
|
||||
|
||||
self.root_widget.update_studio_values(value)
|
||||
self.templates_widget.update_studio_values(value)
|
||||
self.imageio_widget.update_studio_values(value)
|
||||
for input_field in self.input_fields:
|
||||
input_field.update_studio_values(value)
|
||||
|
||||
def apply_overrides(self, parent_values):
|
||||
# Make sure this is set to False
|
||||
|
|
@ -120,9 +114,8 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
if parent_values is not NOT_SET:
|
||||
value = parent_values.get(self.key, value)
|
||||
|
||||
self.root_widget.apply_overrides(value)
|
||||
self.templates_widget.apply_overrides(value)
|
||||
self.imageio_widget.apply_overrides(value)
|
||||
for input_field in self.input_fields:
|
||||
input_field.apply_overrides(value)
|
||||
|
||||
def set_value(self, value):
|
||||
raise TypeError("AnatomyWidget does not allow to use `set_value`")
|
||||
|
|
@ -156,67 +149,58 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
self._child_state = child_state
|
||||
|
||||
def hierarchical_style_update(self):
|
||||
self.root_widget.hierarchical_style_update()
|
||||
self.templates_widget.hierarchical_style_update()
|
||||
self.imageio_widget.hierarchical_style_update()
|
||||
for input_field in self.input_fields:
|
||||
input_field.hierarchical_style_update()
|
||||
|
||||
self.update_style()
|
||||
|
||||
@property
|
||||
def child_has_studio_override(self):
|
||||
return (
|
||||
self.root_widget.child_has_studio_override
|
||||
or self.templates_widget.child_has_studio_override
|
||||
or self.imageio_widget.child_has_studio_override
|
||||
)
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_has_studio_override:
|
||||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return (
|
||||
self.root_widget.child_modified
|
||||
or self.templates_widget.child_modified
|
||||
or self.imageio_widget.child_modified
|
||||
)
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_modified:
|
||||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def child_overriden(self):
|
||||
return (
|
||||
self.root_widget.child_overriden
|
||||
or self.templates_widget.child_overriden
|
||||
or self.imageio_widget.child_overriden
|
||||
)
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_overriden:
|
||||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def child_invalid(self):
|
||||
return (
|
||||
self.root_widget.child_invalid
|
||||
or self.templates_widget.child_invalid
|
||||
or self.imageio_widget.child_invalid
|
||||
)
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_invalid:
|
||||
return True
|
||||
return False
|
||||
|
||||
def set_as_overriden(self):
|
||||
self.root_widget.set_as_overriden()
|
||||
self.templates_widget.set_as_overriden()
|
||||
self.imageio_widget.set_as_overriden()
|
||||
for input_field in self.input_fields:
|
||||
input_field.child_invalid.set_as_overriden()
|
||||
|
||||
def remove_overrides(self):
|
||||
self.root_widget.remove_overrides()
|
||||
self.templates_widget.remove_overrides()
|
||||
self.imageio_widget.remove_overrides()
|
||||
for input_field in self.input_fields:
|
||||
input_field.remove_overrides()
|
||||
|
||||
def reset_to_pype_default(self):
|
||||
self.root_widget.reset_to_pype_default()
|
||||
self.templates_widget.reset_to_pype_default()
|
||||
self.imageio_widget.reset_to_pype_default()
|
||||
for input_field in self.input_fields:
|
||||
input_field.reset_to_pype_default()
|
||||
|
||||
def set_studio_default(self):
|
||||
self.root_widget.set_studio_default()
|
||||
self.templates_widget.set_studio_default()
|
||||
self.imageio_widget.set_studio_default()
|
||||
for input_field in self.input_fields:
|
||||
input_field.set_studio_default()
|
||||
|
||||
def discard_changes(self):
|
||||
self.root_widget.discard_changes()
|
||||
self.templates_widget.discard_changes()
|
||||
self.imageio_widget.discard_changes()
|
||||
for input_field in self.input_fields:
|
||||
input_field.discard_changes()
|
||||
|
||||
def overrides(self):
|
||||
if self.child_overriden:
|
||||
|
|
@ -225,26 +209,30 @@ class AnatomyWidget(QtWidgets.QWidget, SettingObject):
|
|||
|
||||
def item_value(self):
|
||||
output = {}
|
||||
output.update(self.root_widget.config_value())
|
||||
output.update(self.templates_widget.config_value())
|
||||
output.update(self.imageio_widget.config_value())
|
||||
for input_field in self.input_fields:
|
||||
output.update(input_field.config_value())
|
||||
return output
|
||||
|
||||
def studio_overrides(self):
|
||||
if (
|
||||
self.root_widget.child_has_studio_override
|
||||
or self.templates_widget.child_has_studio_override
|
||||
or self.imageio_widget.child_has_studio_override
|
||||
):
|
||||
groups = [
|
||||
self.root_widget.key,
|
||||
self.templates_widget.key,
|
||||
self.imageio_widget.key
|
||||
]
|
||||
value = self.config_value()
|
||||
value[self.key][METADATA_KEY] = {"groups": groups}
|
||||
return value, True
|
||||
return NOT_SET, False
|
||||
has_overrides = False
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_has_studio_override:
|
||||
has_overrides = True
|
||||
break
|
||||
|
||||
if not has_overrides:
|
||||
return NOT_SET, False
|
||||
|
||||
groups = []
|
||||
for input_field in self.input_fields:
|
||||
groups.append(input_field.key)
|
||||
|
||||
value = self.config_value()
|
||||
if METADATA_KEY not in value[self.key]:
|
||||
value[self.key][METADATA_KEY] = {}
|
||||
value[self.key][METADATA_KEY]["groups"] = groups
|
||||
|
||||
return value, True
|
||||
|
||||
def config_value(self):
|
||||
return {self.key: self.item_value()}
|
||||
|
|
@ -267,6 +255,7 @@ class RootsWidget(QtWidgets.QWidget, SettingObject):
|
|||
self.studio_is_multiroot = False
|
||||
self.was_multiroot = NOT_SET
|
||||
|
||||
def create_ui(self, _label_widget=None):
|
||||
checkbox_widget = QtWidgets.QWidget(self)
|
||||
multiroot_label = QtWidgets.QLabel(
|
||||
"Use multiple roots", checkbox_widget
|
||||
|
|
@ -650,6 +639,7 @@ class TemplatesWidget(QtWidgets.QWidget, SettingObject):
|
|||
|
||||
self.key = input_data["key"]
|
||||
|
||||
def create_ui(self, label_widget=None):
|
||||
body_widget = ExpandingWidget("Templates", self)
|
||||
content_widget = QtWidgets.QWidget(body_widget)
|
||||
body_widget.set_content_widget(content_widget)
|
||||
|
|
@ -775,5 +765,5 @@ class TemplatesWidget(QtWidgets.QWidget, SettingObject):
|
|||
|
||||
|
||||
TypeToKlass.types["anatomy"] = AnatomyWidget
|
||||
TypeToKlass.types["anatomy_roots"] = AnatomyWidget
|
||||
TypeToKlass.types["anatomy_templates"] = AnatomyWidget
|
||||
TypeToKlass.types["anatomy_roots"] = RootsWidget
|
||||
TypeToKlass.types["anatomy_templates"] = TemplatesWidget
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue