From ace6cd2da4ee075322cfddfd0cf9e6b49ccea66b Mon Sep 17 00:00:00 2001 From: Stenzek Date: Tue, 6 Jan 2026 14:57:05 +1000 Subject: [PATCH] Qt: Use temporary game list entry for properties of playlists Doesn't provide full functionality, but this is not a supported setup and it's better than only making the first disc accessible. --- src/core/fullscreenui_settings.cpp | 4 +++- src/duckstation-qt/mainwindow.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/core/fullscreenui_settings.cpp b/src/core/fullscreenui_settings.cpp index d05638f18..55bce4049 100644 --- a/src/core/fullscreenui_settings.cpp +++ b/src/core/fullscreenui_settings.cpp @@ -1647,7 +1647,9 @@ bool FullscreenUI::SwitchToGameSettingsForPath(const std::string& path, Settings { auto lock = GameList::GetLock(); const GameList::Entry* entry = !path.empty() ? GameList::GetEntryForPath(path) : nullptr; - if (!entry || entry->serial.empty()) + + // playlists will always contain the first disc's serial, so use the current game instead + if (!entry || entry->serial.empty() || entry->type == GameList::EntryType::Playlist) { Host::RunOnCoreThread([page]() { Error error; diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index aac6d51f9..628277ffc 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -2782,7 +2782,9 @@ void MainWindow::openGamePropertiesForCurrentGame(const char* category /* = null // show for first disc instead entry = GameList::GetFirstDiscSetMember(entry->dbentry->disc_set); } - if (entry) + + // playlists will always contain the first disc's serial, so use the current game instead + if (entry && entry->type != GameList::EntryType::Playlist) SettingsWindow::openGamePropertiesDialog(entry, category); else g_core_thread->openGamePropertiesForCurrentGame(category ? QString::fromUtf8(category) : QString());