From 72ff2a2f0db1e728d2a53f546021018e076bbfb5 Mon Sep 17 00:00:00 2001 From: Gabriel de Dietrich Date: Mon, 21 Mar 2016 14:16:09 -0700 Subject: QMacStyle: Return a guess for SE_ProgressBarGroove's rect QMacStyle doesn't know how to accurately compute SE_ProgressBarGroove But, since we only need the progress bar's main dimension, its rect is good enough for QProgressBarPrivate::repaintRequired(). Change-Id: I81e936003b847cc9cc0ddf4fbfc05ddc1c9f6625 Task-number: QTBUG-51120 Reviewed-by: Timur Pocheptsov --- src/widgets/styles/qmacstyle_mac.mm | 3 +++ src/widgets/widgets/qprogressbar.cpp | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm index 092cf4d543..9f241b6e67 100644 --- a/src/widgets/styles/qmacstyle_mac.mm +++ b/src/widgets/styles/qmacstyle_mac.mm @@ -4978,6 +4978,9 @@ QRect QMacStyle::subElementRect(SubElement sr, const QStyleOption *opt, break; } case SE_ProgressBarGroove: + // Wrong in the secondary dimension, but accurate enough in the main dimension. + rect = opt->rect; + break; case SE_ProgressBarLabel: break; case SE_ProgressBarContents: diff --git a/src/widgets/widgets/qprogressbar.cpp b/src/widgets/widgets/qprogressbar.cpp index adb4d0369b..c1c08d9ec7 100644 --- a/src/widgets/widgets/qprogressbar.cpp +++ b/src/widgets/widgets/qprogressbar.cpp @@ -155,7 +155,7 @@ bool QProgressBarPrivate::repaintRequired() const QStyleOptionProgressBar opt; q->initStyleOption(&opt); int cw = q->style()->pixelMetric(QStyle::PM_ProgressBarChunkWidth, &opt, q); - QRect groove = q->style()->subElementRect(QStyle::SE_ProgressBarGroove, &opt, q); + QRect groove = q->style()->subElementRect(QStyle::SE_ProgressBarGroove, &opt, q); // This expression is basically // (valueDifference / (maximum - minimum) > cw / groove.width()) // transformed to avoid integer division. -- cgit v1.2.3