kcm/kwinrules: Adapt spinbox width to actual text

Use FontMetrics to calculate the expected max text width so it
doesn't overflow with wider fonts, specially in some languages
like pt_BR

BUG: 438193
FIXED-IN: 5.22.1
This commit is contained in:
Ismael Asensio 2021-06-07 19:35:18 +02:00
parent dc73d622c0
commit 40d708f9c5

View file

@ -107,13 +107,24 @@ ScrollViewKCM {
QQC2.SpinBox { QQC2.SpinBox {
id: delaySpin id: delaySpin
enabled: detectButton.enabled enabled: detectButton.enabled
Layout.preferredWidth: Kirigami.Units.gridUnit * 8 Layout.preferredWidth: Math.max(metricsInstant.advanceWidth, metricsAfter.advanceWidth) + Kirigami.Units.gridUnit * 2
from: 0 from: 0
to: 30 to: 30
textFromValue: (value, locale) => { textFromValue: (value, locale) => {
return (value == 0) ? i18n("Instantly") return (value == 0) ? i18n("Instantly")
: i18np("After %1 second", "After %1 seconds", value) : i18np("After %1 second", "After %1 seconds", value)
} }
TextMetrics {
id: metricsInstant
font: delaySpin.font
text: i18n("Instantly")
}
TextMetrics {
id: metricsAfter
font: delaySpin.font
text: i18np("After %1 second", "After %1 seconds", 99)
}
} }
} }