From 6e9e7a40f8989897fccd12b24804fe50998cfbef Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 27 Jan 2021 10:04:15 +0100 Subject: [PATCH] number widget shows input widget --- pype/settings/entities/input_entities.py | 4 +-- pype/tools/settings/settings/widgets/base.py | 2 +- .../settings/settings/widgets/item_types.py | 25 ++++++++++++++++++- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/pype/settings/entities/input_entities.py b/pype/settings/entities/input_entities.py index a3f4e82f88..559cf16069 100644 --- a/pype/settings/entities/input_entities.py +++ b/pype/settings/entities/input_entities.py @@ -271,9 +271,9 @@ class NumberEntity(InputEntity): def item_initalization(self): self.minimum = self.schema_data.get("minimum", -99999) self.maximum = self.schema_data.get("maximum", 99999) - self.decimals = self.schema_data.get("decimal", 0) + self.decimal = self.schema_data.get("decimal", 0) - if self.decimals: + if self.decimal: valid_value_types = (int, float) else: valid_value_types = (int, ) diff --git a/pype/tools/settings/settings/widgets/base.py b/pype/tools/settings/settings/widgets/base.py index e020cc956f..e26d8c0c44 100644 --- a/pype/tools/settings/settings/widgets/base.py +++ b/pype/tools/settings/settings/widgets/base.py @@ -402,7 +402,7 @@ class SystemWidget(SettingsCategoryWidget): content_widget = QtWidgets.QWidget(scroll_widget) content_layout = QtWidgets.QVBoxLayout(content_widget) content_layout.setContentsMargins(3, 3, 3, 3) - content_layout.setSpacing(0) + content_layout.setSpacing(5) content_layout.setAlignment(QtCore.Qt.AlignTop) scroll_widget.setWidgetResizable(True) diff --git a/pype/tools/settings/settings/widgets/item_types.py b/pype/tools/settings/settings/widgets/item_types.py index eb9d104a8c..2d6266a589 100644 --- a/pype/tools/settings/settings/widgets/item_types.py +++ b/pype/tools/settings/settings/widgets/item_types.py @@ -4325,7 +4325,30 @@ class TextWidgetTwo(BaseWidget): class NumberWidgetTwo(BaseWidget): - + def create_ui(self): + layout = QtWidgets.QHBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(5) + + kwargs = { + "minimum": self.entity.minimum, + "maximum": self.entity.maximum, + "decimal": self.entity.decimal + } + self.input_field = NumberSpinBox(self, **kwargs) + + self.setFocusProxy(self.input_field) + + layout.addWidget(self.input_field, 1) + + self.input_field.valueChanged.connect(self._on_value_change) + + self.entity_widget.add_widget_to_layout(self, self.entity.label) + + def _on_value_change(self): + print("value changed", self.entity.path) + + def create_ui_for_entity(entity, entity_widget): if isinstance(entity, GUIEntity): return GUIWidget(entity, entity_widget)