CppTools: Remove dependency of RawProjectPart to ProjectFile

The feature to category files to ProjectFiles was used by the qmake
project manager to specify if the file is "active", and by the Qbs
project manager to avoid unnecessary MIME type checking.

Make these two different use-cases explicit in the API.

Change-Id: Ia5a7da37f100149366fc75060fe04687e15f2bd3
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Eike Ziller
2019-08-28 12:23:37 +02:00
parent b4dd2ea2cc
commit c7e3bbcd11
10 changed files with 78 additions and 55 deletions

View File

@@ -36,12 +36,14 @@ namespace CppTools {
class ProjectFileCategorizer
{
public:
using FileClassifier = RawProjectPart::FileClassifier;
using FileIsActive = RawProjectPart::FileIsActive;
using GetMimeType = RawProjectPart::GetMimeType;
public:
ProjectFileCategorizer(const QString &projectPartName,
const QStringList &filePaths,
const FileClassifier &fileClassifier = FileClassifier());
const FileIsActive &fileIsActive = {},
const GetMimeType &getMimeType = {});
bool hasCSources() const { return !m_cSources.isEmpty(); }
bool hasCxxSources() const { return !m_cxxSources.isEmpty(); }
@@ -59,7 +61,9 @@ public:
QString partName(const QString &languageName) const;
private:
ProjectFiles classifyFiles(const QStringList &filePaths, const FileClassifier &fileClassifier);
ProjectFiles classifyFiles(const QStringList &filePaths,
const FileIsActive &fileIsActive,
const GetMimeType &getMimeType);
void expandSourcesWithAmbiguousHeaders(const ProjectFiles &ambiguousHeaders);
private: