Android: Reuse TaskTreeRunner in AndroidSdkDownloader

Change-Id: I3fca36d2cab44212d6a18daba68b7d27bf35b078
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Jarek Kobus
2024-01-13 13:36:39 +01:00
parent 1d2ed65d93
commit 0f67bbf872
2 changed files with 8 additions and 14 deletions

View File

@@ -18,6 +18,7 @@
#include <QProgressDialog>
#include <QStandardPaths>
using namespace Tasking;
using namespace Utils;
namespace { Q_LOGGING_CATEGORY(sdkDownloaderLog, "qtc.android.sdkDownloader", QtWarningMsg) }
@@ -29,7 +30,9 @@ namespace Android::Internal {
*/
AndroidSdkDownloader::AndroidSdkDownloader()
: m_androidConfig(AndroidConfigurations::currentConfig())
{}
{
connect(&m_taskTreeRunner, &TaskTreeRunner::done, this, [this] { m_progressDialog.reset(); });
}
AndroidSdkDownloader::~AndroidSdkDownloader() = default;
@@ -99,11 +102,9 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
m_progressDialog->setAutoClose(false);
connect(m_progressDialog.get(), &QProgressDialog::canceled, this, [this] {
m_progressDialog.release()->deleteLater();
m_taskTree.reset();
m_taskTreeRunner.reset();
});
using namespace Tasking;
Storage<std::optional<FilePath>> storage;
const auto onQuerySetup = [this](NetworkQuery &query) {
@@ -187,12 +188,7 @@ void AndroidSdkDownloader::downloadAndExtractSdk()
UnarchiverTask(onUnarchiveSetup, onUnarchiverDone)
};
m_taskTree.reset(new TaskTree(root));
connect(m_taskTree.get(), &TaskTree::done, this, [this] {
m_taskTree.release()->deleteLater();
m_progressDialog.reset();
});
m_taskTree->start();
m_taskTreeRunner.start(root);
}
QString AndroidSdkDownloader::dialogTitle()

View File

@@ -5,14 +5,12 @@
#include "androidconfigurations.h"
#include <QObject>
#include <solutions/tasking/tasktreerunner.h>
QT_BEGIN_NAMESPACE
class QProgressDialog;
QT_END_NAMESPACE
namespace Tasking { class TaskTree; }
namespace Android::Internal {
class AndroidSdkDownloader : public QObject
@@ -35,7 +33,7 @@ private:
AndroidConfig &m_androidConfig;
std::unique_ptr<QProgressDialog> m_progressDialog;
std::unique_ptr<Tasking::TaskTree> m_taskTree;
Tasking::TaskTreeRunner m_taskTreeRunner;
};
} // namespace Android::Internal