From 3c517dd02a1e669d450b363384121a7d262f41a2 Mon Sep 17 00:00:00 2001 From: Doris Verria Date: Mon, 14 Sep 2026 17:49:18 +0200 Subject: QStyleKitStyle: Size indicators and foregrounds independently Follow what the Quick side already does and don't include foreground sizing and margins when determining indicator size. Pick-to: 6.12 Change-Id: I7a264ee297c89513674fa858834b69c65985d747 Reviewed-by: Richard Moe Gustavsen --- src/labs/stylekit/widgets/qstylekitstyle.cpp | 38 +++++----------------------- src/labs/stylekit/widgets/qstylekitstyle_p.h | 2 -- 2 files changed, 6 insertions(+), 34 deletions(-) diff --git a/src/labs/stylekit/widgets/qstylekitstyle.cpp b/src/labs/stylekit/widgets/qstylekitstyle.cpp index d962417048..316d7039e8 100644 --- a/src/labs/stylekit/widgets/qstylekitstyle.cpp +++ b/src/labs/stylekit/widgets/qstylekitstyle.cpp @@ -1570,8 +1570,6 @@ QStyleKitStylePrivate::metricsForReader(QQStyleKitReader *reader) const metrics.margins = QMargins(0, 0, 0, 0); metrics.indicatorImplicitSize = QSize(0, 0); metrics.indicatorMargins = QMargins(0, 0, 0, 0); - metrics.foregroundImplicitSize = QSize(0, 0); - metrics.foregroundMargins = QMargins(0, 0, 0, 0); const auto *background = props->background(); // Note: scale is deliberately absent here as it should not affect layout @@ -1595,22 +1593,6 @@ QStyleKitStylePrivate::metricsForReader(QQStyleKitReader *reader) const if (indicator) { metrics.indicatorMargins = elementMargins(indicator); metrics.indicatorImplicitSize = elementSize(indicator->width(), indicator->height()); - - const auto *foreground = indicator->foreground(); - if (foreground) { - metrics.foregroundMargins = elementMargins(foreground); - const auto foregroundW = resolvedWidth( - foreground, - std::max(.0, qreal(metrics.indicatorImplicitSize.width() - - metrics.foregroundMargins.left() - - metrics.foregroundMargins.right()))); - const auto foregroundH = resolvedHeight( - foreground, - std::max(.0, qreal(metrics.indicatorImplicitSize.height() - - metrics.foregroundMargins.top() - - metrics.foregroundMargins.bottom()))); - metrics.foregroundImplicitSize = elementSize(foregroundW, foregroundH); - } } const auto *handle = props->handle(); if (handle) { @@ -3879,20 +3861,12 @@ QSize QStyleKitStyle::sizeFromContents(ContentsType ct, const QStyleOption *opt, if (!resolved.isValid()) break; const auto &metrics = *resolved.metrics; - const auto indicatorW = std::max( - metrics.indicatorImplicitSize.width() - + metrics.indicatorMargins.left() - + metrics.indicatorMargins.right(), - metrics.foregroundImplicitSize.width() - + metrics.foregroundMargins.left() - + metrics.foregroundMargins.right()); - const auto indicatorH = std::max( - metrics.indicatorImplicitSize.height() - + metrics.indicatorMargins.top() - + metrics.indicatorMargins.bottom(), - metrics.foregroundImplicitSize.height() - + metrics.foregroundMargins.top() - + metrics.foregroundMargins.bottom()); + const auto indicatorW = metrics.indicatorImplicitSize.width() + + metrics.indicatorMargins.left() + + metrics.indicatorMargins.right(); + const auto indicatorH = metrics.indicatorImplicitSize.height() + + metrics.indicatorMargins.top() + + metrics.indicatorMargins.bottom(); const int bgW = metrics.bgImplicitSize.width() + metrics.margins.left() + metrics.margins.right(); const int bgH = metrics.bgImplicitSize.height() diff --git a/src/labs/stylekit/widgets/qstylekitstyle_p.h b/src/labs/stylekit/widgets/qstylekitstyle_p.h index fb80788b62..633fbf175e 100644 --- a/src/labs/stylekit/widgets/qstylekitstyle_p.h +++ b/src/labs/stylekit/widgets/qstylekitstyle_p.h @@ -52,8 +52,6 @@ class QStyleKitStylePrivate : public QCommonStylePrivate QSize bgImplicitSize; QSize indicatorImplicitSize; QMargins indicatorMargins; - QSize foregroundImplicitSize; - QMargins foregroundMargins; QSize handleImplicitSize; QMargins handleMargins; int spacing; -- cgit v1.2.3