aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/main_window.cpp
diff options
context:
space:
mode:
authorcrueter <crueter@eden-emu.dev>2026-06-19 22:55:29 +0200
committercrueter <crueter@eden-emu.dev>2026-06-19 22:55:29 +0200
commit102d2545303daa926f39e5cf6518c6ce99c7918d (patch)
treeab5653bc5989530929f49c10e20024ea16a313a0 /src/yuzu/main_window.cpp
parent7c0e993b5b905224fd4d290485deaee30c685f0d (diff)
[desktop] Clean up game list code, fix external watcher crash, and fix macOS flickering (#4106)
- Remove unnecessary icon update code (the UI reloads this stuff anyways); test on Windows please - Cleaned up a bunch of duplicated/unused code within the game list - Fix the game list constantly reloading on macOS * When you reconstruct the entire directory list on the watcher the directoryChanged signal fires on macOS--seems like a behavioral change that occurred somewhere in the 6.8 release cycle--and it would enter an infinite loop very quickly * To fix this, only the differences between the current and old watch list are accounted for on both ends. * Since this bug is now fixed, macOS uses Qt 6.11.1 now. Should theoretically improve our situation. - Fix the external content watcher crashing; the worker would attempt to read files that didn't exist without any bounds since its cache was still pointing to that file. This supersedes and replaces #4099. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4106 Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'src/yuzu/main_window.cpp')
-rw-r--r--src/yuzu/main_window.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/yuzu/main_window.cpp b/src/yuzu/main_window.cpp
index 0160b74e24..00b9e65c67 100644
--- a/src/yuzu/main_window.cpp
+++ b/src/yuzu/main_window.cpp
@@ -579,9 +579,12 @@ MainWindow::MainWindow(bool has_broken_vulkan)
} else if (should_launch_qlaunch) {
LaunchFirmwareApplet(u64(Service::AM::AppletProgramId::QLaunch), std::nullopt);
} else if (should_launch_hlaunch) {
- std::filesystem::path const sd_dir = Common::FS::GetEdenPathString(Common::FS::EdenPath::SDMCDir);
+ std::filesystem::path const sd_dir =
+ Common::FS::GetEdenPathString(Common::FS::EdenPath::SDMCDir);
auto const hbl_path = (sd_dir / "atmosphere" / "hbl.nsp").string();
- BootGame(QString::fromStdString(hbl_path), LibraryAppletParameters(0x010000000000100Dull, Service::AM::AppletId::QLaunch));
+ BootGame(
+ QString::fromStdString(hbl_path),
+ LibraryAppletParameters(0x010000000000100Dull, Service::AM::AppletId::QLaunch));
}
}
}
@@ -1545,6 +1548,8 @@ void MainWindow::ConnectMenuEvents() {
if (checked) {
UISettings::values.game_icon_size.SetValue(size);
CheckIconSize();
+
+ game_list->UpdateIconSizes();
game_list->RefreshGameDirectory();
}
});
@@ -3363,6 +3368,7 @@ void MainWindow::ToggleShowGameName() {
CheckIconSize();
+ game_list->UpdateIconSizes();
game_list->RefreshGameDirectory();
}
@@ -3868,6 +3874,7 @@ void MainWindow::OnGameListRefresh() {
// Resets metadata cache and reloads
QtCommon::Game::ResetMetadata(false);
game_list->RefreshGameDirectory();
+ game_list->RefreshExternalContent();
SetFirmwareVersion();
}