diff --git a/src/plugins/cmakeprojectmanager/treescanner.cpp b/src/plugins/cmakeprojectmanager/treescanner.cpp index 9e8c9d66b36..6951221dd89 100644 --- a/src/plugins/cmakeprojectmanager/treescanner.cpp +++ b/src/plugins/cmakeprojectmanager/treescanner.cpp @@ -141,29 +141,7 @@ bool TreeScanner::isMimeBinary(const Utils::MimeType &mimeType, const Utils::Fil FileType TreeScanner::genericFileType(const Utils::MimeType &mimeType, const Utils::FileName &/*fn*/) { - FileType type = FileType::Unknown; - if (mimeType.isValid()) { - const QString mt = mimeType.name(); - if (mt == CppTools::Constants::C_SOURCE_MIMETYPE - || mt == CppTools::Constants::CPP_SOURCE_MIMETYPE - || mt == CppTools::Constants::OBJECTIVE_C_SOURCE_MIMETYPE - || mt == CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE - || mt == CppTools::Constants::QDOC_MIMETYPE - || mt == CppTools::Constants::MOC_MIMETYPE) - type = FileType::Source; - else if (mt == CppTools::Constants::C_HEADER_MIMETYPE - || mt == CppTools::Constants::CPP_HEADER_MIMETYPE) - type = FileType::Header; - else if (mt == ProjectExplorer::Constants::FORM_MIMETYPE) - type = FileType::Form; - else if (mt == ProjectExplorer::Constants::RESOURCE_MIMETYPE) - type = FileType::Resource; - else if (mt == ProjectExplorer::Constants::SCXML_MIMETYPE) - type = FileType::StateChart; - else if (mt == ProjectExplorer::Constants::QML_MIMETYPE) - type = FileType::QML; - } - return type; + return Node::fileTypeForMimeType(mimeType); } void TreeScanner::scanForFiles(FutureInterface *fi, const Utils::FileName& directory, const FileFilter &filter, const FileTypeFactory &factory) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 2e02e5ff09f..87a759efea1 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -36,6 +36,8 @@ #include #include #include +#include +#include #include #include @@ -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 diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index 176b126f64c..3785d2265d8 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -36,6 +36,8 @@ #include +namespace Utils { class MimeType; } + namespace ProjectExplorer { class RunConfiguration; class Project; @@ -141,6 +143,9 @@ public: static bool sortByPath(const Node *a, const Node *b); void setParentFolderNode(FolderNode *parentFolder); + static FileType fileTypeForMimeType(const Utils::MimeType &mt); + static FileType fileTypeForFileName(const Utils::FileName &file); + protected: Node(NodeType nodeType, const Utils::FileName &filePath, int line = -1);