diff options
author | Jarek Kobus <[email protected]> | 2024-04-18 15:57:25 +0200 |
---|---|---|
committer | Jarek Kobus <[email protected]> | 2024-04-22 12:19:31 +0000 |
commit | 3a4784ea6cde2e375266db55632355dc73ff2165 (patch) | |
tree | 500b302b23dd44f41de331d33431481fc66a0fb2 /src | |
parent | 14fa8ec3d5d67f8aa42c5523227832196253b0b2 (diff) |
Android: Introduce InstallationChange helper struct
Change-Id: Iae86b86d5966847d3dafe2e119782e2d0ce3cfe2
Reviewed-by: Alessandro Portale <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/android/androidsdkmanager.cpp | 17 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanager.h | 9 | ||||
-rw-r--r-- | src/plugins/android/androidsdkmanagerwidget.cpp | 2 |
3 files changed, 16 insertions, 12 deletions
diff --git a/src/plugins/android/androidsdkmanager.cpp b/src/plugins/android/androidsdkmanager.cpp index 293094cbbe4..50e4d5e01d8 100644 --- a/src/plugins/android/androidsdkmanager.cpp +++ b/src/plugins/android/androidsdkmanager.cpp @@ -169,8 +169,7 @@ public: void parseCommonArguments(QPromise<QString> &promise); void updateInstalled(SdkCmdPromise &fi); - void update(SdkCmdPromise &fi, const QStringList &install, - const QStringList &uninstall); + void update(SdkCmdPromise &fi, const InstallationChange &change); void checkPendingLicense(SdkCmdPromise &fi); void getPendingLicense(SdkCmdPromise &fi); @@ -321,12 +320,11 @@ QFuture<AndroidSdkManager::OperationOutput> AndroidSdkManager::updateAll() return future; } -QFuture<AndroidSdkManager::OperationOutput> -AndroidSdkManager::update(const QStringList &install, const QStringList &uninstall) +QFuture<AndroidSdkManager::OperationOutput> AndroidSdkManager::update(const InstallationChange &change) { if (isBusy()) return QFuture<AndroidSdkManager::OperationOutput>(); - auto future = Utils::asyncRun(&AndroidSdkManagerPrivate::update, m_d.get(), install, uninstall); + auto future = Utils::asyncRun(&AndroidSdkManagerPrivate::update, m_d.get(), change); m_d->addWatcher(future); return future; } @@ -426,12 +424,11 @@ void AndroidSdkManagerPrivate::updateInstalled(SdkCmdPromise &promise) promise.setProgressValue(100); } -void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &install, - const QStringList &uninstall) +void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const InstallationChange &change) { fi.setProgressRange(0, 100); fi.setProgressValue(0); - double progressQuota = 100.0 / (install.count() + uninstall.count()); + double progressQuota = 100.0 / change.count(); int currentProgress = 0; QString installTag = Tr::tr("Installing"); @@ -459,7 +456,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst // Uninstall packages - for (const QString &sdkStylePath : uninstall) { + for (const QString &sdkStylePath : change.toUninstall) { // Uninstall operations are not interptible. We don't want to leave half uninstalled. QStringList args; args << "--uninstall" << sdkStylePath << androidConfig().sdkManagerToolArgs(); @@ -468,7 +465,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst } // Install packages - for (const QString &sdkStylePath : install) { + for (const QString &sdkStylePath : change.toInstall) { QStringList args(sdkStylePath); args << androidConfig().sdkManagerToolArgs(); if (doOperation(sdkStylePath, args, true)) diff --git a/src/plugins/android/androidsdkmanager.h b/src/plugins/android/androidsdkmanager.h index 9e5a080684e..fcae035ab91 100644 --- a/src/plugins/android/androidsdkmanager.h +++ b/src/plugins/android/androidsdkmanager.h @@ -19,6 +19,13 @@ namespace Internal { class AndroidSdkManagerPrivate; +struct InstallationChange +{ + QStringList toInstall; + QStringList toUninstall = {}; + int count() const { return toInstall.count() + toUninstall.count(); } +}; + class AndroidSdkManager : public QObject { Q_OBJECT @@ -65,7 +72,7 @@ public: QFuture<QString> availableArguments() const; QFuture<OperationOutput> updateAll(); - QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall); + QFuture<OperationOutput> update(const InstallationChange &change); QFuture<OperationOutput> checkPendingLicenses(); QFuture<OperationOutput> runLicenseCommand(); diff --git a/src/plugins/android/androidsdkmanagerwidget.cpp b/src/plugins/android/androidsdkmanagerwidget.cpp index 6eebe0adb46..e8c46efcdcd 100644 --- a/src/plugins/android/androidsdkmanagerwidget.cpp +++ b/src/plugins/android/androidsdkmanagerwidget.cpp @@ -452,7 +452,7 @@ void AndroidSdkManagerWidget::beginExecution() Tr::tr("preferences") : Tr::tr("options")), LogMessageFormat); - addPackageFuture(m_sdkManager->update(installSdkPaths, uninstallSdkPaths)); + addPackageFuture(m_sdkManager->update({installSdkPaths, uninstallSdkPaths})); } void AndroidSdkManagerWidget::beginUpdate() |