QWindows11Style:Increase QDateTimeEdit width for layouted QDateTimeEdits

Fixes: QTBUG-124235
Pick-to: 6.7
Change-Id: I252dd59a716e4897baf96988307a335671bb141b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
(cherry picked from commit 5a1ea842c9259f4b0cddd5b2166d9736516af257)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Wladimir Leuschner 2024-09-03 13:14:45 +02:00 committed by Qt Cherry-pick Bot
parent f2a5284d94
commit d6f33a70c8

View File

@ -2050,12 +2050,14 @@ QSize QWindows11Style::sizeFromContents(ContentsType type, const QStyleOption *o
#endif
case QStyle::CT_SpinBox: {
if (const auto *spinBoxOpt = qstyleoption_cast<const QStyleOptionSpinBox *>(option)) {
if (qobject_cast<const QDateTimeEdit *>(widget))
break;
// Add button + frame widths
int width = 0;
if (const QSpinBox *spinBox = qobject_cast<const QSpinBox *>(widget)) {
if (const QDateTimeEdit *spinBox = qobject_cast<const QDateTimeEdit *>(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<const QSpinBox *>(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());