From e01c1436bbbb8bf8e1dc76110d9c7d290fbd6f13 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 27 Jan 2021 15:11:49 +0100 Subject: [PATCH] Path entity has base of widget --- .../settings/settings/widgets/item_widgets.py | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/pype/tools/settings/settings/widgets/item_widgets.py b/pype/tools/settings/settings/widgets/item_widgets.py index 8321d5c78b..ecb883c26a 100644 --- a/pype/tools/settings/settings/widgets/item_widgets.py +++ b/pype/tools/settings/settings/widgets/item_widgets.py @@ -445,6 +445,32 @@ class EnumeratorWidget(InputWidget): self.update_style() +class PathWidget(BaseWidget): + def create_ui(self): + self.content_widget = self + self.content_layout = QtWidgets.QGridLayout(self) + self.content_layout.setContentsMargins(0, 0, 0, 0) + self.content_layout.setSpacing(5) + + self.input_field = create_ui_for_entity(self.entity.child_obj, self) + + self.entity_widget.add_widget_to_layout(self, self.entity.label) + + def _on_entity_change(self): + print("_on_entity_change", self.__class__.__name__, self.entity.path) + + def add_widget_to_layout(self, widget, label=None): + row = self.content_layout.rowCount() + if label: + label_widget = GridLabelWidget(label, widget) + label_widget.input_field = widget + widget.label_widget = label_widget + self.content_layout.addWidget(label_widget, row, 0, 1, 1) + self.content_layout.addWidget(widget, row, 1, 1, 1) + else: + self.content_layout.addWidget(widget, row, 0, 1, 2) + + def create_ui_for_entity(entity, entity_widget): if isinstance(entity, GUIEntity): return GUIWidget(entity, entity_widget) @@ -466,12 +492,14 @@ def create_ui_for_entity(entity, entity_widget): elif isinstance(entity, EnumEntity): return EnumeratorWidget(entity, entity_widget) + + elif isinstance(entity, PathEntity): + return PathWidget(entity, entity_widget) + # DictMutableKeysEntity, # ListEntity, - # PathEntity, # ListStrictEntity, # - # EnumEntity, # PathInput, label = "<{}>: {} ({})".format( entity.__class__.__name__, entity.path, entity.value