From c89cb32871e5161d3bfbb5f919bb8654f0c50b41 Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Mon, 22 Feb 2021 20:21:22 +0100 Subject: [PATCH] Make the QConfigLayout custom class more responsive to the length of labels due to translations --- nw/gui/custom.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/nw/gui/custom.py b/nw/gui/custom.py index 1ecd7b8b..7df275f8 100644 --- a/nw/gui/custom.py +++ b/nw/gui/custom.py @@ -36,7 +36,8 @@ from PyQt5.QtCore import ( from PyQt5.QtWidgets import ( QGridLayout, QLabel, QWidget, QVBoxLayout, QHBoxLayout, QSizePolicy, QAbstractButton, QDialog, QTabWidget, QTabBar, QStyle, QDialogButtonBox, - QStylePainter, QStyleOptionTab, QListWidget, QListWidgetItem, QFrame + QStylePainter, QStyleOptionTab, QListWidget, QListWidgetItem, QFrame, + QLineEdit ) from nw.constants import trConst, nwUnicode, nwQuotes @@ -61,6 +62,7 @@ class QConfigLayout(QGridLayout): wSp = nw.CONFIG.pxInt(8) self.setHorizontalSpacing(wSp) self.setVerticalSpacing(wSp) + self.setColumnStretch(0, 1) return @@ -151,6 +153,7 @@ class QConfigLayout(QGridLayout): labelBox.addWidget(qLabel) labelBox.addWidget(qHelp) labelBox.setSpacing(0) + labelBox.addStretch(1) thisEntry["help"] = qHelp self.addLayout(labelBox, self._nextRow, 0, 1, 1, Qt.AlignLeft | Qt.AlignTop) @@ -163,15 +166,22 @@ class QConfigLayout(QGridLayout): controlBox.addWidget(qWidget, 0, Qt.AlignVCenter) controlBox.addWidget(QLabel(theUnit), 0, Qt.AlignVCenter) controlBox.setSpacing(wSp) - self.addLayout(controlBox, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignVCenter) + self.addLayout(controlBox, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignTop) + elif theButton is not None: controlBox = QHBoxLayout() controlBox.addWidget(qWidget, 0, Qt.AlignVCenter) controlBox.addWidget(theButton, 0, Qt.AlignVCenter) controlBox.setSpacing(wSp) - self.addLayout(controlBox, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignVCenter) + self.addLayout(controlBox, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignTop) + else: - self.addWidget(qWidget, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignVCenter) + if isinstance(theWidget, QLineEdit): + qLayout = QHBoxLayout() + qLayout.addWidget(theWidget) + self.addLayout(qLayout, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignTop) + else: + self.addWidget(qWidget, self._nextRow, 1, 1, 1, Qt.AlignRight | Qt.AlignTop) qLabel.setBuddy(qWidget) @@ -207,6 +217,9 @@ class QHelpLabel(QLabel): lblFont.setPointSizeF(fontSize*lblFont.pointSizeF()) self.setFont(lblFont) + self.setWordWrap(True) + self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) + return # END Class QHelpLabel @@ -409,6 +422,7 @@ class VerticalTabBar(QTabBar): def __init__(self, theParent=None): QTabBar.__init__(self, parent=theParent) + self._mW = nw.CONFIG.pxInt(150) return def tabSizeHint(self, theIndex): @@ -416,6 +430,7 @@ class VerticalTabBar(QTabBar): """ tSize = QTabBar.tabSizeHint(self, theIndex) tSize.transpose() + tSize.setWidth(min(tSize.width(), self._mW)) return tSize def paintEvent(self, theEvent):