forked from qt-creator/qt-creator
TargetSetupPage: Improve reporting on invalid kits
Give the reason for a kit being disabled in the tooltip. E.g. for a CMake project you will now get "Kit is invalid: No CMake tool set." instead of a generic error message about the kit being invalid. Change-Id: Ic776dc24149d65ebf27163b605ec2e52a3a504a7 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -58,12 +58,19 @@ void JsonKitsPage::initializePage()
|
||||
const Id platform = Id::fromString(wiz->stringValue(QLatin1String("Platform")));
|
||||
const QSet<Id> preferred
|
||||
= evaluate(m_preferredFeatures, wiz->value(QLatin1String("PreferredFeatures")), wiz);
|
||||
const QSet<Id> required
|
||||
= evaluate(m_requiredFeatures, wiz->value(QLatin1String("RequiredFeatures")), wiz);
|
||||
const QSet<Id> required = evaluate(m_requiredFeatures,
|
||||
wiz->value(QLatin1String("RequiredFeatures")),
|
||||
wiz);
|
||||
|
||||
setRequiredKitPredicate([required](const Kit *k) { return k->hasFeatures(required); });
|
||||
setPreferredKitPredicate([platform, preferred](const Kit *k) {
|
||||
return k->supportedPlatforms().contains(platform) && k->hasFeatures(preferred);
|
||||
setTasksGenerator([required, preferred, platform](const Kit *k) -> Tasks {
|
||||
if (!k->hasFeatures(required))
|
||||
return {CompileTask(Task::Error, tr("At least one required feature is not present."))};
|
||||
if (!k->supportedPlatforms().contains(platform))
|
||||
return {CompileTask(Task::Unknown, tr("Platform is not supported."))};
|
||||
if (!k->hasFeatures(preferred))
|
||||
return {
|
||||
CompileTask(Task::Unknown, tr("At least one preferred feature is not present."))};
|
||||
return {};
|
||||
});
|
||||
setProjectPath(wiz->expander()->expand(Utils::FilePath::fromString(unexpandedProjectPath())));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user