diff options
Diffstat (limited to 'src/plugins/cpptools/cppprojectfile.cpp')
-rw-r--r-- | src/plugins/cpptools/cppprojectfile.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppprojectfile.cpp b/src/plugins/cpptools/cppprojectfile.cpp index 331b183c18..a7e62a2905 100644 --- a/src/plugins/cpptools/cppprojectfile.cpp +++ b/src/plugins/cpptools/cppprojectfile.cpp @@ -48,6 +48,58 @@ ProjectFile::ProjectFile(const QString &file, Kind kind) { } +ProjectFile::Kind ProjectFile::classify(const QString &file) +{ + const Core::MimeDatabase *mimeDatabase = Core::ICore::mimeDatabase(); + const QFileInfo fi(file); + const Core::MimeType mimeType = mimeDatabase->findByFile(fi); + if (!mimeType) + return Unclassified; + const QString mt = mimeType.type(); + if (mt == QLatin1String(CppTools::Constants::C_SOURCE_MIMETYPE)) + return CSource; + if (mt == QLatin1String(CppTools::Constants::C_HEADER_MIMETYPE)) + return CHeader; + if (mt == QLatin1String(CppTools::Constants::CPP_SOURCE_MIMETYPE)) + return CXXSource; + if (mt == QLatin1String(CppTools::Constants::CPP_HEADER_MIMETYPE)) + return CXXHeader; + if (mt == QLatin1String(CppTools::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) + return ObjCXXSource; + return Unclassified; +} + +/// @return True if file is header or cannot be classified (i.e has no file extension) +bool ProjectFile::isHeader(ProjectFile::Kind kind) +{ + switch (kind) { + case ProjectFile::CHeader: + case ProjectFile::CXXHeader: + case ProjectFile::ObjCHeader: + case ProjectFile::ObjCXXHeader: + case ProjectFile::Unclassified: + return true; + default: + return false; + } +} + +/// @return True if file is correctly classified source +bool ProjectFile::isSource(ProjectFile::Kind kind) +{ + switch (kind) { + case ProjectFile::CSource: + case ProjectFile::CXXSource: + case ProjectFile::ObjCSource: + case ProjectFile::ObjCXXSource: + case ProjectFile::CudaSource: + case ProjectFile::OpenCLSource: + return true; + default: + return false; + } +} + ProjectFileAdder::ProjectFileAdder(QList<ProjectFile> &files) : m_files(files) { |