BaseQtVersion: Allow for a predicate when retrieving Qt versions

Make methods used to retrieve Qt versions from the Qt versions manager
take a predicate to select the interesting version.

Change-Id: I9218c57bae6d5033d49d618dfc0da41fe578444d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2017-01-11 14:43:48 +01:00
parent dd438a3445
commit 6553c3c99e
17 changed files with 75 additions and 92 deletions

View File

@@ -336,12 +336,13 @@ void AndroidSettingsWidget::check(AndroidSettingsWidget::Mode mode)
toolchainsForAbi.insert(ati.abi);
}
const QList<QtSupport::BaseQtVersion *> androidQts
= QtSupport::QtVersionManager::unsortedVersions([](const QtSupport::BaseQtVersion *v) {
return v->type() == QLatin1String(Constants::ANDROIDQT) && !v->qtAbis().isEmpty();
});
QSet<ProjectExplorer::Abi> qtVersionsForAbi;
foreach (QtSupport::BaseQtVersion *qtVersion, QtSupport::QtVersionManager::unsortedVersions()) {
if (qtVersion->type() != QLatin1String(Constants::ANDROIDQT) || qtVersion->qtAbis().isEmpty())
continue;
foreach (QtSupport::BaseQtVersion *qtVersion, androidQts)
qtVersionsForAbi.insert(qtVersion->qtAbis().first());
}
QSet<ProjectExplorer::Abi> missingQtArchs = toolchainsForAbi.subtract(qtVersionsForAbi);
if (missingQtArchs.isEmpty()) {