mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-07 07:25:26 +00:00
Qt: fix table item delegate usage
This commit is contained in:
parent
f932cc4073
commit
a6e4b77273
8 changed files with 67 additions and 38 deletions
|
|
@ -1,7 +1,4 @@
|
|||
#include "table_item_delegate.h"
|
||||
|
||||
#include <QTableWidget>
|
||||
#include "movie_item.h"
|
||||
#include "gui_settings.h"
|
||||
|
||||
table_item_delegate::table_item_delegate(QObject* parent, bool has_icons)
|
||||
|
|
@ -29,40 +26,11 @@ void table_item_delegate::initStyleOption(QStyleOptionViewItem *option, const QM
|
|||
|
||||
void table_item_delegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
|
||||
{
|
||||
if (index.column() == gui::game_list_columns::column_icon && option.state & QStyle::State_Selected)
|
||||
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);
|
||||
|
||||
// Find out if the icon or size items are visible
|
||||
if (index.column() == gui::game_list_columns::column_dir_size || (m_has_icons && index.column() == gui::game_list_columns::column_icon))
|
||||
{
|
||||
if (const QTableWidget* table = static_cast<const QTableWidget*>(parent()))
|
||||
{
|
||||
if (const QTableWidgetItem* current_item = table->item(index.row(), index.column());
|
||||
current_item && table->visibleRegion().intersects(table->visualItemRect(current_item)))
|
||||
{
|
||||
if (movie_item* item = static_cast<movie_item*>(table->item(index.row(), gui::game_list_columns::column_icon)))
|
||||
{
|
||||
if (index.column() == gui::game_list_columns::column_dir_size)
|
||||
{
|
||||
if (!item->size_on_disk_loading())
|
||||
{
|
||||
item->call_size_calc_func();
|
||||
}
|
||||
}
|
||||
else if (m_has_icons && index.column() == gui::game_list_columns::column_icon)
|
||||
{
|
||||
if (!item->icon_loading())
|
||||
{
|
||||
item->call_icon_load_func();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue