From 8f8e96f59f91bd51dd9c4f32a550ddb6bceb8c52 Mon Sep 17 00:00:00 2001 From: spycrab Date: Thu, 7 Sep 2017 01:25:22 +0200 Subject: [PATCH] Qt/GameList: Add "Change Disc" option --- Source/Core/DolphinQt2/GameList/GameList.cpp | 15 +++++++++++++++ Source/Core/DolphinQt2/GameList/GameList.h | 1 + 2 files changed, 16 insertions(+) diff --git a/Source/Core/DolphinQt2/GameList/GameList.cpp b/Source/Core/DolphinQt2/GameList/GameList.cpp index 0b8a122b55..0900171af9 100644 --- a/Source/Core/DolphinQt2/GameList/GameList.cpp +++ b/Source/Core/DolphinQt2/GameList/GameList.cpp @@ -20,6 +20,7 @@ #include "Common/FileUtil.h" #include "Core/ConfigManager.h" #include "Core/Core.h" +#include "Core/HW/DVD/DVDInterface.h" #include "DiscIO/Blob.h" #include "DiscIO/Enums.h" @@ -169,6 +170,15 @@ void GameList::ShowContextMenu(const QPoint&) else if (blob_type == DiscIO::BlobType::PLAIN) menu->addAction(tr("Compress ISO..."), this, &GameList::CompressISO); + QAction* change_disc = menu->addAction(tr("Change &Disc"), this, &GameList::ChangeDisc); + + connect(this, &GameList::EmulationStarted, change_disc, + [change_disc] { change_disc->setEnabled(true); }); + connect(this, &GameList::EmulationStopped, change_disc, + [change_disc] { change_disc->setEnabled(false); }); + + change_disc->setEnabled(Core::IsRunning()); + menu->addSeparator(); } @@ -409,6 +419,11 @@ void GameList::DeleteFile() } } +void GameList::ChangeDisc() +{ + DVDInterface::ChangeDiscAsHost(GetSelectedGame()->GetFilePath().toStdString()); +} + QSharedPointer GameList::GetSelectedGame() const { QAbstractItemView* view; diff --git a/Source/Core/DolphinQt2/GameList/GameList.h b/Source/Core/DolphinQt2/GameList/GameList.h index e01d32f0ad..3121ef9c98 100644 --- a/Source/Core/DolphinQt2/GameList/GameList.h +++ b/Source/Core/DolphinQt2/GameList/GameList.h @@ -46,6 +46,7 @@ private: void UninstallWAD(); void ExportWiiSave(); void CompressISO(); + void ChangeDisc(); void OnHeaderViewChanged(); void MakeListView();