From ad038b6763782004fca88a8e02e23a495412e211 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 5 Feb 2021 15:58:35 +0100 Subject: [PATCH] list widget handles entity changes --- .../settings/widgets/list_item_widget.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/pype/tools/settings/settings/widgets/list_item_widget.py b/pype/tools/settings/settings/widgets/list_item_widget.py index 2accb2e91b..2c8b7fb2f4 100644 --- a/pype/tools/settings/settings/widgets/list_item_widget.py +++ b/pype/tools/settings/settings/widgets/list_item_widget.py @@ -244,8 +244,21 @@ class ListWidget(InputWidget): invalid.extend(input_field.get_invalid()) return invalid - def _on_value_change(self): - print("_on_value_change", self.__class__.__name__, self.entity.path) + def _on_entity_change(self): + in_input_fields = list() + for input_field in self.input_fields: + in_input_fields.append(input_field.entity) + + for child_entity in self.entity: + if child_entity not in in_input_fields: + self.add_row(child_entity) + else: + in_input_fields.remove(child_entity) + + if in_input_fields: + for input_field in tuple(self.input_fields): + if input_field.entity in in_input_fields: + self.remove_row(input_field) def count(self): return len(self.input_fields)