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,
|
AndroidSdkPackageList filteredPackages(AndroidSdkPackage::PackageState state,
|
||||||
AndroidSdkPackage::PackageType type)
|
AndroidSdkPackage::PackageType type)
|
||||||
{
|
{
|
||||||
|
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;
|
||||||
});
|
});
|
||||||
@@ -477,8 +478,6 @@ void AndroidSdkManager::refreshPackages()
|
|||||||
{
|
{
|
||||||
if (AndroidConfig::sdkManagerToolPath() != m_d->lastSdkManagerPath)
|
if (AndroidConfig::sdkManagerToolPath() != m_d->lastSdkManagerPath)
|
||||||
reloadPackages();
|
reloadPackages();
|
||||||
else
|
|
||||||
emit packagesReloaded();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidSdkManager::reloadPackages()
|
void AndroidSdkManager::reloadPackages()
|
||||||
@@ -522,6 +521,7 @@ AndroidSdkManagerPrivate::~AndroidSdkManagerPrivate()
|
|||||||
|
|
||||||
const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages()
|
const AndroidSdkPackageList &AndroidSdkManagerPrivate::allPackages()
|
||||||
{
|
{
|
||||||
|
m_sdkManager.refreshPackages();
|
||||||
return m_allPackages;
|
return m_allPackages;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -478,13 +478,6 @@ AndroidSettingsWidget::AndroidSettingsWidget()
|
|||||||
this, &AndroidSettingsWidget::downloadOpenSslRepo);
|
this, &AndroidSettingsWidget::downloadOpenSslRepo);
|
||||||
connect(downloadOpenJdkToolButton, &QAbstractButton::clicked,
|
connect(downloadOpenJdkToolButton, &QAbstractButton::clicked,
|
||||||
this, &AndroidSettingsWidget::openOpenJDKDownloadUrl);
|
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] {
|
connect(sdkManagerToolButton, &QAbstractButton::clicked, this, [this] {
|
||||||
executeAndroidSdkManagerDialog(m_sdkManager, this);
|
executeAndroidSdkManagerDialog(m_sdkManager, this);
|
||||||
});
|
});
|
||||||
@@ -519,7 +512,16 @@ 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, 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();
|
validateOpenSsl();
|
||||||
m_isInitialReloadDone = true;
|
m_isInitialReloadDone = true;
|
||||||
}
|
}
|
||||||
|
@@ -42,7 +42,6 @@ AvdDialog::AvdDialog(QWidget *parent)
|
|||||||
: QDialog(parent)
|
: QDialog(parent)
|
||||||
, m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*"))
|
, m_allowedNameChars(QLatin1String("[a-z|A-Z|0-9|._-]*"))
|
||||||
{
|
{
|
||||||
AndroidConfigurations::sdkManager()->refreshPackages();
|
|
||||||
resize(800, 0);
|
resize(800, 0);
|
||||||
setWindowTitle(Tr::tr("Create new AVD"));
|
setWindowTitle(Tr::tr("Create new AVD"));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user