label changes should work now

This commit is contained in:
iLLiCiTiT 2021-02-17 18:31:48 +01:00
parent af642c6762
commit c8d132fd06

View file

@ -13,8 +13,6 @@ from .lib import (
CHILD_OFFSET
)
from pype.settings.entities import NOT_SET
def create_add_btn(parent):
add_btn = QtWidgets.QPushButton("+", parent)
@ -161,8 +159,8 @@ class ModifiableDictItem(QtWidgets.QWidget):
self.is_key_duplicated = False
self.is_required = False
self.origin_key = NOT_SET
self.origin_key_label = NOT_SET
self.origin_key = None
self.origin_key_label = None
self.temp_key = ""
self.uuid_key = None
@ -171,6 +169,8 @@ class ModifiableDictItem(QtWidgets.QWidget):
self.wrapper_widget = None
self.key_label_input = None
if collapsible_key:
self.create_collapsible_ui()
else:
@ -272,7 +272,7 @@ class ModifiableDictItem(QtWidgets.QWidget):
key_input.textChanged.connect(self._on_key_change)
key_input.returnPressed.connect(self._on_enter_press)
key_label_input.textChanged.connect(self._on_key_change)
key_label_input.textChanged.connect(self._on_key_label_change)
key_label_input.returnPressed.connect(self._on_enter_press)
edit_btn.clicked.connect(self.on_edit_pressed)
@ -339,10 +339,13 @@ class ModifiableDictItem(QtWidgets.QWidget):
def set_key_label(self, key, label):
self.set_key(key)
if label:
self.key_label_input.setText(label)
self.set_label(label)
self.set_edit_mode(False)
def set_label(self, label):
if self.key_label_input and label is not None:
self.key_label_input.setText(label)
def set_as_required(self, key):
self.key_input.setText(key)
self.key_input.setEnabled(False)
@ -372,6 +375,8 @@ class ModifiableDictItem(QtWidgets.QWidget):
self.set_edit_mode(False)
def _on_key_label_change(self):
label = self.key_label_value()
self.entity_widget.change_label(label, self)
self.update_key_label()
def _on_key_change(self):
@ -439,17 +444,6 @@ class ModifiableDictItem(QtWidgets.QWidget):
def is_key_label_modified(self):
return self.key_label_value() != self.origin_key_label
def is_value_modified(self):
return self.input_field.is_modified
@property
def is_modified(self):
return (
self.is_key_modified()
or self.is_key_label_modified()
or self.is_value_modified()
)
def trigger_hierarchical_style_update(self):
self.entity_widget.trigger_hierarchical_style_update()
@ -516,9 +510,9 @@ class ModifiableDictItem(QtWidgets.QWidget):
return self.entity_widget.input_fields.index(self)
def key_label_value(self):
if self.collapsible_key:
if self.key_label_input:
return self.key_label_input.text()
return NOT_SET
return None
def mouseReleaseEvent(self, event):
return QtWidgets.QWidget.mouseReleaseEvent(self, event)
@ -697,6 +691,13 @@ class DictMutableKeysWidget(BaseWidget):
self.entity.children_by_key[sk_old_key]
)
def change_label(self, label, input_field):
entity = input_field.entity
_label = self.entity.get_child_label(entity)
if _label == label:
return
self.entity.set_child_label(entity, label)
def add_widget_for_child(
self, child_entity, after_widget=None, first=False
):
@ -803,6 +804,10 @@ class DictMutableKeysWidget(BaseWidget):
_input_field = self.add_widget_for_child(child_entity, *args)
_input_field.origin_key = key
_input_field.set_key(key)
if self.entity.collapsible_key:
label = self.entity.get_child_label(child_entity)
_input_field.origin_key_label = label
_input_field.set_label(label)
_input_field.set_entity_value()
else:
@ -810,6 +815,11 @@ class DictMutableKeysWidget(BaseWidget):
changed = True
input_field.set_key(key)
if self.entity.collapsible_key:
label = self.entity.get_child_label(child_entity)
if input_field.key_label_value() != label:
input_field.set_label(label)
if changed:
self.on_shuffle()
@ -821,6 +831,10 @@ class DictMutableKeysWidget(BaseWidget):
input_field = self.add_widget_for_child(child_entity)
input_field.origin_key = key
input_field.set_key(key)
if self.entity.collapsible_key:
label = self.entity.get_child_label(child_entity)
input_field.origin_key_label = label
input_field.set_label(label)
for input_field in self.input_fields:
input_field.set_entity_value()