TaskTree: Use common done handler

Instead of specifying two separate done and error handlers,
specify just one that takes additional "bool success" argument.

Task-number: QTCREATORBUG-29834
Change-Id: Ie4f92236a38b03dac3dd33b2c80a317b62772a12
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Jarek Kobus
2023-11-02 16:14:50 +01:00
parent 0e7ecee489
commit 0fa16f8489
21 changed files with 209 additions and 217 deletions

View File

@@ -130,10 +130,15 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
#endif
});
};
const auto onQueryDone = [this, storage](const NetworkQuery &query) {
const auto onQueryDone = [this, storage](const NetworkQuery &query, bool success) {
QNetworkReply *reply = query.reply();
QTC_ASSERT(reply, return);
const QUrl url = reply->url();
if (!success) {
logError(Tr::tr("Downloading Android SDK Tools from URL %1 has failed: %2.")
.arg(url.toString(), reply->errorString()));
return;
}
if (isHttpRedirect(reply)) {
logError(Tr::tr("Download from %1 was redirected.").arg(url.toString()));
return;
@@ -146,13 +151,6 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
}
*storage = sdkFileName;
};
const auto onQueryError = [this](const NetworkQuery &query) {
QNetworkReply *reply = query.reply();
QTC_ASSERT(reply, return);
const QUrl url = reply->url();
logError(Tr::tr("Downloading Android SDK Tools from URL %1 has failed: %2.")
.arg(url.toString(), reply->errorString()));
};
const auto onUnarchiveSetup = [this, storage](Unarchiver &unarchiver) {
m_progressDialog->setRange(0, 0);
@@ -173,19 +171,20 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
unarchiver.setDestDir(sdkFileName.parentDir());
return SetupResult::Continue;
};
const auto onUnarchiverDone = [this, storage](const Unarchiver &) {
const auto onUnarchiverDone = [this, storage](const Unarchiver &, bool success) {
if (!success) {
logError(Tr::tr("Unarchiving error."));
return;
}
m_androidConfig.setTemporarySdkToolsPath(
(*storage)->parentDir().pathAppended(Constants::cmdlineToolsName));
QMetaObject::invokeMethod(this, [this] { emit sdkExtracted(); }, Qt::QueuedConnection);
};
const auto onUnarchiverError = [this](const Unarchiver &) {
logError(Tr::tr("Unarchiving error."));
};
const Group root {
Tasking::Storage(storage),
NetworkQueryTask(onQuerySetup, onQueryDone, onQueryError),
UnarchiverTask(onUnarchiveSetup, onUnarchiverDone, onUnarchiverError)
NetworkQueryTask(onQuerySetup, onQueryDone),
UnarchiverTask(onUnarchiveSetup, onUnarchiverDone)
};
m_taskTree.reset(new TaskTree(root));