forked from qt-creator/qt-creator
ProjectExplorer: Report project-specific kit errors/warnings
Report project-specific warnings about the kit used in Project Mode. E.g. a python project should not complain about missing toolchains, while a qmake project should. Change-Id: I5ce6742683cdeffc7ff3f1a3e8f0b89aee9aa0b4 Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
@@ -198,7 +198,9 @@ Project::Project(const QString &mimeType, const Utils::FileName &fileName,
|
||||
// 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 supportsKit(k); });
|
||||
setRequiredKitPredicate([this](const Kit *k) {
|
||||
return !containsType(projectIssues(k), Task::TaskType::Error);
|
||||
});
|
||||
}
|
||||
|
||||
Project::~Project()
|
||||
@@ -317,11 +319,12 @@ Target *Project::target(Kit *k) const
|
||||
return Utils::findOrDefault(d->m_targets, Utils::equal(&Target::kit, k));
|
||||
}
|
||||
|
||||
bool Project::supportsKit(const Kit *k, QString *errorMessage) const
|
||||
QList<Task> Project::projectIssues(const Kit *k) const
|
||||
{
|
||||
Q_UNUSED(k);
|
||||
Q_UNUSED(errorMessage);
|
||||
return true;
|
||||
QList<Task> result;
|
||||
if (!k->isValid())
|
||||
result.append(createProjectTask(Task::TaskType::Error, tr("Kit is not valid.")));
|
||||
return {};
|
||||
}
|
||||
|
||||
Target *Project::createTarget(Kit *k)
|
||||
@@ -762,6 +765,11 @@ void Project::projectLoaded()
|
||||
{
|
||||
}
|
||||
|
||||
Task Project::createProjectTask(Task::TaskType type, const QString &description)
|
||||
{
|
||||
return Task(type, description, Utils::FileName(), -1, Core::Id());
|
||||
}
|
||||
|
||||
Core::Context Project::projectContext() const
|
||||
{
|
||||
return Core::Context(d->m_id);
|
||||
|
||||
Reference in New Issue
Block a user