diff --git a/Core/Util/GameManager.cpp b/Core/Util/GameManager.cpp index e4d561a19e..9e86ada876 100644 --- a/Core/Util/GameManager.cpp +++ b/Core/Util/GameManager.cpp @@ -56,20 +56,26 @@ bool GameManager::DownloadAndInstall(std::string storeZipUrl) { return true; } -void GameManager::Uninstall(std::string name) { +bool GameManager::Uninstall(std::string name) { + if (name.empty()) { + ERROR_LOG(HLE, "Cannot remove an empty-named game"); + return false; + } std::string gameDir = GetSysDirectory(DIRECTORY_GAME) + name; INFO_LOG(HLE, "Deleting %s", gameDir.c_str()); if (!File::Exists(gameDir)) { ERROR_LOG(HLE, "Game %s not installed, cannot uninstall", name.c_str()); - return; + return false; } bool success = File::DeleteDirRecursively(gameDir); if (success) { INFO_LOG(HLE, "Successfully deleted game %s", name.c_str()); g_Config.CleanRecent(); + return true; } else { ERROR_LOG(HLE, "Failed to delete game %s", name.c_str()); + return false; } } diff --git a/Core/Util/GameManager.h b/Core/Util/GameManager.h index 06fe9693a7..30b9513aee 100644 --- a/Core/Util/GameManager.h +++ b/Core/Util/GameManager.h @@ -28,7 +28,7 @@ public: // This starts off a background process. bool DownloadAndInstall(std::string storeZipUrl); - void Uninstall(std::string name); + bool Uninstall(std::string name); // Call from time to time to check on completed downloads from the // main UI thread.