|
|
|
@ -619,7 +619,7 @@ void GMainWindow::OnMenuLoadFolder() {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void GMainWindow::OnMenuInstallToNAND() {
|
|
|
|
|
const static QString file_filter =
|
|
|
|
|
const QString file_filter =
|
|
|
|
|
tr("Installable Switch File (*.nca *.xci);;Nintendo Content Archive (*.nca);;NX Cartridge "
|
|
|
|
|
"Image (*.xci)");
|
|
|
|
|
QString filename = QFileDialog::getOpenFileName(this, tr("Install File"),
|
|
|
|
@ -629,36 +629,36 @@ void GMainWindow::OnMenuInstallToNAND() {
|
|
|
|
|
const auto xci = std::make_shared<FileSys::XCI>(
|
|
|
|
|
vfs->OpenFile(filename.toStdString(), FileSys::Mode::Read));
|
|
|
|
|
if (xci->GetStatus() != Loader::ResultStatus::Success) {
|
|
|
|
|
QMessageBox::critical(
|
|
|
|
|
QMessageBox::warning(
|
|
|
|
|
this, tr("Failed to Install XCI"),
|
|
|
|
|
tr("The XCI file you provided is invalid. Please double-check your encryption "
|
|
|
|
|
"keys and the file and try again."));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (!Service::FileSystem::GetUserNANDContents()->InstallEntry(xci)) {
|
|
|
|
|
QMessageBox::critical(
|
|
|
|
|
this, tr("Failed to Install XCI"),
|
|
|
|
|
tr("There was an error while attempting to install the provided XCI file. It "
|
|
|
|
|
"could have an incorrect format or be missing a metadata entry. Please "
|
|
|
|
|
"double-check your file and try again."));
|
|
|
|
|
} else {
|
|
|
|
|
if (Service::FileSystem::GetUserNANDContents()->InstallEntry(xci)) {
|
|
|
|
|
QMessageBox::information(this, tr("Successfully Installed XCI"),
|
|
|
|
|
tr("The file was successfully installed."));
|
|
|
|
|
game_list->PopulateAsync(UISettings::values.gamedir,
|
|
|
|
|
UISettings::values.gamedir_deepscan);
|
|
|
|
|
} else {
|
|
|
|
|
QMessageBox::warning(
|
|
|
|
|
this, tr("Failed to Install XCI"),
|
|
|
|
|
tr("There was an error while attempting to install the provided XCI file. It "
|
|
|
|
|
"could have an incorrect format or be missing a metadata entry. Please "
|
|
|
|
|
"double-check your file and try again."));
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
const auto nca = std::make_shared<FileSys::NCA>(
|
|
|
|
|
vfs->OpenFile(filename.toStdString(), FileSys::Mode::Read));
|
|
|
|
|
if (nca->GetStatus() != Loader::ResultStatus::Success) {
|
|
|
|
|
QMessageBox::critical(
|
|
|
|
|
QMessageBox::warning(
|
|
|
|
|
this, tr("Failed to Install NCA"),
|
|
|
|
|
tr("The NCA file you provided is invalid. Please double-check your encryption "
|
|
|
|
|
"keys and the file and try again."));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const static QStringList tt_options{"System Application",
|
|
|
|
|
static const QStringList tt_options{"System Application",
|
|
|
|
|
"System Archive",
|
|
|
|
|
"System Application Update",
|
|
|
|
|
"Firmware Package (Type A)",
|
|
|
|
@ -676,26 +676,26 @@ void GMainWindow::OnMenuInstallToNAND() {
|
|
|
|
|
|
|
|
|
|
auto index = tt_options.indexOf(item);
|
|
|
|
|
if (!ok || index == -1) {
|
|
|
|
|
QMessageBox::critical(this, tr("Failed to Install NCA"),
|
|
|
|
|
tr("The title type you selected for the NCA is invalid."));
|
|
|
|
|
QMessageBox::warning(this, tr("Failed to Install NCA"),
|
|
|
|
|
tr("The title type you selected for the NCA is invalid."));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (index >= 5)
|
|
|
|
|
index += 0x80;
|
|
|
|
|
|
|
|
|
|
if (!Service::FileSystem::GetUserNANDContents()->InstallEntry(
|
|
|
|
|
if (Service::FileSystem::GetUserNANDContents()->InstallEntry(
|
|
|
|
|
nca, static_cast<FileSys::TitleType>(index))) {
|
|
|
|
|
QMessageBox::critical(this, tr("Failed to Install NCA"),
|
|
|
|
|
tr("There was an error while attempting to install the "
|
|
|
|
|
"provided NCA file. An error might have occured creating "
|
|
|
|
|
"the metadata file or parsing the NCA. Please "
|
|
|
|
|
"double-check your file and try again."));
|
|
|
|
|
} else {
|
|
|
|
|
QMessageBox::information(this, tr("Successfully Installed NCA"),
|
|
|
|
|
tr("The file was successfully installed."));
|
|
|
|
|
game_list->PopulateAsync(UISettings::values.gamedir,
|
|
|
|
|
UISettings::values.gamedir_deepscan);
|
|
|
|
|
} else {
|
|
|
|
|
QMessageBox::warning(this, tr("Failed to Install NCA"),
|
|
|
|
|
tr("There was an error while attempting to install the "
|
|
|
|
|
"provided NCA file. An error might have occured creating "
|
|
|
|
|
"the metadata file or parsing the NCA. Please "
|
|
|
|
|
"double-check your file and try again."));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|