Details
-
Bug
-
Resolution: Done
-
P2: Important
-
6.2.2, 6.2.3
-
None
-
macOS 12.1 Xocde 13.2.1
Windows 10 VisualStudio 2019
Debian Unstable GCC 11.2.0
-
-
f46db29d8c (qt/qtbase/dev) f46db29d8c (qt/tqtc-qtbase/dev) 7db9da339c (qt/qtbase/6.3) 7db9da339c (qt/tqtc-qtbase/6.3) 11db653adc (qt/qtbase/6.2) 11db653adc (qt/tqtc-qtbase/6.2) 7db9da339c (qt/tqtc-qtbase/6.3.0)
Description
problem was noticed in qBittorrent project, progress bar delegate was painted incorrectly - while it is "empty" font was white with light shadow around (so it is almost unreadable) and with progress bar filling text disappears (looks like overlapped by filled part), and only when progress bar become full text "100%" becomes visible. see attached screenshots.
qBittorrent uses Fusion style for progress bar painting, so firstly I looked into it. I was disappointed with no any significant changes compared to Qt 5, so decided to make some experiments. as result I found that replacing setClipRect() call with setClipRegion() fixes the issue https://www.dropbox.com/s/s42x0bthmm4oyo7/qt6-pb-workaround.patch?dl=0 . so, I looked into their implementations and also compared them with Qt 5 and found the difference in just one line https://github.com/qt/qtbase/blame/4db05007d72963c082f3ffdfcc7a68c1fb53c266/src/gui/painting/qpainter.cpp#L2871. this line is appeared with commit https://github.com/qt/qtbase/commit/5e4adb9fdab99749e3e75d8dc706ba6a0366f18d . changes analysis hints that similar change in setClipRect() just was forgotten or lost. reverting the changes in qpainter.cpp also fixes the issue. I don't know what is the correct way to fix this (add new line or revert changes), so opened a ticket.
patch which adds missing lines to setClipRect() functions is attached