GenericProject: Simplify code based on Project::projectFileIsDirty signal

Change-Id: I3e9eb892f22c716c3b6cf40498f232d234aa163e
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Tobias Hunger
2019-08-15 12:24:08 +02:00
parent 007d134bc3
commit 22092ee4e6
2 changed files with 24 additions and 32 deletions

View File

@@ -171,15 +171,25 @@ static bool writeFile(const QString &filePath, const QString &contents)
return saver.write(contents.toUtf8()) && saver.finalize(); return saver.write(contents.toUtf8()) && saver.finalize();
} }
GenericProject::GenericProject(const Utils::FilePath &fileName) : GenericProject::GenericProject(const Utils::FilePath &fileName)
Project(Constants::GENERICMIMETYPE, fileName, [this]() { refresh(Everything); }), : Project(Constants::GENERICMIMETYPE, fileName)
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater), , m_cppCodeModelUpdater(new CppTools::CppProjectUpdater)
m_deployFileWatcher(new FileSystemWatcher(this)) , m_deployFileWatcher(new FileSystemWatcher(this))
{ {
setId(Constants::GENERICPROJECT_ID); setId(Constants::GENERICPROJECT_ID);
setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID)); setProjectLanguages(Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));
setDisplayName(fileName.toFileInfo().completeBaseName()); setDisplayName(fileName.toFileInfo().completeBaseName());
connect(this, &GenericProject::projectFileIsDirty, this, [this](const FilePath &p) {
if (p.endsWith(".files"))
refresh(Files);
else if (p.endsWith(".includes") || p.endsWith(".config") || p.endsWith(".cxxflags")
|| p.endsWith(".cflags"))
refresh(Configuration);
else
refresh(Everything);
});
const QFileInfo fileInfo = projectFilePath().toFileInfo(); const QFileInfo fileInfo = projectFilePath().toFileInfo();
const QDir dir = fileInfo.dir(); const QDir dir = fileInfo.dir();
@@ -187,7 +197,7 @@ GenericProject::GenericProject(const Utils::FilePath &fileName) :
m_filesFileName = QFileInfo(dir, projectName + ".files").absoluteFilePath(); m_filesFileName = QFileInfo(dir, projectName + ".files").absoluteFilePath();
m_includesFileName = QFileInfo(dir, projectName + ".includes").absoluteFilePath(); m_includesFileName = QFileInfo(dir, projectName + ".includes").absoluteFilePath();
m_configFileName = QFileInfo(dir, projectName + ".config").absoluteFilePath(); m_configFileName = QFileInfo(dir, projectName + ".config").absoluteFilePath();
const QFileInfo cxxflagsFileInfo(dir, projectName + ".cxxflags"); const QFileInfo cxxflagsFileInfo(dir, projectName + ".cxxflags");
m_cxxflagsFileName = cxxflagsFileInfo.absoluteFilePath(); m_cxxflagsFileName = cxxflagsFileInfo.absoluteFilePath();
@@ -201,24 +211,16 @@ GenericProject::GenericProject(const Utils::FilePath &fileName) :
QTC_CHECK(writeFile(m_cflagsFileName, Constants::GENERICPROJECT_CFLAGS_FILE_TEMPLATE)); QTC_CHECK(writeFile(m_cflagsFileName, Constants::GENERICPROJECT_CFLAGS_FILE_TEMPLATE));
} }
m_filesIDocument setExtraProjectFiles({FilePath::fromString(m_filesFileName),
= new ProjectDocument(Constants::GENERICMIMETYPE, FilePath::fromString(m_filesFileName), FilePath::fromString(m_includesFileName),
[this]() { refresh(Files); }); FilePath::fromString(m_configFileName),
m_includesIDocument FilePath::fromString(m_cxxflagsFileName),
= new ProjectDocument(Constants::GENERICMIMETYPE, FilePath::fromString(m_includesFileName), FilePath::fromString(m_cflagsFileName)});
[this]() { refresh(Configuration); });
m_configIDocument
= new ProjectDocument(Constants::GENERICMIMETYPE, FilePath::fromString(m_configFileName),
[this]() { refresh(Configuration); });
m_cxxFlagsIDocument
= new ProjectDocument(Constants::GENERICMIMETYPE, FilePath::fromString(m_cxxflagsFileName),
[this]() { refresh(Configuration); });
m_cFlagsIDocument
= new ProjectDocument(Constants::GENERICMIMETYPE, FilePath::fromString(m_cflagsFileName),
[this]() { refresh(Configuration); });
connect(m_deployFileWatcher, &FileSystemWatcher::fileChanged, connect(m_deployFileWatcher,
this, &GenericProject::updateDeploymentData); &FileSystemWatcher::fileChanged,
this,
&GenericProject::updateDeploymentData);
connect(this, &Project::activeTargetChanged, this, [this] { refresh(Everything); }); connect(this, &Project::activeTargetChanged, this, [this] { refresh(Everything); });
@@ -228,11 +230,6 @@ GenericProject::GenericProject(const Utils::FilePath &fileName) :
GenericProject::~GenericProject() GenericProject::~GenericProject()
{ {
delete m_cppCodeModelUpdater; delete m_cppCodeModelUpdater;
m_filesIDocument->deleteLater();
m_includesIDocument->deleteLater();
m_configIDocument->deleteLater();
m_cxxFlagsIDocument->deleteLater();
m_cFlagsIDocument->deleteLater();
} }
static QStringList readLines(const QString &absoluteFileName) static QStringList readLines(const QString &absoluteFileName)

View File

@@ -78,11 +78,6 @@ private:
QString m_configFileName; QString m_configFileName;
QString m_cxxflagsFileName; QString m_cxxflagsFileName;
QString m_cflagsFileName; QString m_cflagsFileName;
ProjectExplorer::ProjectDocument *m_filesIDocument = nullptr;
ProjectExplorer::ProjectDocument *m_includesIDocument = nullptr;
ProjectExplorer::ProjectDocument *m_configIDocument = nullptr;
ProjectExplorer::ProjectDocument *m_cxxFlagsIDocument = nullptr;
ProjectExplorer::ProjectDocument *m_cFlagsIDocument = nullptr;
QStringList m_rawFileList; QStringList m_rawFileList;
QStringList m_files; QStringList m_files;
QHash<QString, QString> m_rawListEntries; QHash<QString, QString> m_rawListEntries;