From 3560093f1b37fcf2386e81aaac2fa78005a173ad Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Fri, 1 Jan 2021 14:02:04 +0100 Subject: Override separator color instead of mixing it. --- src/modlistview.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'src/modlistview.cpp') diff --git a/src/modlistview.cpp b/src/modlistview.cpp index da4d79cf..f6a564ac 100644 --- a/src/modlistview.cpp +++ b/src/modlistview.cpp @@ -47,7 +47,17 @@ public: ModListStyledItemDelegated(ModListView* view) : QStyledItemDelegate(view), m_view(view) { } - void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override { + void initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const override + { + QStyledItemDelegate::initStyleOption(option, index); + auto color = childrenColor(index, m_view, Qt::BackgroundRole); + if (color.isValid()) { + option->backgroundBrush = color; + } + } + + void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override + { QStyleOptionViewItem opt(option); if (index.column() == 0 && m_view->hasCollapsibleSeparators()) { if (!index.model()->hasChildren(index) && index.parent().isValid()) { @@ -58,13 +68,6 @@ public: } } QStyledItemDelegate::paint(painter, opt, index); - - auto color = childrenColor(index, m_view, Qt::BackgroundRole); - if (color.isValid()) { - // int shift = 3 * opt.rect.height() / 4; - // opt.rect.adjust(0, shift, 0, 0); - painter->fillRect(opt.rect, color); - } } }; -- cgit v1.3.1