summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-07-14 09:33:02 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-07-14 16:17:33 +0200
commit1d48572b4ea765cb8d81bf227eabaf907a91e7de (patch)
tree55527cd910d90f9d115b451686f27f343ec4ee67 /src/widgets
parent7bb464554a8d86d2874e6d01fb6d5e911447c475 (diff)
Use base style when drawing item view item with only indicator styled
The base style should still draw the item and the selection highlighting. Fixes: QTBUG-83619 Pick-to: 6.2 6.1 Change-Id: I1cd8c4fce48cb5543337415918fc99ffb5e19e00 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/styles/qstylesheetstyle.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp
index 74037eba19..bdeb2ac365 100644
--- a/src/widgets/styles/qstylesheetstyle.cpp
+++ b/src/widgets/styles/qstylesheetstyle.cpp
@@ -4281,15 +4281,19 @@ void QStyleSheetStyle::drawControl(ControlElement ce, const QStyleOption *opt, Q
case CE_ItemViewItem:
if (const QStyleOptionViewItem *vopt = qstyleoption_cast<const QStyleOptionViewItem *>(opt)) {
QRenderRule subRule = renderRule(w, opt, PseudoElement_ViewItem);
- if (subRule.hasDrawable() || hasStyleRule(w, PseudoElement_Indicator)) {
- QStyleOptionViewItem optCopy(*vopt);
+ QStyleOptionViewItem optCopy(*vopt);
+ if (subRule.hasDrawable()) {
subRule.configurePalette(&optCopy.palette, vopt->state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text,
vopt->state & QStyle::State_Selected ? QPalette::Highlight : QPalette::Base);
QWindowsStyle::drawControl(ce, &optCopy, p, w);
} else {
- QStyleOptionViewItem voptCopy(*vopt);
- subRule.configurePalette(&voptCopy.palette, QPalette::Text, QPalette::NoRole);
- baseStyle()->drawControl(ce, &voptCopy, p, w);
+ if (hasStyleRule(w, PseudoElement_Indicator)) {
+ subRule.configurePalette(&optCopy.palette, vopt->state & QStyle::State_Selected ? QPalette::HighlightedText : QPalette::Text,
+ vopt->state & QStyle::State_Selected ? QPalette::Highlight : QPalette::Base);
+ } else {
+ subRule.configurePalette(&optCopy.palette, QPalette::Text, QPalette::NoRole);
+ }
+ baseStyle()->drawControl(ce, &optCopy, p, w);
}
return;
}