forked from qt-creator/qt-creator
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. Amends56b88ab758
Amendsca8e5dbb4e
Change-Id: If472950cdc05e1bdc080ef1781967b5dacec4433 Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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"));
|
||||
|
||||
|
Reference in New Issue
Block a user