diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index d51f9b9684..117eca7d6b 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -360,14 +360,16 @@ class TextWidget(InputWidget): def _add_inputs_to_layout(self): multiline = self.entity.multiline if multiline: - self.input_field = SettingsPlainTextEdit(self.content_widget) + input_field = SettingsPlainTextEdit(self.content_widget) + if self.entity.minimum_lines_count: + input_field.set_minimum_lines(self.entity.minimum_lines_count) else: - self.input_field = SettingsLineEdit(self.content_widget) - + input_field = SettingsLineEdit(self.content_widget) placeholder_text = self.entity.placeholder_text if placeholder_text: - self.input_field.setPlaceholderText(placeholder_text) + input_field.setPlaceholderText(placeholder_text) + self.input_field = input_field self.setFocusProxy(self.input_field) layout_kwargs = {} diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index fd04cb0a23..08ffaac0a1 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -300,11 +300,32 @@ class SettingsLineEdit(PlaceholderLineEdit): class SettingsPlainTextEdit(QtWidgets.QPlainTextEdit): focused_in = QtCore.Signal() + _min_lines = 0 def focusInEvent(self, event): super(SettingsPlainTextEdit, self).focusInEvent(event) self.focused_in.emit() + def set_minimum_lines(self, lines): + self._min_lines = lines + self.update() + + def minimumSizeHint(self): + result = super(SettingsPlainTextEdit, self).minimumSizeHint() + if self._min_lines < 1: + return result + document = self.document() + margins = self.contentsMargins() + d_margin = ( + ((document.documentMargin() + self.frameWidth()) * 2) + + margins.top() + margins.bottom() + ) + font = document.defaultFont() + font_metrics = QtGui.QFontMetrics(font) + result.setHeight( + d_margin + (font_metrics.lineSpacing() * self._min_lines)) + return result + class SettingsToolBtn(ImageButton): _mask_pixmap = None