mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 16:34:53 +01:00
child modified attribute added
This commit is contained in:
parent
355d60c3b4
commit
6b42c7bdc1
2 changed files with 68 additions and 24 deletions
|
|
@ -34,6 +34,7 @@ QLabel[state="overriden"] {
|
|||
}
|
||||
|
||||
QWidget[input-state="original"] {}
|
||||
|
||||
QWidget[input-state="modified"] {
|
||||
border-color: #137cbd;
|
||||
}
|
||||
|
|
@ -83,6 +84,10 @@ QPushButton[btn-type="expand-toggle"] {
|
|||
background: #1d272f;
|
||||
}
|
||||
|
||||
#ModifiableDict[state="child-modified"] {
|
||||
border-color: #137cbd;
|
||||
}
|
||||
|
||||
#TextListSubWidget {
|
||||
border: 1px solid #455c6e;
|
||||
border-radius: 3px;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import json
|
||||
from Qt import QtWidgets, QtCore, QtGui
|
||||
from Qt import QtWidgets, QtCore
|
||||
from . import config
|
||||
from .base import PypeConfigurationWidget, TypeToKlass
|
||||
from .widgets import (
|
||||
|
|
@ -67,6 +67,10 @@ class BooleanWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
def clear_value(self):
|
||||
self.reset_value()
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -148,6 +152,10 @@ class IntegerWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
|
||||
self.int_input.valueChanged.connect(self._on_value_change)
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -253,6 +261,10 @@ class FloatWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
|
||||
self.float_input.valueChanged.connect(self._on_value_change)
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -342,6 +354,10 @@ class TextSingleLineWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
|
||||
self.text_input.textChanged.connect(self._on_value_change)
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -427,6 +443,10 @@ class TextMultiLineWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
|
||||
self.text_input.textChanged.connect(self._on_value_change)
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -671,6 +691,10 @@ class TextListWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
|
||||
self.origin_value = self.item_value()
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
return self.is_modified
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -808,17 +832,11 @@ class DictExpandWidget(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
self.content_widget.updateGeometry()
|
||||
|
||||
@property
|
||||
def is_overriden(self):
|
||||
return self._is_overriden
|
||||
|
||||
@property
|
||||
def is_modified(self):
|
||||
_is_modified = False
|
||||
def child_modified(self):
|
||||
for input_field in self.input_fields:
|
||||
if input_field.is_modified:
|
||||
_is_modified = True
|
||||
break
|
||||
return _is_modified
|
||||
if input_field.child_modified:
|
||||
return True
|
||||
return False
|
||||
|
||||
def item_value(self):
|
||||
output = {}
|
||||
|
|
@ -885,17 +903,11 @@ class DictInvisible(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
return self._parent.is_overidable
|
||||
|
||||
@property
|
||||
def is_overriden(self):
|
||||
return self._is_overriden
|
||||
|
||||
@property
|
||||
def is_modified(self):
|
||||
_is_modified = False
|
||||
def child_modified(self):
|
||||
for input_field in self.input_fields:
|
||||
if input_field.is_modified:
|
||||
_is_modified = True
|
||||
break
|
||||
return _is_modified
|
||||
if input_field.child_modified:
|
||||
return True
|
||||
return False
|
||||
|
||||
def item_value(self):
|
||||
output = {}
|
||||
|
|
@ -930,6 +942,8 @@ class DictFormWidget(QtWidgets.QWidget):
|
|||
def __init__(
|
||||
self, input_data, values, parent_keys, parent, label_widget=None
|
||||
):
|
||||
self._parent = parent
|
||||
|
||||
self.is_modified = False
|
||||
self.is_overriden = False
|
||||
self.is_group = False
|
||||
|
|
@ -952,6 +966,13 @@ class DictFormWidget(QtWidgets.QWidget):
|
|||
output.update(input_field.config_value())
|
||||
return output
|
||||
|
||||
@property
|
||||
def child_modified(self):
|
||||
for input_field in self.input_fields:
|
||||
if input_field.child_modified:
|
||||
return True
|
||||
return False
|
||||
|
||||
@property
|
||||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
|
@ -1086,14 +1107,23 @@ class ModifiableDictItem(QtWidgets.QWidget, PypeConfigurationWidget):
|
|||
def is_overidable(self):
|
||||
return self._parent.is_overidable
|
||||
|
||||
def is_key_modified(self):
|
||||
return self._key() != self.origin_key
|
||||
|
||||
def is_value_modified(self):
|
||||
return self.value_input.is_modified
|
||||
|
||||
@property
|
||||
def is_modified(self):
|
||||
return self.is_value_modified() or self.is_key_modified()
|
||||
|
||||
def _update_style(self):
|
||||
is_modified = self._key() != self.origin_key
|
||||
# if self._is_overidable and self.is_overriden:
|
||||
# if is_modified:
|
||||
# state = "overriden-modified"
|
||||
# else:
|
||||
# state = "overriden"
|
||||
if is_modified:
|
||||
if self.is_key_modified():
|
||||
state = "modified"
|
||||
else:
|
||||
state = "original"
|
||||
|
|
@ -1230,6 +1260,7 @@ class ModifiableDict(ExpandingWidget, PypeConfigurationWidget):
|
|||
self._parent = parent
|
||||
|
||||
self.is_modified = False
|
||||
self.child_modified = False
|
||||
self.is_overriden = False
|
||||
self.is_group = input_data.get("is_group", False)
|
||||
|
||||
|
|
@ -1249,7 +1280,7 @@ class ModifiableDict(ExpandingWidget, PypeConfigurationWidget):
|
|||
self.origin_value = self.item_value()
|
||||
|
||||
def _on_value_change(self, value=None):
|
||||
self.is_modified = self.item_value() != self.origin_value
|
||||
self.child_modified = self.item_value() != self.origin_value
|
||||
self.is_overriden = True
|
||||
|
||||
self._update_style()
|
||||
|
|
@ -1259,6 +1290,14 @@ class ModifiableDict(ExpandingWidget, PypeConfigurationWidget):
|
|||
return self._parent.is_overidable
|
||||
|
||||
def _update_style(self):
|
||||
if self.child_modified:
|
||||
widget_state = "child-modified"
|
||||
else:
|
||||
widget_state = ""
|
||||
|
||||
self.setProperty("state", widget_state)
|
||||
self.style().polish(self)
|
||||
|
||||
if self.is_overidable and self.is_overriden:
|
||||
if self.is_modified:
|
||||
state = "overriden-modified"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue