From c4cf225d12c113fee83bac71f53997ad6093498c Mon Sep 17 00:00:00 2001 From: Collecting Date: Fri, 19 Dec 2025 18:45:28 +0000 Subject: [PATCH] fix: NTFS Directory Scanning w/ Linux Signed-off-by: Collecting --- src/citron/game_list.cpp | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/citron/game_list.cpp b/src/citron/game_list.cpp index e5ad53c22..2f3320593 100644 --- a/src/citron/game_list.cpp +++ b/src/citron/game_list.cpp @@ -749,16 +749,21 @@ void GameList::UpdateOnlineStatus() { // Run the blocking network call in a background thread using QtConcurrent QFuture>> future = QtConcurrent::run([session]() { - std::map> stats; - AnnounceMultiplayerRoom::RoomList room_list = session->GetRoomList(); - for (const auto& room : room_list) { - u64 game_id = room.information.preferred_game.id; - if (game_id != 0) { - stats[game_id].first += room.members.size(); - stats[game_id].second++; + try { + std::map> stats; + AnnounceMultiplayerRoom::RoomList room_list = session->GetRoomList(); + for (const auto& room : room_list) { + u64 game_id = room.information.preferred_game.id; + if (game_id != 0) { + stats[game_id].first += (int)room.members.size(); + stats[game_id].second++; + } } + return stats; + } catch (const std::exception& e) { + LOG_ERROR(Frontend, "Exception in Online Status thread: {}", e.what()); + return std::map>{}; } - return stats; }); online_status_watcher->setFuture(future); @@ -1312,15 +1317,16 @@ void GameList::LoadInterfaceLayout() { } const QStringList GameList::supported_file_extensions = { - QStringLiteral("nso"), QStringLiteral("nro"), QStringLiteral("nca"), - QStringLiteral("xci"), QStringLiteral("nsp"), QStringLiteral("kip")}; + QStringLiteral("xci"), QStringLiteral("nsp"), + QStringLiteral("nso"), QStringLiteral("nro"), QStringLiteral("kip") +}; - void GameList::RefreshGameDirectory() { - if (!UISettings::values.game_dirs.empty() && current_worker != nullptr) { - LOG_INFO(Frontend, "Change detected in the games directory. Reloading game list."); - PopulateAsync(UISettings::values.game_dirs); - } +void GameList::RefreshGameDirectory() { + if (!UISettings::values.game_dirs.empty() && current_worker != nullptr) { + LOG_INFO(Frontend, "Change detected in the games directory. Reloading game list."); + PopulateAsync(UISettings::values.game_dirs); } +} void GameList::ToggleFavorite(u64 program_id) { if (!UISettings::values.favorited_ids.contains(program_id)) {