Android: Restore original calls to refreshPackages

And remove the additional emission of packagesReloaded() signal.

The refreshPackages() may or may not emit the packagesReloaded() signal
synchronously. To make sure we validateSdk() on initial show just once,
we call refreshPackages() and validateSdk() in a row and after that
we establish connection to the packagesReloaded() signal.

It fixes qml project build.

Amends 56b88ab758
Amends ca8e5dbb4e

Change-Id: If472950cdc05e1bdc080ef1781967b5dacec4433
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Jarek Kobus
2024-10-28 13:51:06 +01:00
parent caa5103f8d
commit d78f39b9bb
3 changed files with 12 additions and 11 deletions

View File

@@ -341,6 +341,7 @@ public:
AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state,
AndroidSdkPackage::PackageType type)
{
m_sdkManager.refreshPackages();
return Utils::filtered(m_allPackages, [state, type](const AndroidSdkPackage *p) {
return p->state() & state && p->type() & type;
});
@@ -477,8 +478,6 @@ void AndroidSdkManager::refreshPackages()
{
if (AndroidConfig::sdkManagerToolPath() != m_d->lastSdkManagerPath)
reloadPackages();
else
emit packagesReloaded();
}
void AndroidSdkManager::reloadPackages()
@@ -522,6 +521,7 @@ AndroidSdkManagerPrivate::~AndroidSdkManagerPrivate()
const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages()
{
m_sdkManager.refreshPackages();
return m_allPackages;
}

View File

@@ -478,13 +478,6 @@ AndroidSettingsWidget::AndroidSettingsWidget()
this, &AndroidSettingsWidget::downloadOpenSslRepo);
connect(downloadOpenJdkToolButton, &QAbstractButton::clicked,
this, &AndroidSettingsWidget::openOpenJDKDownloadUrl);
// Validate SDK again after any change in SDK packages.
connect(m_sdkManager, &AndroidSdkManager::packagesReloaded, this, [this] {
m_androidSummary->setInProgressText("Packages reloaded");
m_sdkLocationPathChooser->triggerChanged();
validateSdk();
});
connect(sdkManagerToolButton, &QAbstractButton::clicked, this, [this] {
executeAndroidSdkManagerDialog(m_sdkManager, this);
});
@@ -519,7 +512,16 @@ void AndroidSettingsWidget::showEvent(QShowEvent *event)
validateJdk();
// Reloading SDK packages (force) is still synchronous. Use zero timer
// to let settings dialog open first.
QTimer::singleShot(0, m_sdkManager, &AndroidSdkManager::refreshPackages);
QTimer::singleShot(0, this, [this] {
m_sdkManager->refreshPackages();
validateSdk();
// Validate SDK again after any change in SDK packages.
connect(m_sdkManager, &AndroidSdkManager::packagesReloaded, this, [this] {
m_androidSummary->setInProgressText("Packages reloaded");
m_sdkLocationPathChooser->triggerChanged();
validateSdk();
});
});
validateOpenSsl();
m_isInitialReloadDone = true;
}

View File

@@ -42,7 +42,6 @@ AvdDialog::AvdDialog(QWidget *parent)
: QDialog(parent)
, m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*"))
{
AndroidConfigurations::sdkManager()->refreshPackages();
resize(800, 0);
setWindowTitle(Tr::tr("Create new AVD"));