forked from qt-creator/qt-creator
GenericProject: Simplify code based on Project::projectFileIsDirty signal
Change-Id: I3e9eb892f22c716c3b6cf40498f232d234aa163e Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -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)
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user