mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-15 11:18:36 +12:00
36 lines
1.1 KiB
C++
36 lines
1.1 KiB
C++
#include "table_item_delegate.h"
|
|
#include "gui_settings.h"
|
|
|
|
table_item_delegate::table_item_delegate(QObject* parent, bool has_icons)
|
|
: QStyledItemDelegate(parent), m_has_icons(has_icons)
|
|
{
|
|
}
|
|
|
|
void table_item_delegate::initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const
|
|
{
|
|
// Remove the focus frame around selected items
|
|
option->state &= ~QStyle::State_HasFocus;
|
|
|
|
if (m_has_icons && index.column() == 0)
|
|
{
|
|
// Don't highlight icons
|
|
option->state &= ~QStyle::State_Selected;
|
|
|
|
// Center icons
|
|
option->decorationAlignment = Qt::AlignCenter;
|
|
option->decorationPosition = QStyleOptionViewItem::Top;
|
|
}
|
|
|
|
QStyledItemDelegate::initStyleOption(option, index);
|
|
}
|
|
|
|
void table_item_delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
|
{
|
|
if (m_has_icons && index.column() == gui::game_list_columns::column_icon && option.state & QStyle::State_Selected)
|
|
{
|
|
// Add background highlight color to icons
|
|
painter->fillRect(option.rect, option.palette.color(QPalette::Highlight));
|
|
}
|
|
|
|
QStyledItemDelegate::paint(painter, option, index);
|
|
}
|