Qt/GameList: Replace includes with forward declarations where applicable

Avoids dragging in a bunch of includes from the header files, and also
reduces the amount of files that need to be recompiled if one of those
included headers' source content is ever changed.
This commit is contained in:
Lioncash 2018-07-10 15:37:55 -04:00
parent b9960777a7
commit 9b2ffb6221
8 changed files with 48 additions and 16 deletions

View File

@ -15,11 +15,14 @@
#include <QFrame>
#include <QHeaderView>
#include <QKeyEvent>
#include <QLabel>
#include <QListView>
#include <QMap>
#include <QMenu>
#include <QMessageBox>
#include <QProgressDialog>
#include <QScrollBar>
#include <QSortFilterProxyModel>
#include <QTableView>
#include <QUrl>
#include "Common/FileUtil.h"
@ -34,6 +37,7 @@
#include "DiscIO/Enums.h"
#include "DolphinQt/Config/PropertiesDialog.h"
#include "DolphinQt/GameList/GameListModel.h"
#include "DolphinQt/GameList/GridProxyModel.h"
#include "DolphinQt/GameList/ListProxyModel.h"
#include "DolphinQt/QtUtils/ActionHelper.h"
@ -42,6 +46,8 @@
#include "DolphinQt/Settings.h"
#include "DolphinQt/WiiUpdate.h"
#include "UICommon/GameFile.h"
static bool CompressCB(const std::string&, float, void*);
GameList::GameList(QWidget* parent) : QStackedWidget(parent)
@ -678,6 +684,11 @@ bool GameList::HasMultipleSelected() const
m_grid->selectionModel()->selectedIndexes().size() > 1;
}
void GameList::SetViewColumn(int col, bool view)
{
m_list->setColumnHidden(col, !view);
}
void GameList::SetPreferredView(bool list)
{
m_prefer_list = list;

View File

@ -6,15 +6,18 @@
#include <memory>
#include <QLabel>
#include <QListView>
#include <QSortFilterProxyModel>
#include <QStackedWidget>
#include <QTableView>
#include "DolphinQt/GameList/GameListModel.h"
class GameListModel;
class QLabel;
class QListView;
class QSortFilterProxyModel;
class QTableView;
#include "UICommon/GameFile.h"
namespace UICommon
{
class GameFile;
}
class GameList final : public QStackedWidget
{
@ -30,7 +33,7 @@ public:
void SetListView() { SetPreferredView(true); }
void SetGridView() { SetPreferredView(false); }
void SetViewColumn(int col, bool view) { m_list->setColumnHidden(col, !view); }
void SetViewColumn(int col, bool view);
void SetSearchTerm(const QString& term);
void OnColumnVisibilityToggled(const QString& row, bool visible);

View File

@ -14,6 +14,7 @@
#include "DolphinQt/Resources.h"
#include "DolphinQt/Settings.h"
#include "UICommon/GameFile.h"
#include "UICommon/UICommon.h"
const QSize GAMECUBE_BANNER_SIZE(96, 32);
@ -226,6 +227,16 @@ std::shared_ptr<const UICommon::GameFile> GameListModel::GetGameFile(int index)
return m_games[index];
}
QString GameListModel::GetPath(int index) const
{
return QString::fromStdString(m_games[index]->GetFilePath());
}
QString GameListModel::GetUniqueIdentifier(int index) const
{
return QString::fromStdString(m_games[index]->GetUniqueIdentifier());
}
void GameListModel::AddGame(const std::shared_ptr<const UICommon::GameFile>& game)
{
beginInsertRows(QModelIndex(), m_games.size(), m_games.size());

View File

@ -14,7 +14,10 @@
#include "DolphinQt/GameList/GameTracker.h"
#include "UICommon/GameFile.h"
namespace UICommon
{
class GameFile;
}
class GameListModel final : public QAbstractTableModel
{
@ -32,12 +35,9 @@ public:
std::shared_ptr<const UICommon::GameFile> GetGameFile(int index) const;
// Path of the game at the specified index.
QString GetPath(int index) const { return QString::fromStdString(m_games[index]->GetFilePath()); }
QString GetPath(int index) const;
// Unique identifier of the game at the specified index.
QString GetUniqueIdentifier(int index) const
{
return QString::fromStdString(m_games[index]->GetUniqueIdentifier());
}
QString GetUniqueIdentifier(int index) const;
bool ShouldDisplayGameListItem(int index) const;
void SetSearchTerm(const QString& term);

View File

@ -17,6 +17,8 @@
#include "DolphinQt/Settings.h"
#include "UICommon/GameFile.h"
// NOTE: Qt likes to be case-sensitive here even though it shouldn't be thus this ugly regex hack
static const QStringList game_filters{
QStringLiteral("*.[gG][cC][mM]"), QStringLiteral("*.[iI][sS][oO]"),

View File

@ -15,9 +15,13 @@
#include "Common/Event.h"
#include "Common/WorkQueueThread.h"
#include "UICommon/GameFile.h"
#include "UICommon/GameFileCache.h"
namespace UICommon
{
class GameFile;
}
// Watches directories and loads GameFiles in a separate thread.
// To use this, just add directories using AddDirectory, and listen for the
// GameLoaded and GameRemoved signals.

View File

@ -86,6 +86,7 @@
#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "UICommon/DiscordPresence.h"
#include "UICommon/GameFile.h"
#include "UICommon/UICommon.h"
#include "VideoCommon/VideoConfig.h"

View File

@ -36,7 +36,7 @@
#include "Core/Core.h"
#include "Core/NetPlayServer.h"
#include "DolphinQt/GameList/GameList.h"
#include "DolphinQt/GameList/GameListModel.h"
#include "DolphinQt/NetPlay/GameListDialog.h"
#include "DolphinQt/NetPlay/MD5Dialog.h"
#include "DolphinQt/NetPlay/PadMappingDialog.h"