diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-07-14 09:33:02 +0200 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-07-14 16:17:33 +0200 |
commit | 1d48572b4ea765cb8d81bf227eabaf907a91e7de (patch) | |
tree | 55527cd910d90f9d115b451686f27f343ec4ee67 /src/widgets | |
parent | 7bb464554a8d86d2874e6d01fb6d5e911447c475 (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.cpp | 14 |
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; } |