ProjectNodes: Add method to query FileType

Add methods to get the FileType based on filepath or mimetype.

Use that method in treescanner.

Change-Id: I3de50d7afd8262cc86ae722e7de4ca53921153d2
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Tobias Hunger
2017-03-10 17:03:51 +01:00
parent 7648504a30
commit a70370cc04
3 changed files with 35 additions and 23 deletions

View File

@@ -36,6 +36,8 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/mimetypes/mimedatabase.h>
#include <utils/mimetypes/mimetype.h>
#include <utils/qtcassert.h>
#include <QFileInfo>
@@ -233,6 +235,33 @@ void Node::setParentFolderNode(FolderNode *parentFolder)
m_parentFolderNode = parentFolder;
}
FileType Node::fileTypeForMimeType(const Utils::MimeType &mt)
{
FileType type = FileType::Source;
if (mt.isValid()) {
const QString mtName = mt.name();
if (mtName == Constants::C_HEADER_MIMETYPE
|| mtName == Constants::CPP_HEADER_MIMETYPE)
type = FileType::Header;
else if (mtName == Constants::FORM_MIMETYPE)
type = FileType::Form;
else if (mtName == Constants::RESOURCE_MIMETYPE)
type = FileType::Resource;
else if (mtName == Constants::SCXML_MIMETYPE)
type = FileType::StateChart;
else if (mtName == Constants::QML_MIMETYPE)
type = FileType::QML;
} else {
type = FileType::Unknown;
}
return type;
}
FileType Node::fileTypeForFileName(const Utils::FileName &file)
{
return fileTypeForMimeType(Utils::mimeTypeForFile(file.toString()));
}
/*!
\class ProjectExplorer::FileNode