ProjectExplorer: Remove FileNode's isGenerated constructor bool

Use setter of base class, similar to setListInProject() before.

Change-Id: Id620f0084a5dec0410f29c80f8f6393a6bcd5050
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
hjk
2019-02-25 12:08:58 +01:00
parent 15673b6eca
commit 09372918c1
20 changed files with 50 additions and 59 deletions

View File

@@ -211,8 +211,8 @@ void AutotoolsProject::makefileParsingFinished()
auto newRoot = std::make_unique<AutotoolsProjectNode>(projectDirectory()); auto newRoot = std::make_unique<AutotoolsProjectNode>(projectDirectory());
for (const QString &f : m_files) { for (const QString &f : m_files) {
const Utils::FileName path = Utils::FileName::fromString(f); const Utils::FileName path = Utils::FileName::fromString(f);
newRoot->addNestedNode(std::make_unique<FileNode>(path, FileNode::fileTypeForFileName(path), newRoot->addNestedNode(std::make_unique<FileNode>(path,
false)); FileNode::fileTypeForFileName(path)));
} }
setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));

View File

@@ -429,7 +429,7 @@ void CMakeCbpParser::parseUnit()
// Now check whether we found a virtual element beneath // Now check whether we found a virtual element beneath
if (m_parsingCMakeUnit) { if (m_parsingCMakeUnit) {
m_cmakeFileList.emplace_back( m_cmakeFileList.emplace_back(
std::make_unique<FileNode>(fileName, FileType::Project, false)); std::make_unique<FileNode>(fileName, FileType::Project));
} else { } else {
bool generated = false; bool generated = false;
QString onlyFileName = fileName.fileName(); QString onlyFileName = fileName.fileName();
@@ -440,13 +440,12 @@ void CMakeCbpParser::parseUnit()
if (fileName.endsWith(".qrc")) { if (fileName.endsWith(".qrc")) {
m_fileList.emplace_back( m_fileList.emplace_back(
std::make_unique<FileNode>(fileName, FileType::Resource, std::make_unique<FileNode>(fileName, FileType::Resource));
generated));
} else { } else {
m_fileList.emplace_back( m_fileList.emplace_back(
std::make_unique<FileNode>(fileName, FileType::Source, std::make_unique<FileNode>(fileName, FileType::Source));
generated));
} }
m_fileList.back()->setIsGenerated(generated);
} }
m_unitTargetMap.insert(fileName, m_unitTargets); m_unitTargetMap.insert(fileName, m_unitTargets);
m_processedUnits.insert(fileName); m_processedUnits.insert(fileName);

View File

@@ -702,7 +702,8 @@ void ServerModeReader::extractCMakeInputsData(const QVariantMap &data)
// Always include CMakeLists.txt files, even when cmake things these are part of its // Always include CMakeLists.txt files, even when cmake things these are part of its
// stuff. This unbreaks cmake binaries running from their own build directory. // stuff. This unbreaks cmake binaries running from their own build directory.
m_cmakeInputsFileNodes.emplace_back( m_cmakeInputsFileNodes.emplace_back(
std::make_unique<FileNode>(sfn, FileType::Project, isTemporary)); std::make_unique<FileNode>(sfn, FileType::Project));
m_cmakeInputsFileNodes.back()->setIsGenerated(isTemporary);
} }
} }
} }
@@ -908,8 +909,8 @@ void ServerModeReader::addFileGroups(ProjectNode *targetRoot,
std::vector<std::unique_ptr<FileNode>> newFileNodes std::vector<std::unique_ptr<FileNode>> newFileNodes
= Utils::transform<std::vector>(newSources, = Utils::transform<std::vector>(newSources,
[f, &knownHeaderNodes](const Utils::FileName &fn) { [f, &knownHeaderNodes](const Utils::FileName &fn) {
auto node auto node = std::make_unique<FileNode>(fn, Node::fileTypeForFileName(fn));
= std::make_unique<FileNode>(fn, Node::fileTypeForFileName(fn), f->isGenerated); node->setIsGenerated(f->isGenerated);
if (node->fileType() == FileType::Header) if (node->fileType() == FileType::Header)
knownHeaderNodes.append(node.get()); knownHeaderNodes.append(node.get());
return node; return node;

View File

@@ -422,7 +422,7 @@ void TeaLeafReader::extractData()
resetData(); resetData();
m_projectName = m_parameters.projectName; m_projectName = m_parameters.projectName;
m_files.emplace_back(std::make_unique<FileNode>(topCMake, FileType::Project, false)); m_files.emplace_back(std::make_unique<FileNode>(topCMake, FileType::Project));
// Do not insert topCMake into m_cmakeFiles: The project already watches that! // Do not insert topCMake into m_cmakeFiles: The project already watches that!
// Find cbp file // Find cbp file
@@ -458,7 +458,7 @@ void TeaLeafReader::extractData()
if (!contains(m_files, [topCMake](const std::unique_ptr<FileNode> &fn) { if (!contains(m_files, [topCMake](const std::unique_ptr<FileNode> &fn) {
return fn->filePath() == topCMake; return fn->filePath() == topCMake;
})) }))
m_files.emplace_back(std::make_unique<FileNode>(topCMake, FileType::Project, false)); m_files.emplace_back(std::make_unique<FileNode>(topCMake, FileType::Project));
m_buildTargets = cbpparser.buildTargets(); m_buildTargets = cbpparser.buildTargets();
} }

View File

@@ -166,7 +166,7 @@ void TreeScanner::scanForFiles(FutureInterface *fi, const Utils::FileName& direc
if (factory) if (factory)
type = factory(mimeType, fn); type = factory(mimeType, fn);
return new FileNode(fn, type, false); return new FileNode(fn, type);
}, fip.get()); }, fip.get());
Utils::sort(nodes, ProjectExplorer::Node::sortByPath); Utils::sort(nodes, ProjectExplorer::Node::sortByPath);

View File

@@ -300,8 +300,7 @@ void createTree(FolderNode *root,
FolderNode *parentNode = createFoldersIfNeeded(root, fileName.parentDir()); FolderNode *parentNode = createFoldersIfNeeded(root, fileName.parentDir());
if (!parentNode->fileNode(fileName)) { if (!parentNode->fileNode(fileName)) {
parentNode->addNode(std::make_unique<FileNode>(fileName, parentNode->addNode(std::make_unique<FileNode>(fileName,
fileTypeForName(fileName.fileName()), fileTypeForName(fileName.fileName())));
false));
} }
} }
} }
@@ -395,10 +394,7 @@ void CompilationDatabaseProject::buildTreeAndProjectParts(const Utils::FileName
createTree(root.get(), commonPath, rpps); createTree(root.get(), commonPath, rpps);
root->addNode(std::make_unique<FileNode>( root->addNode(std::make_unique<FileNode>(projectFile, FileType::Project));
projectFile,
FileType::Project,
false));
setRootProjectNode(std::move(root)); setRootProjectNode(std::move(root));

View File

@@ -396,25 +396,19 @@ void GenericProject::refresh(RefreshOptions options)
FileType fileType = FileType::Source; // ### FIXME FileType fileType = FileType::Source; // ### FIXME
if (f.endsWith(".qrc")) if (f.endsWith(".qrc"))
fileType = FileType::Resource; fileType = FileType::Resource;
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(f), fileType, newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(f), fileType));
false));
} }
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_filesFileName), newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_filesFileName),
FileType::Project, FileType::Project));
/* generated = */ false));
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_includesFileName), newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_includesFileName),
FileType::Project, FileType::Project));
/* generated = */ false));
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_configFileName), newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_configFileName),
FileType::Project, FileType::Project));
/* generated = */ false));
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_cxxflagsFileName), newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_cxxflagsFileName),
FileType::Project, FileType::Project));
/* generated = */ false));
newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_cflagsFileName), newRoot->addNestedNode(std::make_unique<FileNode>(FileName::fromString(m_cflagsFileName),
FileType::Project, FileType::Project));
/* generated = */ false));
setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
} }

View File

@@ -126,7 +126,7 @@ void NimProject::collectProjectFiles()
|| fileName.endsWith(".nimproject", HostOsInfo::fileNameCaseSensitivity()) || fileName.endsWith(".nimproject", HostOsInfo::fileNameCaseSensitivity())
|| fileName.contains(".nimproject.user", HostOsInfo::fileNameCaseSensitivity())) || fileName.contains(".nimproject.user", HostOsInfo::fileNameCaseSensitivity()))
return nullptr; return nullptr;
return new FileNode(fn, FileType::Source, false); return new FileNode(fn, FileType::Source);
}); });
}); });
m_futureWatcher.setFuture(future); m_futureWatcher.setFuture(future);

View File

@@ -733,7 +733,7 @@ bool Project::isKnownFile(const Utils::FileName &filename) const
{ {
if (d->m_sortedNodeList.empty()) if (d->m_sortedNodeList.empty())
return filename == projectFilePath(); return filename == projectFilePath();
const FileNode element(filename, FileType::Unknown, false); const FileNode element(filename, FileType::Unknown);
return std::binary_search(std::begin(d->m_sortedNodeList), std::end(d->m_sortedNodeList), return std::binary_search(std::begin(d->m_sortedNodeList), std::end(d->m_sortedNodeList),
&element, nodeLessThan); &element, nodeLessThan);
} }
@@ -1062,9 +1062,10 @@ std::unique_ptr<ProjectNode> createFileTree(Project *project)
{ {
std::unique_ptr<ProjectNode> root = std::make_unique<TestProjectNode>(project->projectDirectory()); std::unique_ptr<ProjectNode> root = std::make_unique<TestProjectNode>(project->projectDirectory());
std::vector<std::unique_ptr<FileNode>> nodes; std::vector<std::unique_ptr<FileNode>> nodes;
nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_PATH, FileType::Project, false)); nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_PATH, FileType::Project));
nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_CPP_FILE, FileType::Source, false)); nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_CPP_FILE, FileType::Source));
nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_GENERATED_FILE, FileType::Source, true)); nodes.emplace_back(std::make_unique<FileNode>(TEST_PROJECT_GENERATED_FILE, FileType::Source));
nodes.back()->setIsGenerated(true);
root->addNestedNodes(std::move(nodes)); root->addNestedNodes(std::move(nodes));
return root; return root;

View File

@@ -261,7 +261,7 @@ void FlatModel::addOrRebuildProjectModel(Project *project)
if (container->childCount() == 0) { if (container->childCount() == 0) {
auto projectFileNode = std::make_unique<FileNode>(project->projectFilePath(), auto projectFileNode = std::make_unique<FileNode>(project->projectFilePath(),
FileType::Project, false); FileType::Project);
seen.insert(projectFileNode.get()); seen.insert(projectFileNode.get());
container->appendChild(new WrapperNode(projectFileNode.get())); container->appendChild(new WrapperNode(projectFileNode.get()));
project->containerNode()->addNestedNode(std::move(projectFileNode)); project->containerNode()->addNestedNode(std::move(projectFileNode));

View File

@@ -315,13 +315,12 @@ FileType Node::fileTypeForFileName(const Utils::FileName &file)
\sa ProjectExplorer::FolderNode, ProjectExplorer::ProjectNode \sa ProjectExplorer::FolderNode, ProjectExplorer::ProjectNode
*/ */
FileNode::FileNode(const Utils::FileName &filePath, const FileType fileType, bool generated, FileNode::FileNode(const Utils::FileName &filePath, const FileType fileType,
int line, const QByteArray &id) : int line, const QByteArray &id) :
Node(NodeType::File, filePath, line, id), Node(NodeType::File, filePath, line, id),
m_fileType(fileType) m_fileType(fileType)
{ {
setListInProject(true); setListInProject(true);
setIsGenerated(generated);
if (fileType == FileType::Project) if (fileType == FileType::Project)
setPriority(DefaultProjectFilePriority); setPriority(DefaultProjectFilePriority);
else else
@@ -330,7 +329,8 @@ FileNode::FileNode(const Utils::FileName &filePath, const FileType fileType, boo
FileNode *FileNode::clone() const FileNode *FileNode::clone() const
{ {
auto fn = new FileNode(filePath(), fileType(), isGenerated(), line(), id()); auto fn = new FileNode(filePath(), fileType(), line(), id());
fn->setIsGenerated(isGenerated());
fn->setEnabled(isEnabled()); fn->setEnabled(isEnabled());
fn->setPriority(priority()); fn->setPriority(priority());
fn->setListInProject(listInProject()); fn->setListInProject(listInProject());

View File

@@ -155,6 +155,7 @@ public:
void setParentFolderNode(FolderNode *parentFolder); void setParentFolderNode(FolderNode *parentFolder);
void setListInProject(bool l); void setListInProject(bool l);
void setIsGenerated(bool g);
static FileType fileTypeForMimeType(const Utils::MimeType &mt); static FileType fileTypeForMimeType(const Utils::MimeType &mt);
static FileType fileTypeForFileName(const Utils::FileName &file); static FileType fileTypeForFileName(const Utils::FileName &file);
@@ -164,7 +165,6 @@ protected:
const QByteArray &id = {}); const QByteArray &id = {});
void setPriority(int priority); void setPriority(int priority);
void setIsGenerated(bool g);
private: private:
FolderNode *m_parentFolderNode = nullptr; FolderNode *m_parentFolderNode = nullptr;
@@ -185,7 +185,7 @@ private:
class PROJECTEXPLORER_EXPORT FileNode : public Node class PROJECTEXPLORER_EXPORT FileNode : public Node
{ {
public: public:
FileNode(const Utils::FileName &filePath, const FileType fileType, bool generated, int line = -1, FileNode(const Utils::FileName &filePath, const FileType fileType, int line = -1,
const QByteArray &id = {}); const QByteArray &id = {});
FileNode *clone() const; FileNode *clone() const;

View File

@@ -471,7 +471,7 @@ class PythonFileNode : public FileNode
public: public:
PythonFileNode(const Utils::FileName &filePath, const QString &nodeDisplayName, PythonFileNode(const Utils::FileName &filePath, const QString &nodeDisplayName,
FileType fileType = FileType::Source) FileType fileType = FileType::Source)
: FileNode(filePath, fileType, false) : FileNode(filePath, fileType)
, m_displayName(nodeDisplayName) , m_displayName(nodeDisplayName)
{} {}

View File

@@ -236,9 +236,8 @@ static bool supportsNodeAction(ProjectAction action, const Node *node)
QbsFileNode::QbsFileNode(const Utils::FileName &filePath, QbsFileNode::QbsFileNode(const Utils::FileName &filePath,
const ProjectExplorer::FileType fileType, const ProjectExplorer::FileType fileType,
bool generated,
int line) : int line) :
ProjectExplorer::FileNode(filePath, fileType, generated, line) ProjectExplorer::FileNode(filePath, fileType, line, QByteArray{})
{} {}
QString QbsFileNode::displayName() const QString QbsFileNode::displayName() const

View File

@@ -42,7 +42,7 @@ class QbsProject;
class QbsFileNode : public ProjectExplorer::FileNode class QbsFileNode : public ProjectExplorer::FileNode
{ {
public: public:
QbsFileNode(const Utils::FileName &filePath, const ProjectExplorer::FileType fileType, bool generated, QbsFileNode(const Utils::FileName &filePath, const ProjectExplorer::FileType fileType,
int line); int line);
QString displayName() const override; QString displayName() const override;

View File

@@ -73,7 +73,8 @@ void setupArtifacts(ProjectExplorer::FolderNode *root, const QList<qbs::Artifact
QLatin1String("linkerscript"), QLatin1String("linkerscript"),
QLatin1String("qrc"), QLatin1String("java.java") QLatin1String("qrc"), QLatin1String("java.java")
}; };
auto node = std::make_unique<ProjectExplorer::FileNode>(path, type, isGenerated); auto node = std::make_unique<ProjectExplorer::FileNode>(path, type);
node->setIsGenerated(isGenerated);
node->setListInProject(!isGenerated || ad.fileTags().toSet().intersects(sourceTags)); node->setListInProject(!isGenerated || ad.fileTags().toSet().intersects(sourceTags));
root->addNestedNode(std::move(node)); root->addNestedNode(std::move(node));
} }
@@ -93,7 +94,7 @@ buildGroupNodeTree(const qbs::GroupData &grp, const QString &productPath, bool p
result->setDisplayName(grp.name()); result->setDisplayName(grp.name());
result->addNode(std::make_unique<QbsProjectManager::Internal::QbsFileNode>( result->addNode(std::make_unique<QbsProjectManager::Internal::QbsFileNode>(
Utils::FileName::fromString(grp.location().filePath()), Utils::FileName::fromString(grp.location().filePath()),
ProjectExplorer::FileType::Project, false, ProjectExplorer::FileType::Project,
grp.location().line())); grp.location().line()));
::setupArtifacts(result.get(), grp.allSourceArtifacts()); ::setupArtifacts(result.get(), grp.allSourceArtifacts());
@@ -114,7 +115,7 @@ void setupQbsProductData(QbsProjectManager::Internal::QbsProductNode *node,
// Add QbsFileNode: // Add QbsFileNode:
node->addNode(std::make_unique<QbsFileNode>(Utils::FileName::fromString(prd.location().filePath()), node->addNode(std::make_unique<QbsFileNode>(Utils::FileName::fromString(prd.location().filePath()),
ProjectExplorer::FileType::Project, false, ProjectExplorer::FileType::Project,
prd.location().line())); prd.location().line()));
@@ -150,7 +151,7 @@ void setupProjectNode(QbsProjectManager::Internal::QbsProjectNode *node, const q
{ {
using namespace QbsProjectManager::Internal; using namespace QbsProjectManager::Internal;
node->addNode(std::make_unique<QbsFileNode>(Utils::FileName::fromString(prjData.location().filePath()), node->addNode(std::make_unique<QbsFileNode>(Utils::FileName::fromString(prjData.location().filePath()),
ProjectExplorer::FileType::Project, false, ProjectExplorer::FileType::Project,
prjData.location().line())); prjData.location().line()));
foreach (const qbs::ProjectData &subData, prjData.subProjects()) { foreach (const qbs::ProjectData &subData, prjData.subProjects()) {
auto subProject = auto subProject =
@@ -222,7 +223,7 @@ std::unique_ptr<QbsRootProjectNode> QbsNodeTreeBuilder::buildTree(QbsProject *pr
for (const QString &f : files) { for (const QString &f : files) {
const Utils::FileName filePath = Utils::FileName::fromString(f); const Utils::FileName filePath = Utils::FileName::fromString(f);
if (filePath.isChildOf(base)) if (filePath.isChildOf(base))
buildSystemFiles->addNestedNode(std::make_unique<ProjectExplorer::FileNode>(filePath, ProjectExplorer::FileType::Project, false)); buildSystemFiles->addNestedNode(std::make_unique<ProjectExplorer::FileNode>(filePath, ProjectExplorer::FileType::Project));
} }
buildSystemFiles->compress(); buildSystemFiles->compress();
root->addNode(std::move(buildSystemFiles)); root->addNode(std::move(buildSystemFiles));

View File

@@ -137,7 +137,7 @@ static void createTree(const QmakePriFile *pri, QmakePriFileNode *node, const Fi
node->setIcon(qmakeStaticData()->projectIcon); node->setIcon(qmakeStaticData()->projectIcon);
// .pro/.pri-file itself: // .pro/.pri-file itself:
node->addNode(std::make_unique<FileNode>(pri->filePath(), FileType::Project, false)); node->addNode(std::make_unique<FileNode>(pri->filePath(), FileType::Project));
// other normal files: // other normal files:
const QVector<QmakeStaticData::FileTypeData> &fileTypes = qmakeStaticData()->fileTypeData; const QVector<QmakeStaticData::FileTypeData> &fileTypes = qmakeStaticData()->fileTypeData;
@@ -175,7 +175,7 @@ static void createTree(const QmakePriFile *pri, QmakePriFileNode *node, const Fi
// qt quick compiler moves qrc files into it:-/ Get better data based on // qt quick compiler moves qrc files into it:-/ Get better data based on
// the filename. // the filename.
type = FileNode::fileTypeForFileName(fn); type = FileNode::fileTypeForFileName(fn);
vfolder->addNestedNode(std::make_unique<FileNode>(fn, type, false)); vfolder->addNestedNode(std::make_unique<FileNode>(fn, type));
} }
for (FolderNode *fn : vfolder->folderNodes()) for (FolderNode *fn : vfolder->folderNodes())
fn->compress(); fn->compress();

View File

@@ -56,13 +56,13 @@ public:
ProjectExplorer::Project(QString(), file, {}) ProjectExplorer::Project(QString(), file, {})
{ {
auto fileNode auto fileNode
= std::make_unique<ProjectExplorer::FileNode>(file, ProjectExplorer::FileType::Source, false); = std::make_unique<ProjectExplorer::FileNode>(file, ProjectExplorer::FileType::Source);
auto root = std::make_unique<DummyProjectNode>(file); auto root = std::make_unique<DummyProjectNode>(file);
root->addNode(std::move(fileNode)); root->addNode(std::move(fileNode));
fileNode = std::make_unique<ProjectExplorer::FileNode>( fileNode = std::make_unique<ProjectExplorer::FileNode>(
Utils::FileName::fromLatin1( Utils::FileName::fromLatin1(
":/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp"), ":/qmlprofiler/tests/qmlprofilerdetailsrewriter_test.cpp"),
ProjectExplorer::FileType::Source, false); ProjectExplorer::FileType::Source);
root->addNode(std::move(fileNode)); root->addNode(std::move(fileNode));
setRootProjectNode(std::move(root)); setRootProjectNode(std::move(root));
setDisplayName(file.toString()); setDisplayName(file.toString());

View File

@@ -358,9 +358,9 @@ void QmlProject::generateProjectTree()
const Utils::FileName fileName = Utils::FileName::fromString(f); const Utils::FileName fileName = Utils::FileName::fromString(f);
const FileType fileType = (fileName == projectFilePath()) const FileType fileType = (fileName == projectFilePath())
? FileType::Project : FileNode::fileTypeForFileName(fileName); ? FileType::Project : FileNode::fileTypeForFileName(fileName);
newRoot->addNestedNode(std::make_unique<FileNode>(fileName, fileType, false)); newRoot->addNestedNode(std::make_unique<FileNode>(fileName, fileType));
} }
newRoot->addNestedNode(std::make_unique<FileNode>(projectFilePath(), FileType::Project, false)); newRoot->addNestedNode(std::make_unique<FileNode>(projectFilePath(), FileType::Project));
setRootProjectNode(std::move(newRoot)); setRootProjectNode(std::move(newRoot));
refreshTargetDirectory(); refreshTargetDirectory();

View File

@@ -659,7 +659,7 @@ ResourceTopLevelNode *ResourceFolderNode::resourceNode() const
} }
ResourceFileNode::ResourceFileNode(const FileName &filePath, const QString &qrcPath, const QString &displayName) ResourceFileNode::ResourceFileNode(const FileName &filePath, const QString &qrcPath, const QString &displayName)
: FileNode(filePath, FileNode::fileTypeForFileName(filePath), false) : FileNode(filePath, FileNode::fileTypeForFileName(filePath))
, m_qrcPath(qrcPath) , m_qrcPath(qrcPath)
, m_displayName(displayName) , m_displayName(displayName)
{ {