From b0b4998050d551647e8e62ffb955fdd5b9bbc8e8 Mon Sep 17 00:00:00 2001
From: Megamouse <studienricky89@googlemail.com>
Date: Thu, 26 Jul 2018 21:12:12 +0200
Subject: [PATCH] Qt: only ignore highlights on specified tables

---
 rpcs3/rpcs3qt/game_list_frame.cpp       | 2 +-
 rpcs3/rpcs3qt/rsx_debugger.cpp          | 6 +++---
 rpcs3/rpcs3qt/table_item_delegate.h     | 7 +++++--
 rpcs3/rpcs3qt/trophy_manager_dialog.cpp | 4 ++--
 4 files changed, 11 insertions(+), 8 deletions(-)

diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp
index d791a388bc..ab822e02ff 100644
--- a/rpcs3/rpcs3qt/game_list_frame.cpp
+++ b/rpcs3/rpcs3qt/game_list_frame.cpp
@@ -52,7 +52,7 @@ game_list_frame::game_list_frame(std::shared_ptr<gui_settings> guiSettings, std:
 
 	m_gameList = new game_list();
 	m_gameList->setShowGrid(false);
-	m_gameList->setItemDelegate(new table_item_delegate(this));
+	m_gameList->setItemDelegate(new table_item_delegate(this, true));
 	m_gameList->setEditTriggers(QAbstractItemView::NoEditTriggers);
 	m_gameList->setSelectionBehavior(QAbstractItemView::SelectRows);
 	m_gameList->setSelectionMode(QAbstractItemView::SingleSelection);
diff --git a/rpcs3/rpcs3qt/rsx_debugger.cpp b/rpcs3/rpcs3qt/rsx_debugger.cpp
index e22aae163b..b454d69a37 100644
--- a/rpcs3/rpcs3qt/rsx_debugger.cpp
+++ b/rpcs3/rpcs3qt/rsx_debugger.cpp
@@ -91,7 +91,7 @@ rsx_debugger::rsx_debugger(std::shared_ptr<gui_settings> gui_settings, QWidget*
 
 	m_tw_rsx = new QTabWidget();
 
-	//adds a tab containing a list to the tabwidget
+	// adds a tab containing a list to the tabwidget
 	auto l_addRSXTab = [=](QTableWidget* table, const QString& tabname, int columns)
 	{
 		table = new QTableWidget();
@@ -119,7 +119,7 @@ rsx_debugger::rsx_debugger(std::shared_ptr<gui_settings> gui_settings, QWidget*
 	m_list_texture = l_addRSXTab(m_list_texture, tr("Texture"), 9);
 	m_list_settings = l_addRSXTab(m_list_settings, tr("Settings"), 2);
 
-	//Tabs: List Columns
+	// Tabs: List Columns
 	m_list_commands->viewport()->installEventFilter(this);
 	m_list_commands->setHorizontalHeaderLabels(QStringList() << tr("Column") << tr("Value") << tr("Command") << tr("Count"));
 	m_list_commands->setColumnWidth(0, 70);
@@ -149,7 +149,7 @@ rsx_debugger::rsx_debugger(std::shared_ptr<gui_settings> gui_settings, QWidget*
 	m_list_settings->setColumnWidth(0, 170);
 	m_list_settings->setColumnWidth(1, 270);
 
-	//Tools: Tools = Controls + Notebook Tabs
+	// Tools: Tools = Controls + Notebook Tabs
 	QVBoxLayout* vbox_tools = new QVBoxLayout();
 	vbox_tools->addLayout(hbox_controls);
 	vbox_tools->addWidget(m_tw_rsx);
diff --git a/rpcs3/rpcs3qt/table_item_delegate.h b/rpcs3/rpcs3qt/table_item_delegate.h
index f6172715c5..4410251a85 100644
--- a/rpcs3/rpcs3qt/table_item_delegate.h
+++ b/rpcs3/rpcs3qt/table_item_delegate.h
@@ -6,15 +6,18 @@
 /** This class is used to get rid of somewhat ugly item focus rectangles. You could change the rectangle instead of omiting it if you wanted */
 class table_item_delegate : public QStyledItemDelegate
 {
+private:
+	bool m_has_icons;
+
 public:
-	explicit table_item_delegate(QObject *parent = 0) : QStyledItemDelegate(parent) {}
+	explicit table_item_delegate(QObject *parent = 0, bool has_icons = false) : QStyledItemDelegate(parent), m_has_icons(has_icons) {}
 
 	virtual void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const override
 	{
 		// Remove the focus frame around selected items
 		option->state &= ~QStyle::State_HasFocus;
 
-		if (index.column() == 0)
+		if (m_has_icons && index.column() == 0)
 		{
 			// Don't highlight icons
 			option->state &= ~QStyle::State_Selected;
diff --git a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp
index cd7c02230c..5996a95289 100644
--- a/rpcs3/rpcs3qt/trophy_manager_dialog.cpp
+++ b/rpcs3/rpcs3qt/trophy_manager_dialog.cpp
@@ -76,7 +76,7 @@ trophy_manager_dialog::trophy_manager_dialog(std::shared_ptr<gui_settings> gui_s
 	m_game_table->verticalScrollBar()->installEventFilter(this);
 	m_game_table->verticalScrollBar()->setSingleStep(20);
 	m_game_table->horizontalScrollBar()->setSingleStep(20);
-	m_game_table->setItemDelegate(new table_item_delegate(this));
+	m_game_table->setItemDelegate(new table_item_delegate(this, true));
 	m_game_table->setSelectionBehavior(QAbstractItemView::SelectRows);
 	m_game_table->setSelectionMode(QAbstractItemView::SingleSelection);
 	m_game_table->setEditTriggers(QAbstractItemView::NoEditTriggers);
@@ -98,7 +98,7 @@ trophy_manager_dialog::trophy_manager_dialog(std::shared_ptr<gui_settings> gui_s
 	m_trophy_table->verticalScrollBar()->installEventFilter(this);
 	m_trophy_table->verticalScrollBar()->setSingleStep(20);
 	m_trophy_table->horizontalScrollBar()->setSingleStep(20);
-	m_trophy_table->setItemDelegate(new table_item_delegate(this));
+	m_trophy_table->setItemDelegate(new table_item_delegate(this, true));
 	m_trophy_table->setSelectionBehavior(QAbstractItemView::SelectRows);
 	m_trophy_table->setEditTriggers(QAbstractItemView::NoEditTriggers);
 	m_trophy_table->setColumnCount(TrophyColumns::Count);