| 412 | } |
| 413 | |
| 414 | void ResourceUpdateDialog::onMetadataFailed(Resource* resource, bool try_others, ModPlatform::ResourceProvider first_choice) |
| 415 | { |
| 416 | if (try_others) { |
| 417 | auto index_dir = indexDir(); |
| 418 | |
| 419 | auto task = makeShared<EnsureMetadataTask>(resource, index_dir, next(first_choice)); |
| 420 | connect(task.get(), &EnsureMetadataTask::metadataReady, [this](Resource* candidate) { onMetadataEnsured(candidate); }); |
| 421 | connect(task.get(), &EnsureMetadataTask::metadataFailed, [this](Resource* candidate) { onMetadataFailed(candidate, false); }); |
| 422 | connect(task.get(), &EnsureMetadataTask::failed, |
| 423 | [this](const QString& reason) { CustomMessageBox::selectable(this, tr("Error"), reason, QMessageBox::Critical)->exec(); }); |
| 424 | if (task->getHashingTask()) { |
| 425 | auto seq = makeShared<SequentialTask>(); |
| 426 | seq->addTask(task->getHashingTask()); |
| 427 | seq->addTask(task); |
| 428 | m_secondTryMetadata->addTask(seq); |
| 429 | } else { |
| 430 | m_secondTryMetadata->addTask(task); |
| 431 | } |
| 432 | } else { |
| 433 | QString reason{ tr("Couldn't find a valid version on the selected mod provider(s)") }; |
| 434 | |
| 435 | m_failedMetadata.append({ resource, reason }); |
| 436 | } |
| 437 | } |
| 438 | |
| 439 | void ResourceUpdateDialog::appendResource(CheckUpdateTask::Update const& info, QStringList requiredBy) |
| 440 | { |
nothing calls this directly
no test coverage detected