Permalink
Browse files

Qt: Refresh Gamelist more thoroughly

  • Loading branch information...
spycrab committed Jul 6, 2018
1 parent 64c3d01 commit bb8b8728637326b85fa86b8026388b33d8f405b7
@@ -25,8 +25,8 @@ GameListModel::GameListModel(QObject* parent) : QAbstractTableModel(parent)
connect(&m_tracker, &GameTracker::GameRemoved, this, &GameListModel::RemoveGame);
connect(&Settings::Instance(), &Settings::PathAdded, &m_tracker, &GameTracker::AddDirectory);
connect(&Settings::Instance(), &Settings::PathRemoved, &m_tracker, &GameTracker::RemoveDirectory);
connect(&Settings::Instance(), &Settings::PathReloadRequested, &m_tracker,
&GameTracker::ReloadDirectory);
connect(&Settings::Instance(), &Settings::GameListRefreshRequested, &m_tracker,
&GameTracker::RefreshAll);
connect(&Settings::Instance(), &Settings::TitleDBReloadRequested, this,
[this] { m_title_database = Core::TitleDatabase(); });
@@ -156,10 +156,18 @@ void GameTracker::RemoveDirectory(const QString& dir)
m_load_thread.EmplaceItem(Command{CommandType::RemoveDirectory, dir});
}
void GameTracker::ReloadDirectory(const QString& dir)
void GameTracker::RefreshAll()
{
m_load_thread.EmplaceItem(Command{CommandType::RemoveDirectory, dir});
m_load_thread.EmplaceItem(Command{CommandType::AddDirectory, dir});
for (auto& file : m_tracked_files.keys())
emit GameRemoved(file.toStdString());
m_tracked_files.clear();
for (const QString& dir : Settings::Instance().GetPaths())
{
m_load_thread.EmplaceItem(Command{CommandType::RemoveDirectory, dir});
m_load_thread.EmplaceItem(Command{CommandType::AddDirectory, dir});
}
}
void GameTracker::UpdateDirectory(const QString& dir)
@@ -36,7 +36,7 @@ class GameTracker final : public QFileSystemWatcher
void AddDirectory(const QString& dir);
void RemoveDirectory(const QString& dir);
void ReloadDirectory(const QString& dir);
void RefreshAll();
signals:
void GameLoaded(const std::shared_ptr<const UICommon::GameFile>& game);
@@ -533,9 +533,7 @@ void MainWindow::ConnectStack()
void MainWindow::RefreshGameList()
{
Settings::Instance().ReloadTitleDB();
for (const auto& path : Settings::Instance().GetPaths())
Settings::Instance().ReloadPath(path);
Settings::Instance().RefreshGameList();
}
QString MainWindow::PromptFileName()
@@ -123,9 +123,9 @@ void Settings::RemovePath(const QString& qpath)
emit PathRemoved(qpath);
}
void Settings::ReloadPath(const QString& qpath)
void Settings::RefreshGameList()
{
emit PathReloadRequested(qpath);
emit GameListRefreshRequested();
}
void Settings::ReloadTitleDB()
@@ -69,7 +69,7 @@ class Settings final : public QObject
void SetPreferredView(bool list);
QString GetDefaultGame() const;
void SetDefaultGame(QString path);
void ReloadPath(const QString& qpath);
void RefreshGameList();
void ReloadTitleDB();
bool IsAutoRefreshEnabled() const;
void SetAutoRefreshEnabled(bool enabled);
@@ -137,7 +137,7 @@ class Settings final : public QObject
void PathAdded(const QString&);
void PathRemoved(const QString&);
void DefaultGameChanged(const QString&);
void PathReloadRequested(const QString&);
void GameListRefreshRequested();
void TitleDBReloadRequested();
void AutoRefreshToggled(bool enabled);
void HideCursorChanged();
@@ -137,8 +137,7 @@ QGroupBox* PathPane::MakeGameFolderBox()
connect(recursive_checkbox, &QCheckBox::toggled, this, [](bool checked) {
SConfig::GetInstance().m_RecursiveISOFolder = checked;
for (const auto& path : Settings::Instance().GetPaths())
Settings::Instance().ReloadPath(path);
Settings::Instance().RefreshGameList();
});
connect(auto_checkbox, &QCheckBox::toggled, &Settings::Instance(),

0 comments on commit bb8b872

Please sign in to comment.