From 9f04cd627cf41b587fd23a628900cbb5bc96eb29 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 22 Mar 2021 09:55:46 +0100 Subject: [PATCH] raw json widget also validate value types --- .../tools/settings/settings/widgets/item_widgets.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/pype/tools/settings/settings/widgets/item_widgets.py b/pype/tools/settings/settings/widgets/item_widgets.py index 7cfcd84488..ef4b98e1d0 100644 --- a/pype/tools/settings/settings/widgets/item_widgets.py +++ b/pype/tools/settings/settings/widgets/item_widgets.py @@ -366,7 +366,7 @@ class NumberWidget(InputWidget): class RawJsonInput(QtWidgets.QPlainTextEdit): tab_length = 4 - def __init__(self, *args, **kwargs): + def __init__(self, valid_type, *args, **kwargs): super(RawJsonInput, self).__init__(*args, **kwargs) self.setObjectName("RawJsonInput") self.setTabStopDistance( @@ -374,6 +374,7 @@ class RawJsonInput(QtWidgets.QPlainTextEdit): self.font() ).horizontalAdvance(" ") * self.tab_length ) + self.valid_type = valid_type def sizeHint(self): document = self.document() @@ -403,8 +404,8 @@ class RawJsonInput(QtWidgets.QPlainTextEdit): def has_invalid_value(self): try: - self.json_value() - return False + value = self.json_value() + return not isinstance(value, self.valid_type) except Exception: return True @@ -415,7 +416,11 @@ class RawJsonInput(QtWidgets.QPlainTextEdit): class RawJsonWidget(InputWidget): def _add_inputs_to_layout(self): - self.input_field = RawJsonInput(self.content_widget) + if self.entity.is_list: + valid_type = list + else: + valid_type = dict + self.input_field = RawJsonInput(valid_type, self.content_widget) self.input_field.setSizePolicy( QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.MinimumExpanding