forked from qt-creator/qt-creator
Android: Introduce InstallationChange helper struct
Change-Id: Iae86b86d5966847d3dafe2e119782e2d0ce3cfe2 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -169,8 +169,7 @@ public:
|
|||||||
|
|
||||||
void parseCommonArguments(QPromise<QString> &promise);
|
void parseCommonArguments(QPromise<QString> &promise);
|
||||||
void updateInstalled(SdkCmdPromise &fi);
|
void updateInstalled(SdkCmdPromise &fi);
|
||||||
void update(SdkCmdPromise &fi, const QStringList &install,
|
void update(SdkCmdPromise &fi, const InstallationChange &change);
|
||||||
const QStringList &uninstall);
|
|
||||||
void checkPendingLicense(SdkCmdPromise &fi);
|
void checkPendingLicense(SdkCmdPromise &fi);
|
||||||
void getPendingLicense(SdkCmdPromise &fi);
|
void getPendingLicense(SdkCmdPromise &fi);
|
||||||
|
|
||||||
@@ -321,12 +320,11 @@ QFuture<AndroidSdkManager::OperationOutput> AndroidSdkManager::updateAll()
|
|||||||
return future;
|
return future;
|
||||||
}
|
}
|
||||||
|
|
||||||
QFuture<AndroidSdkManager::OperationOutput>
|
QFuture<AndroidSdkManager::OperationOutput> AndroidSdkManager::update(const InstallationChange &change)
|
||||||
AndroidSdkManager::update(const QStringList &install, const QStringList &uninstall)
|
|
||||||
{
|
{
|
||||||
if (isBusy())
|
if (isBusy())
|
||||||
return QFuture<AndroidSdkManager::OperationOutput>();
|
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);
|
m_d->addWatcher(future);
|
||||||
return future;
|
return future;
|
||||||
}
|
}
|
||||||
@@ -426,12 +424,11 @@ void AndroidSdkManagerPrivate::updateInstalled(SdkCmdPromise &promise)
|
|||||||
promise.setProgressValue(100);
|
promise.setProgressValue(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &install,
|
void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const InstallationChange &change)
|
||||||
const QStringList &uninstall)
|
|
||||||
{
|
{
|
||||||
fi.setProgressRange(0, 100);
|
fi.setProgressRange(0, 100);
|
||||||
fi.setProgressValue(0);
|
fi.setProgressValue(0);
|
||||||
double progressQuota = 100.0 / (install.count() + uninstall.count());
|
double progressQuota = 100.0 / change.count();
|
||||||
int currentProgress = 0;
|
int currentProgress = 0;
|
||||||
|
|
||||||
QString installTag = Tr::tr("Installing");
|
QString installTag = Tr::tr("Installing");
|
||||||
@@ -459,7 +456,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst
|
|||||||
|
|
||||||
|
|
||||||
// Uninstall packages
|
// 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.
|
// Uninstall operations are not interptible. We don't want to leave half uninstalled.
|
||||||
QStringList args;
|
QStringList args;
|
||||||
args << "--uninstall" << sdkStylePath << androidConfig().sdkManagerToolArgs();
|
args << "--uninstall" << sdkStylePath << androidConfig().sdkManagerToolArgs();
|
||||||
@@ -468,7 +465,7 @@ void AndroidSdkManagerPrivate::update(SdkCmdPromise &fi, const QStringList &inst
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Install packages
|
// Install packages
|
||||||
for (const QString &sdkStylePath : install) {
|
for (const QString &sdkStylePath : change.toInstall) {
|
||||||
QStringList args(sdkStylePath);
|
QStringList args(sdkStylePath);
|
||||||
args << androidConfig().sdkManagerToolArgs();
|
args << androidConfig().sdkManagerToolArgs();
|
||||||
if (doOperation(sdkStylePath, args, true))
|
if (doOperation(sdkStylePath, args, true))
|
||||||
|
|||||||
@@ -19,6 +19,13 @@ namespace Internal {
|
|||||||
|
|
||||||
class AndroidSdkManagerPrivate;
|
class AndroidSdkManagerPrivate;
|
||||||
|
|
||||||
|
struct InstallationChange
|
||||||
|
{
|
||||||
|
QStringList toInstall;
|
||||||
|
QStringList toUninstall = {};
|
||||||
|
int count() const { return toInstall.count() + toUninstall.count(); }
|
||||||
|
};
|
||||||
|
|
||||||
class AndroidSdkManager : public QObject
|
class AndroidSdkManager : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -65,7 +72,7 @@ public:
|
|||||||
|
|
||||||
QFuture<QString> availableArguments() const;
|
QFuture<QString> availableArguments() const;
|
||||||
QFuture<OperationOutput> updateAll();
|
QFuture<OperationOutput> updateAll();
|
||||||
QFuture<OperationOutput> update(const QStringList &install, const QStringList &uninstall);
|
QFuture<OperationOutput> update(const InstallationChange &change);
|
||||||
QFuture<OperationOutput> checkPendingLicenses();
|
QFuture<OperationOutput> checkPendingLicenses();
|
||||||
QFuture<OperationOutput> runLicenseCommand();
|
QFuture<OperationOutput> runLicenseCommand();
|
||||||
|
|
||||||
|
|||||||
@@ -452,7 +452,7 @@ void AndroidSdkManagerWidget::beginExecution()
|
|||||||
Tr::tr("preferences") : Tr::tr("options")),
|
Tr::tr("preferences") : Tr::tr("options")),
|
||||||
LogMessageFormat);
|
LogMessageFormat);
|
||||||
|
|
||||||
addPackageFuture(m_sdkManager->update(installSdkPaths, uninstallSdkPaths));
|
addPackageFuture(m_sdkManager->update({installSdkPaths, uninstallSdkPaths}));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidSdkManagerWidget::beginUpdate()
|
void AndroidSdkManagerWidget::beginUpdate()
|
||||||
|
|||||||
Reference in New Issue
Block a user