aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJarek Kobus <[email protected]>2024-04-18 15:57:25 +0200
committerJarek Kobus <[email protected]>2024-04-22 12:19:31 +0000
commit3a4784ea6cde2e375266db55632355dc73ff2165 (patch)
tree500b302b23dd44f41de331d33431481fc66a0fb2 /src
parent14fa8ec3d5d67f8aa42c5523227832196253b0b2 (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.cpp17
-rw-r--r--src/plugins/android/androidsdkmanager.h9
-rw-r--r--src/plugins/android/androidsdkmanagerwidget.cpp2
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()