| 646 | } |
| 647 | |
| 648 | void PackInstallTask::installConfigs() |
| 649 | { |
| 650 | qDebug() << "PackInstallTask::installConfigs: " << QThread::currentThreadId(); |
| 651 | setStatus(tr("Downloading configs...")); |
| 652 | jobPtr = new NetJob(tr("Config download"), APPLICATION->network()); |
| 653 | |
| 654 | auto path = QString("Configs/%1/%2.zip").arg(m_pack_safe_name).arg(m_version_name); |
| 655 | auto url = QString(BuildConfig.ATL_DOWNLOAD_SERVER_URL + "packs/%1/versions/%2/Configs.zip") |
| 656 | .arg(m_pack_safe_name).arg(m_version_name); |
| 657 | auto entry = APPLICATION->metacache()->resolveEntry("ATLauncherPacks", path); |
| 658 | entry->setStale(true); |
| 659 | |
| 660 | auto dl = Net::Download::makeCached(url, entry); |
| 661 | if (!m_version.configs.sha1.isEmpty()) { |
| 662 | auto rawSha1 = QByteArray::fromHex(m_version.configs.sha1.toLatin1()); |
| 663 | dl->addValidator(new Net::ChecksumValidator(QCryptographicHash::Sha1, rawSha1)); |
| 664 | } |
| 665 | jobPtr->addNetAction(dl); |
| 666 | archivePath = entry->getFullPath(); |
| 667 | |
| 668 | connect(jobPtr.get(), &NetJob::succeeded, this, [&]() |
| 669 | { |
| 670 | abortable = false; |
| 671 | jobPtr.reset(); |
| 672 | extractConfigs(); |
| 673 | }); |
| 674 | connect(jobPtr.get(), &NetJob::failed, [&](QString reason) |
| 675 | { |
| 676 | abortable = false; |
| 677 | jobPtr.reset(); |
| 678 | emitFailed(reason); |
| 679 | }); |
| 680 | connect(jobPtr.get(), &NetJob::progress, [&](qint64 current, qint64 total) |
| 681 | { |
| 682 | abortable = true; |
| 683 | setProgress(current, total); |
| 684 | }); |
| 685 | connect(jobPtr.get(), &NetJob::aborted, [&]{ |
| 686 | abortable = false; |
| 687 | jobPtr.reset(); |
| 688 | emitAborted(); |
| 689 | }); |
| 690 | |
| 691 | jobPtr->start(); |
| 692 | } |
| 693 | |
| 694 | void PackInstallTask::extractConfigs() |
| 695 | { |
nothing calls this directly
no test coverage detected