mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
minor tweaks in DictWidget to be able used as widget
This commit is contained in:
parent
bbab7178c7
commit
bd5e1ae310
1 changed files with 40 additions and 23 deletions
|
|
@ -2297,8 +2297,12 @@ class DictWidget(QtWidgets.QWidget, SettingObject):
|
||||||
item.set_as_overriden()
|
item.set_as_overriden()
|
||||||
|
|
||||||
def update_default_values(self, parent_values):
|
def update_default_values(self, parent_values):
|
||||||
|
# Make sure this is set to False
|
||||||
|
self._state = None
|
||||||
|
self._child_state = None
|
||||||
|
|
||||||
value = NOT_SET
|
value = NOT_SET
|
||||||
if self._as_widget:
|
if self.as_widget:
|
||||||
value = parent_values
|
value = parent_values
|
||||||
elif parent_values is not NOT_SET:
|
elif parent_values is not NOT_SET:
|
||||||
value = parent_values.get(self.key, NOT_SET)
|
value = parent_values.get(self.key, NOT_SET)
|
||||||
|
|
@ -2307,15 +2311,21 @@ class DictWidget(QtWidgets.QWidget, SettingObject):
|
||||||
item.update_default_values(value)
|
item.update_default_values(value)
|
||||||
|
|
||||||
def update_studio_values(self, parent_values):
|
def update_studio_values(self, parent_values):
|
||||||
|
# Make sure this is set to False
|
||||||
|
self._state = None
|
||||||
|
self._child_state = None
|
||||||
value = NOT_SET
|
value = NOT_SET
|
||||||
if parent_values is not NOT_SET:
|
if self.as_widget:
|
||||||
value = parent_values.get(self.key, NOT_SET)
|
value = parent_values
|
||||||
|
else:
|
||||||
|
if parent_values is not NOT_SET:
|
||||||
|
value = parent_values.get(self.key, NOT_SET)
|
||||||
|
|
||||||
self._has_studio_override = False
|
self._has_studio_override = False
|
||||||
if self.is_group and value is not NOT_SET:
|
if self.is_group and value is not NOT_SET:
|
||||||
self._has_studio_override = True
|
self._has_studio_override = True
|
||||||
|
|
||||||
self._had_studio_override = bool(self._has_studio_override)
|
self._had_studio_override = bool(self._has_studio_override)
|
||||||
|
|
||||||
for item in self.input_fields:
|
for item in self.input_fields:
|
||||||
item.update_studio_values(value)
|
item.update_studio_values(value)
|
||||||
|
|
@ -2325,37 +2335,40 @@ class DictWidget(QtWidgets.QWidget, SettingObject):
|
||||||
self._state = None
|
self._state = None
|
||||||
self._child_state = None
|
self._child_state = None
|
||||||
|
|
||||||
metadata = {}
|
if not self.as_widget:
|
||||||
groups = tuple()
|
metadata = {}
|
||||||
override_values = NOT_SET
|
groups = tuple()
|
||||||
if parent_values is not NOT_SET:
|
override_values = NOT_SET
|
||||||
metadata = parent_values.get(METADATA_KEY) or metadata
|
if parent_values is not NOT_SET:
|
||||||
groups = metadata.get("groups") or groups
|
metadata = parent_values.get(METADATA_KEY) or metadata
|
||||||
override_values = parent_values.get(self.key, override_values)
|
groups = metadata.get("groups") or groups
|
||||||
|
override_values = parent_values.get(self.key, override_values)
|
||||||
|
|
||||||
self._is_overriden = self.key in groups
|
self._is_overriden = self.key in groups
|
||||||
|
|
||||||
for item in self.input_fields:
|
for item in self.input_fields:
|
||||||
item.apply_overrides(override_values)
|
item.apply_overrides(override_values)
|
||||||
|
|
||||||
if not self._is_overriden:
|
if not self.as_widget:
|
||||||
self._is_overriden = (
|
if not self._is_overriden:
|
||||||
self.is_group
|
self._is_overriden = (
|
||||||
and self.is_overidable
|
self.is_group
|
||||||
and self.child_overriden
|
and self.is_overidable
|
||||||
)
|
and self.child_overriden
|
||||||
self._was_overriden = bool(self._is_overriden)
|
)
|
||||||
|
self._was_overriden = bool(self._is_overriden)
|
||||||
|
|
||||||
def _on_value_change(self, item=None):
|
def _on_value_change(self, item=None):
|
||||||
if self.ignore_value_changes:
|
if self.ignore_value_changes:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self.is_group and not self.any_parent_as_widget:
|
if self.is_group and not (self.as_widget or self.any_parent_as_widget):
|
||||||
if self.is_overidable:
|
if self.is_overidable:
|
||||||
self._is_overriden = True
|
self._is_overriden = True
|
||||||
else:
|
else:
|
||||||
self._has_studio_override = True
|
self._has_studio_override = True
|
||||||
|
|
||||||
|
# TODO check if this is required
|
||||||
self.hierarchical_style_update()
|
self.hierarchical_style_update()
|
||||||
|
|
||||||
self.value_changed.emit(self)
|
self.value_changed.emit(self)
|
||||||
|
|
@ -2368,6 +2381,10 @@ class DictWidget(QtWidgets.QWidget, SettingObject):
|
||||||
self.update_style()
|
self.update_style()
|
||||||
|
|
||||||
def update_style(self, is_overriden=None):
|
def update_style(self, is_overriden=None):
|
||||||
|
# TODO add style update when used as widget
|
||||||
|
if self.as_widget:
|
||||||
|
return
|
||||||
|
|
||||||
child_has_studio_override = self.child_has_studio_override
|
child_has_studio_override = self.child_has_studio_override
|
||||||
child_modified = self.child_modified
|
child_modified = self.child_modified
|
||||||
child_invalid = self.child_invalid
|
child_invalid = self.child_invalid
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue