summaryrefslogtreecommitdiff
path: root/src/plugins/qmakeprojectmanager/qmakeproject.cpp
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2017-03-27 12:12:38 +0200
committerTobias Hunger <tobias.hunger@qt.io>2017-03-27 15:32:13 +0000
commitfc5ce1e710500bb603ceafb9a2c005bbaf2f7cec (patch)
tree473544ed89fa3158c18f709445314f639f9485f8 /src/plugins/qmakeprojectmanager/qmakeproject.cpp
parentd1a53045640fc37f00ae556e683a87927cdddf91 (diff)
downloadqt-creator-fc5ce1e710500bb603ceafb9a2c005bbaf2f7cec.tar.gz
ProjectExplorer: Handle project file list globally
Handle the generation of the list of files in a project globally, based on the project tree. Creator now has the concept of TreeManagers which can enrich the project tree with additional data (e.g. the files found in a resource file), which the project does not necessarily know about. So use that tree to find the files that belong to a project instead of implementing similar features in each project. Change-Id: Ia375a914a1f2c0adaa427f9eda834eec2db07f68 Reviewed-by: hjk <hjk@qt.io> Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Diffstat (limited to 'src/plugins/qmakeprojectmanager/qmakeproject.cpp')
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp48
1 files changed, 1 insertions, 47 deletions
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index a3c504e17f..0d76e07cdb 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -191,7 +191,6 @@ static QList<QmakeProject *> s_projects;
*/
QmakeProject::QmakeProject(const FileName &fileName) :
- m_projectFiles(new QmakeProjectFiles),
m_qmakeVfs(new QMakeVfs),
m_cppCodeModelUpdater(new CppTools::CppProjectUpdater(this))
{
@@ -230,7 +229,6 @@ QmakeProject::~QmakeProject()
setRootProjectNode(nullptr);
m_rootProFile.reset();
- delete m_projectFiles;
m_cancelEvaluate = true;
Q_ASSERT(m_qmakeGlobalsRefCnt == 0);
delete m_qmakeVfs;
@@ -241,32 +239,6 @@ QmakeProFile *QmakeProject::rootProFile() const
return m_rootProFile.get();
}
-void QmakeProject::updateFileList()
-{
- QmakeProjectFiles files;
- rootProjectNode()->forEachNode([&](FileNode *fileNode) {
- const int type = static_cast<int>(fileNode->fileType());
- QStringList &targetList = fileNode->isGenerated() ? files.generatedFiles[type] : files.files[type];
- targetList.push_back(fileNode->filePath().toString());
- }, [&](FolderNode *folderNode) {
- if (ProjectNode *projectNode = folderNode->asProjectNode())
- files.proFiles.append(projectNode->filePath().toString());
- if (dynamic_cast<ResourceEditor::ResourceTopLevelNode *>(folderNode))
- files.files[static_cast<int>(FileType::Resource)].push_back(folderNode->filePath().toString());
- });
-
- for (QStringList &f : files.files)
- f.removeDuplicates();
- for (QStringList &f : files.generatedFiles)
- f.removeDuplicates();
- files.proFiles.removeDuplicates();
-
- if (files != *m_projectFiles) {
- *m_projectFiles = files;
- emit fileListChanged();
- }
-}
-
Project::RestoreResult QmakeProject::fromMap(const QVariantMap &map, QString *errorMessage)
{
RestoreResult result = Project::fromMap(map, errorMessage);
@@ -576,7 +548,6 @@ void QmakeProject::decrementPendingEvaluateFutures()
setAllBuildConfigurationsEnabled(true);
m_asyncUpdateState = Base;
- updateFileList();
updateCodeModels();
updateBuildSystemData();
if (activeTarget())
@@ -639,21 +610,6 @@ QString QmakeProject::displayName() const
return projectFilePath().toFileInfo().completeBaseName();
}
-QStringList QmakeProject::files(FilesMode fileMode) const
-{
- QStringList files;
- for (int i = 0; i < static_cast<int>(FileType::FileTypeSize); ++i) {
- if (fileMode & SourceFiles)
- files += m_projectFiles->files[i];
- if (fileMode & GeneratedFiles)
- files += m_projectFiles->generatedFiles[i];
- }
-
- files.removeDuplicates();
-
- return files;
-}
-
// Find the folder that contains a file with a certain name (recurse down)
static FolderNode *folderOf(FolderNode *in, const FileName &fileName)
{
@@ -1086,10 +1042,8 @@ void CentralizedFolderWatcher::delayedFolderChanged(const QString &folder)
m_recursiveWatchedFolders += tmp;
}
- if (newOrRemovedFiles) {
- m_project->updateFileList();
+ if (newOrRemovedFiles)
m_project->updateCodeModels();
- }
}
bool QmakeProject::needsConfiguration() const