From d6f33a70c8a78fe40a24819c79f677b490cf8232 Mon Sep 17 00:00:00 2001 From: Wladimir Leuschner Date: Tue, 3 Sep 2024 13:14:45 +0200 Subject: [PATCH] QWindows11Style:Increase QDateTimeEdit width for layouted QDateTimeEdits Fixes: QTBUG-124235 Pick-to: 6.7 Change-Id: I252dd59a716e4897baf96988307a335671bb141b Reviewed-by: Oliver Wolff (cherry picked from commit 5a1ea842c9259f4b0cddd5b2166d9736516af257) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/styles/modernwindows/qwindows11style.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/plugins/styles/modernwindows/qwindows11style.cpp b/src/plugins/styles/modernwindows/qwindows11style.cpp index bd43a734125..9528d0325fd 100644 --- a/src/plugins/styles/modernwindows/qwindows11style.cpp +++ b/src/plugins/styles/modernwindows/qwindows11style.cpp @@ -2050,12 +2050,14 @@ QSize QWindows11Style::sizeFromContents(ContentsType type, const QStyleOption *o #endif case QStyle::CT_SpinBox: { if (const auto *spinBoxOpt = qstyleoption_cast(option)) { - if (qobject_cast(widget)) - break; - // Add button + frame widths int width = 0; - if (const QSpinBox *spinBox = qobject_cast(widget)) { + + if (const QDateTimeEdit *spinBox = qobject_cast(widget)) { + const QSize textSizeMin = spinBoxOpt->fontMetrics.size(Qt::TextSingleLine, spinBox->minimumDateTime().toString(spinBox->displayFormat())); + const QSize textSizeMax = spinBoxOpt->fontMetrics.size(Qt::TextSingleLine, spinBox->maximumDateTime().toString(spinBox->displayFormat())); + width = qMax(textSizeMin.width(),textSizeMax.width()); + } else if (const QSpinBox *spinBox = qobject_cast(widget)) { const QSize textSizeMin = spinBoxOpt->fontMetrics.size(Qt::TextSingleLine, QString::number(spinBox->minimum())); const QSize textSizeMax = spinBoxOpt->fontMetrics.size(Qt::TextSingleLine, QString::number(spinBox->maximum())); width = qMax(textSizeMin.width(),textSizeMax.width());