Android: Get rid of forceReload arg

Split arg-rich reloadPackages() into refreshPackages() and
arg-less reloadPackages().

Change-Id: Icf9ee6c9a805732d9015a49c862d9ba411786c13
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Jarek Kobus
2024-04-17 17:43:48 +02:00
parent bfbbd7226b
commit caf2ad3a67
4 changed files with 21 additions and 24 deletions

View File

@@ -162,13 +162,12 @@ public:
AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state, AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state,
AndroidSdkPackage::PackageType type) AndroidSdkPackage::PackageType type)
{ {
refreshSdkPackages(); m_sdkManager.refreshPackages();
return Utils::filtered(m_allPackages, [state, type](const AndroidSdkPackage *p) { return Utils::filtered(m_allPackages, [state, type](const AndroidSdkPackage *p) {
return p->state() & state && p->type() & type; return p->state() & state && p->type() & type;
}); });
} }
const AndroidSdkPackageList &allPackages(); const AndroidSdkPackageList &allPackages();
void refreshSdkPackages(bool forceReload = false);
void parseCommonArguments(QPromise<QString> &promise); void parseCommonArguments(QPromise<QString> &promise);
void updateInstalled(SdkCmdPromise &fi); void updateInstalled(SdkCmdPromise &fi);
@@ -182,7 +181,6 @@ public:
std::unique_ptr<QFutureWatcher<void>, decltype(&watcherDeleter)> m_activeOperation; std::unique_ptr<QFutureWatcher<void>, decltype(&watcherDeleter)> m_activeOperation;
private:
QByteArray getUserInput() const; QByteArray getUserInput() const;
void clearUserInput(); void clearUserInput();
void reloadSdkPackages(); void reloadSdkPackages();
@@ -289,9 +287,15 @@ BuildToolsList AndroidSdkManager::filteredBuildTools(int minApiLevel,
return result; return result;
} }
void AndroidSdkManager::reloadPackages(bool forceReload) void AndroidSdkManager::refreshPackages()
{ {
m_d->refreshSdkPackages(forceReload); if (androidConfig().sdkManagerToolPath() != m_d->lastSdkManagerPath)
reloadPackages();
}
void AndroidSdkManager::reloadPackages()
{
m_d->reloadSdkPackages();
} }
bool AndroidSdkManager::isBusy() const bool AndroidSdkManager::isBusy() const
@@ -370,7 +374,7 @@ AndroidSdkManagerPrivate::~AndroidSdkManagerPrivate()
const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages() const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages()
{ {
refreshSdkPackages(); m_sdkManager.refreshPackages();
return m_allPackages; return m_allPackages;
} }
@@ -402,14 +406,6 @@ void AndroidSdkManagerPrivate::reloadSdkPackages()
emit m_sdkManager.packageReloadFinished(); emit m_sdkManager.packageReloadFinished();
} }
void AndroidSdkManagerPrivate::refreshSdkPackages(bool forceReload)
{
// Sdk path changed. Updated packages.
// QTC updates the package listing only
if (androidConfig().sdkManagerToolPath() != lastSdkManagerPath || forceReload)
reloadSdkPackages();
}
void AndroidSdkManagerPrivate::updateInstalled(SdkCmdPromise &promise) void AndroidSdkManagerPrivate::updateInstalled(SdkCmdPromise &promise)
{ {
promise.setProgressRange(0, 100); promise.setProgressRange(0, 100);

View File

@@ -57,7 +57,8 @@ public:
BuildToolsList filteredBuildTools(int minApiLevel, BuildToolsList filteredBuildTools(int minApiLevel,
AndroidSdkPackage::PackageState state AndroidSdkPackage::PackageState state
= AndroidSdkPackage::Installed); = AndroidSdkPackage::Installed);
void reloadPackages(bool forceReload = false); void refreshPackages();
void reloadPackages();
bool isBusy() const; bool isBusy() const;
bool packageListingSuccessful() const; bool packageListingSuccessful() const;

View File

@@ -232,7 +232,7 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidSdkManager *sdkManager,
args.removeAll(obsoleteArg); args.removeAll(obsoleteArg);
androidConfig().setSdkManagerToolArgs(args); androidConfig().setSdkManagerToolArgs(args);
} }
m_sdkManager->reloadPackages(true); m_sdkManager->reloadPackages();
}); });
connect(channelCheckbox, &QComboBox::currentIndexChanged, this, [this](int index) { connect(channelCheckbox, &QComboBox::currentIndexChanged, this, [this](int index) {
@@ -261,7 +261,7 @@ AndroidSdkManagerWidget::AndroidSdkManagerWidget(AndroidSdkManager *sdkManager,
androidConfig().setSdkManagerToolArgs(args); androidConfig().setSdkManagerToolArgs(args);
} }
} }
m_sdkManager->reloadPackages(true); m_sdkManager->reloadPackages();
}); });
} }
@@ -511,7 +511,7 @@ void AndroidSdkManagerWidget::packageFutureFinished()
case AndroidSdkManager::UpdatePackage: case AndroidSdkManager::UpdatePackage:
notifyOperationFinished(); notifyOperationFinished();
switchView(PackageListing); switchView(PackageListing);
m_sdkManager->reloadPackages(true); m_sdkManager->reloadPackages();
break; break;
default: default:
break; break;
@@ -520,7 +520,7 @@ void AndroidSdkManagerWidget::packageFutureFinished()
m_currentOperation->deleteLater(); m_currentOperation->deleteLater();
m_currentOperation = nullptr; m_currentOperation = nullptr;
switchView(PackageListing); switchView(PackageListing);
m_sdkManager->reloadPackages(true); m_sdkManager->reloadPackages();
} }
} }
@@ -566,7 +566,7 @@ void AndroidSdkManagerWidget::onSdkManagerOptions()
QStringList arguments = dlg.sdkManagerArguments(); QStringList arguments = dlg.sdkManagerArguments();
if (arguments != androidConfig().sdkManagerToolArgs()) { if (arguments != androidConfig().sdkManagerToolArgs()) {
androidConfig().setSdkManagerToolArgs(arguments); androidConfig().setSdkManagerToolArgs(arguments);
m_sdkManager->reloadPackages(true); m_sdkManager->reloadPackages();
} }
} }
} }

View File

@@ -511,7 +511,7 @@ AndroidSettingsWidget::AndroidSettingsWidget()
Tr::tr("Failed to create the SDK Tools path %1.") Tr::tr("Failed to create the SDK Tools path %1.")
.arg("\n\"" + sdkPath.toUserOutput() + "\"")); .arg("\n\"" + sdkPath.toUserOutput() + "\""));
} }
m_sdkManager.reloadPackages(true); m_sdkManager.reloadPackages();
updateUI(); updateUI();
apply(); apply();
@@ -536,7 +536,7 @@ void AndroidSettingsWidget::showEvent(QShowEvent *event)
validateJdk(); validateJdk();
// Reloading SDK packages (force) is still synchronous. Use zero timer // Reloading SDK packages (force) is still synchronous. Use zero timer
// to let settings dialog open first. // to let settings dialog open first.
QTimer::singleShot(0, this, [this] { m_sdkManager.reloadPackages(); }); QTimer::singleShot(0, &m_sdkManager, &AndroidSdkManager::refreshPackages);
validateOpenSsl(); validateOpenSsl();
m_isInitialReloadDone = true; m_isInitialReloadDone = true;
} }
@@ -608,7 +608,7 @@ void AndroidSettingsWidget::validateJdk()
updateUI(); updateUI();
if (m_isInitialReloadDone) if (m_isInitialReloadDone)
m_sdkManager.reloadPackages(true); m_sdkManager.reloadPackages();
} }
void AndroidSettingsWidget::validateOpenSsl() void AndroidSettingsWidget::validateOpenSsl()
@@ -635,7 +635,7 @@ void AndroidSettingsWidget::onSdkPathChanged()
currentOpenSslPath = sdkPath.pathAppended("android_openssl"); currentOpenSslPath = sdkPath.pathAppended("android_openssl");
m_openSslPathChooser->setFilePath(currentOpenSslPath); m_openSslPathChooser->setFilePath(currentOpenSslPath);
// Package reload will trigger validateSdk. // Package reload will trigger validateSdk.
m_sdkManager.reloadPackages(); m_sdkManager.refreshPackages();
} }
void AndroidSettingsWidget::validateSdk() void AndroidSettingsWidget::validateSdk()