Project: Always report the main project file

Always report the main project file in Project::isKnownFile(...) and
Project::files(...).

Change-Id: If9b9cc205e3419a457b05b368cb524c982cbc18c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Tobias Hunger
2018-01-10 12:36:00 +01:00
parent a1af407f53
commit bcc550a4e2

View File

@@ -89,7 +89,7 @@ namespace ProjectExplorer {
static bool isListedFileNode(const Node *node)
{
return node->nodeType() == NodeType::File && node->listInProject();
return node->asContainerNode() || (node->nodeType() == NodeType::File && node->listInProject());
}
static bool nodeLessThan(const Node *n1, const Node *n2)
@@ -602,9 +602,8 @@ Project::RestoreResult Project::restoreSettings(QString *errorMessage)
Utils::FileNameList Project::files(const Project::NodeMatcher &filter) const
{
Utils::FileNameList result;
if (!rootProjectNode())
return result;
if (d->m_sortedNodeList.empty() && filter(containerNode()))
result.append(projectFilePath());
Utils::FileName lastAdded;
for (const Node *n : Utils::asConst(d->m_sortedNodeList)) {
@@ -742,6 +741,8 @@ QStringList Project::filesGeneratedFrom(const QString &file) const
bool Project::isKnownFile(const Utils::FileName &filename) const
{
if (d->m_sortedNodeList.empty())
return filename == projectFilePath();
const auto end = std::end(d->m_sortedNodeList);
const FileNode element(filename, FileType::Unknown, false);
const auto it = std::lower_bound(std::begin(d->m_sortedNodeList), end, &element, &nodeLessThan);