summaryrefslogtreecommitdiff
path: root/src/yuzu/main.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-05-16 16:33:33 -0700
committerGitHub <noreply@github.com>2021-05-16 16:33:33 -0700
commit440eb840ea18352488bd89e08e88d7ee34aab717 (patch)
tree60f78ad8af51d95b914fc4a288a7c888c71c1af7 /src/yuzu/main.cpp
parentbfe8816f7c2bb4338efff9763a6f7abb1b66977a (diff)
parenta170aa16b6d609b5e92b41a64711a2899e457135 (diff)
Merge pull request #6319 from Morph1984/no-install-base
main: Prevent installing base titles into NAND
Diffstat (limited to 'src/yuzu/main.cpp')
-rw-r--r--src/yuzu/main.cpp22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 30bb1aac7..2c8649793 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -2101,6 +2101,7 @@ void GMainWindow::OnMenuInstallToNAND() {
QStringList new_files{}; // Newly installed files that do not yet exist in the NAND
QStringList overwritten_files{}; // Files that overwrote those existing in the NAND
QStringList failed_files{}; // Files that failed to install due to errors
+ bool detected_base_install{}; // Whether a base game was attempted to be installed
ui.action_Install_File_NAND->setEnabled(false);
@@ -2126,6 +2127,7 @@ void GMainWindow::OnMenuInstallToNAND() {
while (!future.isFinished()) {
QCoreApplication::processEvents();
+ std::this_thread::sleep_for(std::chrono::milliseconds(1));
}
result = future.result();
@@ -2146,6 +2148,10 @@ void GMainWindow::OnMenuInstallToNAND() {
case InstallResult::Failure:
failed_files.append(QFileInfo(file).fileName());
break;
+ case InstallResult::BaseInstallAttempted:
+ failed_files.append(QFileInfo(file).fileName());
+ detected_base_install = true;
+ break;
}
--remaining;
@@ -2153,6 +2159,13 @@ void GMainWindow::OnMenuInstallToNAND() {
install_progress->close();
+ if (detected_base_install) {
+ QMessageBox::warning(
+ this, tr("Install Results"),
+ tr("To avoid possible conflicts, we discourage users from installing base games to the "
+ "NAND.\nPlease, only use this feature to install updates and DLC."));
+ }
+
const QString install_results =
(new_files.isEmpty() ? QString{}
: tr("%n file(s) were newly installed\n", "", new_files.size())) +
@@ -2214,11 +2227,14 @@ InstallResult GMainWindow::InstallNSPXCI(const QString& filename) {
const auto res =
Core::System::GetInstance().GetFileSystemController().GetUserNANDContents()->InstallEntry(
*nsp, true, qt_raw_copy);
- if (res == FileSys::InstallResult::Success) {
+ switch (res) {
+ case FileSys::InstallResult::Success:
return InstallResult::Success;
- } else if (res == FileSys::InstallResult::OverwriteExisting) {
+ case FileSys::InstallResult::OverwriteExisting:
return InstallResult::Overwrite;
- } else {
+ case FileSys::InstallResult::ErrorBaseInstall:
+ return InstallResult::BaseInstallAttempted;
+ default:
return InstallResult::Failure;
}
}