diff options
author | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2021-07-14 09:33:02 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-07-14 14:17:45 +0000 |
commit | c12e241373fce9925d2c062448eceb92188ad0e8 (patch) | |
tree | 1b90bde68967d6a8b4412088eac1f8a16518e86c | |
parent | 44308ce1e0b09bddc4af6b4c03e03de5e82a66d3 (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
Change-Id: I1cd8c4fce48cb5543337415918fc99ffb5e19e00
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
(cherry picked from commit 1d48572b4ea765cb8d81bf227eabaf907a91e7de)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-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 836ab7d4be..728dcd8c12 100644 --- a/src/widgets/styles/qstylesheetstyle.cpp +++ b/src/widgets/styles/qstylesheetstyle.cpp @@ -4298,15 +4298,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; } |