From 4733cb59e4989393ba040e556b83b5d89002a0f3 Mon Sep 17 00:00:00 2001 From: jagannatharjun Date: Sat, 18 Jul 2020 13:30:26 +0530 Subject: [PATCH] Use QStyledItemDelegate for content views --- src/gui/properties/proplistdelegate.cpp | 20 ++++++++++++-------- src/gui/properties/proplistdelegate.h | 4 ++-- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/gui/properties/proplistdelegate.cpp b/src/gui/properties/proplistdelegate.cpp index c49335afb..bfb7bf0fa 100644 --- a/src/gui/properties/proplistdelegate.cpp +++ b/src/gui/properties/proplistdelegate.cpp @@ -64,7 +64,7 @@ namespace } PropListDelegate::PropListDelegate(PropertiesWidget *properties) - : QItemDelegate(properties) + : QStyledItemDelegate(properties) , m_properties(properties) { } @@ -73,13 +73,15 @@ void PropListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti { painter->save(); - QStyleOptionViewItem opt = QItemDelegate::setOptions(index, option); - QItemDelegate::drawBackground(painter, opt, index); + const QStyle *style = option.widget ? option.widget->style() : QApplication::style(); + QStyleOptionViewItem opt = option; + QStyledItemDelegate::initStyleOption(&opt, index); switch (index.column()) { case PCSIZE: case REMAINING: - QItemDelegate::drawDisplay(painter, opt, option.rect, Utils::Misc::friendlyUnit(index.data().toLongLong())); + opt.text = Utils::Misc::friendlyUnit(index.data().toLongLong()); + style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget); break; case PROGRESS: { @@ -130,26 +132,28 @@ void PropListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti text = tr("Normal", "Normal (priority)"); break; } - QItemDelegate::drawDisplay(painter, opt, option.rect, text); + opt.text = text; + style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget); } break; case AVAILABILITY: { const qreal availability = index.data().toReal(); if (availability < 0) { - QItemDelegate::drawDisplay(painter, opt, option.rect, tr("N/A")); + opt.text = tr("N/A"); } else { const QString value = (availability >= 1.0) ? QLatin1String("100") : Utils::String::fromDouble(availability * 100, 1); - QItemDelegate::drawDisplay(painter, opt, option.rect, (value + C_THIN_SPACE + QLatin1Char('%'))); + opt.text = (value + C_THIN_SPACE + QLatin1Char('%')); } + style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, opt.widget); } break; default: - QItemDelegate::paint(painter, option, index); + QStyledItemDelegate::paint(painter, option, index); break; } diff --git a/src/gui/properties/proplistdelegate.h b/src/gui/properties/proplistdelegate.h index 2dbe1b21a..4af03b0e6 100644 --- a/src/gui/properties/proplistdelegate.h +++ b/src/gui/properties/proplistdelegate.h @@ -29,7 +29,7 @@ #ifndef PROPLISTDELEGATE_H #define PROPLISTDELEGATE_H -#include +#include class QAbstractItemModel; class QModelIndex; @@ -49,7 +49,7 @@ enum PropColumn AVAILABILITY }; -class PropListDelegate final : public QItemDelegate +class PropListDelegate final : public QStyledItemDelegate { Q_OBJECT