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:
Tobias Hunger
2020-01-23 12:25:44 +01:00
parent ec4e60e691
commit e4738904d9
12 changed files with 104 additions and 100 deletions

View File

@@ -201,9 +201,6 @@ public:
QString m_displayName;
Kit::Predicate m_requiredKitPredicate;
Kit::Predicate m_preferredKitPredicate;
Utils::MacroExpander m_macroExpander;
Utils::FilePath m_rootProjectDirectory;
mutable QVector<const Node *> m_sortedNodeList;
@@ -229,10 +226,6 @@ Project::Project(const QString &mimeType,
// Only set up containernode after d is set so that it will find the project directory!
d->m_containerNode = std::make_unique<ContainerNode>(this);
setRequiredKitPredicate([this](const Kit *k) {
return !containsType(projectIssues(k), Task::TaskType::Error);
});
}
Project::~Project()
@@ -974,31 +967,11 @@ ProjectImporter *Project::projectImporter() const
return nullptr;
}
Kit::Predicate Project::requiredKitPredicate() const
{
return d->m_requiredKitPredicate;
}
void Project::setRequiredKitPredicate(const Kit::Predicate &predicate)
{
d->m_requiredKitPredicate = predicate;
}
void Project::setCanBuildProducts()
{
d->m_canBuildProducts = true;
}
Kit::Predicate Project::preferredKitPredicate() const
{
return d->m_preferredKitPredicate;
}
void Project::setPreferredKitPredicate(const Kit::Predicate &predicate)
{
d->m_preferredKitPredicate = predicate;
}
void Project::setExtraData(const QString &key, const QVariant &data)
{
d->m_extraData.insert(key, data);