| 395 | } |
| 396 | |
| 397 | void ModUpdateDialog::onMetadataFailed(Mod* mod, bool try_others, ModPlatform::ResourceProvider first_choice) |
| 398 | { |
| 399 | if (try_others) { |
| 400 | auto index_dir = indexDir(); |
| 401 | |
| 402 | auto task = makeShared<EnsureMetadataTask>(mod, index_dir, next(first_choice)); |
| 403 | connect(task.get(), &EnsureMetadataTask::metadataReady, [this](Mod* candidate) { onMetadataEnsured(candidate); }); |
| 404 | connect(task.get(), &EnsureMetadataTask::metadataFailed, [this](Mod* candidate) { onMetadataFailed(candidate, false); }); |
| 405 | connect(task.get(), &EnsureMetadataTask::failed, |
| 406 | [this](const QString& reason) { CustomMessageBox::selectable(this, tr("Error"), reason, QMessageBox::Critical)->exec(); }); |
| 407 | if (task->getHashingTask()) { |
| 408 | auto seq = makeShared<SequentialTask>(); |
| 409 | seq->addTask(task->getHashingTask()); |
| 410 | seq->addTask(task); |
| 411 | m_second_try_metadata->addTask(seq); |
| 412 | } else { |
| 413 | m_second_try_metadata->addTask(task); |
| 414 | } |
| 415 | } else { |
| 416 | QString reason{ tr("Couldn't find a valid version on the selected mod provider(s)") }; |
| 417 | |
| 418 | m_failed_metadata.append({ mod, reason }); |
| 419 | } |
| 420 | } |
| 421 | |
| 422 | void ModUpdateDialog::appendMod(CheckUpdateTask::UpdatableMod const& info, QStringList requiredBy) |
| 423 | { |
nothing calls this directly
no test coverage detected