added child overriden attribute

This commit is contained in:
iLLiCiTiT 2020-07-27 17:36:04 +02:00
parent e867c88ac2
commit 8ebbf14097
2 changed files with 74 additions and 4 deletions

View file

@ -88,6 +88,14 @@ QPushButton[btn-type="expand-toggle"] {
border-color: #137cbd;
}
#DictExpandWidget[state="child-overriden"], #ModifiableDict[state="child-overriden"] {
border-color: #ff8c1a;
}
#DictExpandWidget[state="child-overriden-modified"], #ModifiableDict[state="child-overriden-modified"] {
border-color: #00b386;
}
#TextListSubWidget {
border: 1px solid #455c6e;
border-radius: 3px;

View file

@ -19,8 +19,7 @@ class BooleanWidget(QtWidgets.QWidget, PypeConfigurationWidget):
):
self._as_widget = values is AS_WIDGET
self._parent = parent
print(10*"*", parent)
print(values)
self.is_modified = False
self.is_group = False
self.is_overriden = False
@ -72,6 +71,10 @@ class BooleanWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -157,6 +160,10 @@ class IntegerWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -266,6 +273,10 @@ class FloatWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -365,6 +376,10 @@ class TextSingleLineWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -461,6 +476,10 @@ class TextMultiLineWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -718,6 +737,10 @@ class TextListWidget(QtWidgets.QWidget, PypeConfigurationWidget):
def child_modified(self):
return self.is_modified
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
@ -866,8 +889,15 @@ class DictExpandWidget(QtWidgets.QWidget, PypeConfigurationWidget):
self._update_style()
def _update_style(self):
if self.child_modified:
child_modified = self.child_modified
child_overriden = self.child_overriden
if child_modified and child_overriden:
widget_state = "child-overriden-modified"
elif child_modified:
widget_state = "child-modified"
elif child_overriden:
widget_state = "child-overriden"
else:
widget_state = ""
@ -894,6 +924,13 @@ class DictExpandWidget(QtWidgets.QWidget, PypeConfigurationWidget):
return True
return False
@property
def child_overriden(self):
for input_field in self.input_fields:
if input_field.child_overriden:
return True
return False
def item_value(self):
output = {}
for input_field in self.input_fields:
@ -966,6 +1003,13 @@ class DictInvisible(QtWidgets.QWidget, PypeConfigurationWidget):
return True
return False
@property
def child_overriden(self):
for input_field in self.input_fields:
if input_field.child_overriden:
return True
return False
def item_value(self):
output = {}
for input_field in self.input_fields:
@ -1035,6 +1079,13 @@ class DictFormWidget(QtWidgets.QWidget):
return True
return False
@property
def child_overriden(self):
for input_field in self.input_fields:
if input_field.child_overriden:
return True
return False
@property
def is_overidable(self):
return self._parent.is_overidable
@ -1349,13 +1400,24 @@ class ModifiableDict(ExpandingWidget, PypeConfigurationWidget):
self._update_style()
@property
def child_overriden(self):
return self.is_overriden
@property
def is_overidable(self):
return self._parent.is_overidable
def _update_style(self):
if self.child_modified:
child_modified = self.child_modified
child_overriden = self.child_overriden
if child_modified and child_overriden:
widget_state = "child-overriden-modified"
elif child_modified:
widget_state = "child-modified"
elif child_overriden:
widget_state = "child-overriden"
else:
widget_state = ""