mirror of
https://github.com/ynput/ayon-core.git
synced 2026-01-01 08:24:53 +01:00
Use minimum lines to affect minimum size hint
This commit is contained in:
parent
986def10ad
commit
e4e6b8dc9a
2 changed files with 27 additions and 4 deletions
|
|
@ -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 = {}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue