@@ -1,19 +1,17 @@
// Copyright 2015 Dolphin Emulator Project
// Copyright 2017 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.

#pragma once

#include <QSortFilterProxyModel>

// This subclass of QSortFilterProxyModel transforms the raw data into a
// single-column large icon + name to be displayed in a QListView.
// This subclass of QSortFilterProxyModel allows the data to be filtered by the view.
class ListProxyModel final : public QSortFilterProxyModel
{
Q_OBJECT

public:
explicit ListProxyModel(QObject* parent = nullptr);
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const override;
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
};

This file was deleted.

This file was deleted.

@@ -197,8 +197,8 @@ void MainWindow::ConnectMenuBar()
connect(m_menu_bar, &MenuBar::BootWiiSystemMenu, this, &MainWindow::BootWiiSystemMenu);

// View
connect(m_menu_bar, &MenuBar::ShowTable, m_game_list, &GameList::SetTableView);
connect(m_menu_bar, &MenuBar::ShowList, m_game_list, &GameList::SetListView);
connect(m_menu_bar, &MenuBar::ShowGrid, m_game_list, &GameList::SetGridView);
connect(m_menu_bar, &MenuBar::ColumnVisibilityToggled, m_game_list,
&GameList::OnColumnVisibilityToggled);

@@ -215,7 +215,7 @@ void MenuBar::AddViewMenu()

AddGameListTypeSection(view_menu);
view_menu->addSeparator();
AddTableColumnsMenu(view_menu);
AddListColumnsMenu(view_menu);
view_menu->addSeparator();
AddShowPlatformsMenu(view_menu);
AddShowRegionsMenu(view_menu);
@@ -253,27 +253,25 @@ void MenuBar::AddHelpMenu()

void MenuBar::AddGameListTypeSection(QMenu* view_menu)
{
// i18n: When this option is enabled, the game list is displayed as a table
QAction* table_view = view_menu->addAction(tr("Table"));
table_view->setCheckable(true);

// i18n: When this option is enabled, the game list is displayed as a list
QAction* list_view = view_menu->addAction(tr("List"));
QAction* list_view = view_menu->addAction(tr("List View"));
list_view->setCheckable(true);

QAction* grid_view = view_menu->addAction(tr("Grid View"));
grid_view->setCheckable(true);

QActionGroup* list_group = new QActionGroup(this);
list_group->addAction(table_view);
list_group->addAction(list_view);
list_group->addAction(grid_view);

bool prefer_table = Settings::Instance().GetPreferredView();
table_view->setChecked(prefer_table);
list_view->setChecked(!prefer_table);
bool prefer_list = Settings::Instance().GetPreferredView();
list_view->setChecked(prefer_list);
grid_view->setChecked(!prefer_list);

connect(table_view, &QAction::triggered, this, &MenuBar::ShowTable);
connect(list_view, &QAction::triggered, this, &MenuBar::ShowList);
connect(grid_view, &QAction::triggered, this, &MenuBar::ShowGrid);
}

void MenuBar::AddTableColumnsMenu(QMenu* view_menu)
void MenuBar::AddListColumnsMenu(QMenu* view_menu)
{
static const QMap<QString, bool*> columns{
{tr("Platform"), &SConfig::GetInstance().m_showSystemColumn},
@@ -287,7 +285,7 @@ void MenuBar::AddTableColumnsMenu(QMenu* view_menu)
{tr("State"), &SConfig::GetInstance().m_showStateColumn}};

QActionGroup* column_group = new QActionGroup(this);
QMenu* cols_menu = view_menu->addMenu(tr("Table Columns"));
QMenu* cols_menu = view_menu->addMenu(tr("List Columns"));
column_group->setExclusive(false);

for (const auto& key : columns.keys())
@@ -60,8 +60,8 @@ class MenuBar final : public QMenuBar
void ConfigureHotkeys();

// View
void ShowTable();
void ShowList();
void ShowGrid();
void ColumnVisibilityToggled(const QString& row, bool visible);
void GameListPlatformVisibilityToggled(const QString& row, bool visible);
void GameListRegionVisibilityToggled(const QString& row, bool visible);
@@ -78,7 +78,7 @@ class MenuBar final : public QMenuBar

void AddViewMenu();
void AddGameListTypeSection(QMenu* view_menu);
void AddTableColumnsMenu(QMenu* view_menu);
void AddListColumnsMenu(QMenu* view_menu);
void AddShowPlatformsMenu(QMenu* view_menu);
void AddShowRegionsMenu(QMenu* view_menu);

@@ -77,9 +77,9 @@ bool Settings::GetPreferredView() const
return QSettings().value(QStringLiteral("PreferredView"), true).toBool();
}

void Settings::SetPreferredView(bool table)
void Settings::SetPreferredView(bool list)
{
QSettings().setValue(QStringLiteral("PreferredView"), table);
QSettings().setValue(QStringLiteral("PreferredView"), list);
}

int Settings::GetStateSlot() const
@@ -41,7 +41,7 @@ class Settings final : public QObject, NonCopyable
void AddPath(const QString& path);
void RemovePath(const QString& path);
bool GetPreferredView() const;
void SetPreferredView(bool table);
void SetPreferredView(bool list);

// Emulation
int GetStateSlot() const;