From 05942b63f8bad6d6787fea10c31f10458cdccd06 Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar <nikolai.kosjar@qt.io> Date: Tue, 6 Dec 2016 11:00:27 +0100 Subject: [PATCH] CppTools: Do not put configuration document into global snapshot and working copy These are remnants of the time when we had only one snapshot. Change-Id: I6ff4db645d1065a0ef195834890e0774e2e2c60e Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io> --- .../clangstaticanalyzerruncontrol.cpp | 2 -- src/plugins/cpptools/builtinindexingsupport.cpp | 1 + src/plugins/cpptools/cppmodelmanager.cpp | 14 +++----------- src/plugins/cpptools/cppmodelmanager_test.cpp | 11 +++++------ src/plugins/cpptools/cpptoolstestcase.cpp | 5 +---- src/plugins/designer/qtcreatorintegration.cpp | 5 +---- src/plugins/qmakeprojectmanager/qmakeproject.cpp | 2 -- 7 files changed, 11 insertions(+), 29 deletions(-) diff --git a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp index 2a8a5f58c9..404dc735e8 100644 --- a/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp +++ b/src/plugins/clangstaticanalyzer/clangstaticanalyzerruncontrol.cpp @@ -382,8 +382,6 @@ static AnalyzeUnits unitsToAnalyzeFromProjectParts(const QList<ProjectPart::Ptr> continue; foreach (const ProjectFile &file, projectPart->files) { - if (file.path == CppModelManager::configurationFileName()) - continue; QTC_CHECK(file.kind != ProjectFile::Unclassified); if (ProjectFile::isSource(file.kind)) { const CompilerOptionsBuilder::PchUsage pchUsage = CppTools::getPchUsage(); diff --git a/src/plugins/cpptools/builtinindexingsupport.cpp b/src/plugins/cpptools/builtinindexingsupport.cpp index 99277ddb13..2325ae138e 100644 --- a/src/plugins/cpptools/builtinindexingsupport.cpp +++ b/src/plugins/cpptools/builtinindexingsupport.cpp @@ -355,6 +355,7 @@ QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(const QSet<QString> &so params.indexerFileSizeLimitInMb = indexerFileSizeLimitInMb(); params.headerPaths = mgr->headerPaths(); params.workingCopy = mgr->workingCopy(); + params.workingCopy.insert(mgr->configurationFileName(), mgr->definedMacros()); params.sourceFiles = sourceFiles; QFuture<void> result = Utils::runAsync(mgr->sharedThreadPool(), parse, params); diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 201af6f6a2..b2327f294e 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -593,11 +593,6 @@ WorkingCopy CppModelManager::buildWorkingCopyList() workingCopy.insert(es->fileName(), es->contents(), es->revision()); } - // Add the project configuration file - QByteArray conf = codeModelConfiguration(); - conf += definedMacros(); - workingCopy.insert(configurationFileName(), conf); - return workingCopy; } @@ -850,12 +845,6 @@ QFuture<void> CppModelManager::updateProjectInfo(const ProjectInfo &newProjectIn removeProjectInfoFilesAndIncludesFromSnapshot(oldProjectInfo); filesToReindex.unite(newSourceFiles); - // The "configuration file" includes all defines and therefore should be updated - if (comparer.definesChanged()) { - QMutexLocker snapshotLocker(&d->m_snapshotMutex); - d->m_snapshot.remove(configurationFileName()); - } - // Otherwise check for added and modified files } else { const QSet<QString> addedFiles = comparer.addedFiles(); @@ -985,6 +974,9 @@ bool CppModelManager::isClangCodeModelActive() const void CppModelManager::emitDocumentUpdated(Document::Ptr doc) { + if (Client::isInjectedFile(doc->fileName())) + return; + if (replaceDocument(doc)) emit documentUpdated(doc); } diff --git a/src/plugins/cpptools/cppmodelmanager_test.cpp b/src/plugins/cpptools/cppmodelmanager_test.cpp index 38e194dde6..6c1bf16c5b 100644 --- a/src/plugins/cpptools/cppmodelmanager_test.cpp +++ b/src/plugins/cpptools/cppmodelmanager_test.cpp @@ -632,7 +632,7 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles() CppModelManager *mm = CppModelManager::instance(); WorkingCopy workingCopy = mm->workingCopy(); - QCOMPARE(workingCopy.size(), 2); // mm->configurationFileName() and "ui_*.h" + QCOMPARE(workingCopy.size(), 1); QStringList fileNamesInWorkinCopy; QHashIterator<Utils::FileName, QPair<QByteArray, unsigned> > it = workingCopy.iterator(); @@ -642,8 +642,7 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles() } fileNamesInWorkinCopy.sort(); const QString expectedUiHeaderFileName = _("ui_mainwindow.h"); - QCOMPARE(fileNamesInWorkinCopy.at(0), mm->configurationFileName()); - QCOMPARE(fileNamesInWorkinCopy.at(1), expectedUiHeaderFileName); + QCOMPARE(fileNamesInWorkinCopy.at(0), expectedUiHeaderFileName); // Check CppSourceProcessor / includes. // The CppSourceProcessor is expected to find the ui_* file in the working copy. @@ -794,7 +793,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project() pi.appendProjectPart(part2); helper.updateProjectInfo(pi); - QCOMPARE(mm->snapshot().size(), 4); + QCOMPARE(mm->snapshot().size(), 3); // Open a file in the editor QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0); @@ -862,7 +861,7 @@ void CppToolsPlugin::test_modelmanager_precompiled_headers() pi.appendProjectPart(part2); helper.updateProjectInfo(pi); - QCOMPARE(mm->snapshot().size(), 4); + QCOMPARE(mm->snapshot().size(), 3); // Open a file in the editor QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0); @@ -944,7 +943,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor() helper.updateProjectInfo(pi); - QCOMPARE(mm->snapshot().size(), 4); + QCOMPARE(mm->snapshot().size(), 3); // Open a file in the editor QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0); diff --git a/src/plugins/cpptools/cpptoolstestcase.cpp b/src/plugins/cpptools/cpptoolstestcase.cpp index b8eb67bef1..efe935997d 100644 --- a/src/plugins/cpptools/cpptoolstestcase.cpp +++ b/src/plugins/cpptools/cpptoolstestcase.cpp @@ -423,11 +423,8 @@ bool VerifyCleanCppModelManager::isClean(bool testOnlyForCleanedProjects) RETURN_FALSE_IF_NOT(mm->headerPaths().isEmpty()); RETURN_FALSE_IF_NOT(mm->definedMacros().isEmpty()); RETURN_FALSE_IF_NOT(mm->projectFiles().isEmpty()); - if (!testOnlyForCleanedProjects) { + if (!testOnlyForCleanedProjects) RETURN_FALSE_IF_NOT(mm->snapshot().isEmpty()); - RETURN_FALSE_IF_NOT(mm->workingCopy().size() == 1); - RETURN_FALSE_IF_NOT(mm->workingCopy().contains(mm->configurationFileName())); - } return true; } diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp index fb0f964282..4db4d5dcbc 100644 --- a/src/plugins/designer/qtcreatorintegration.cpp +++ b/src/plugins/designer/qtcreatorintegration.cpp @@ -535,14 +535,11 @@ bool QtCreatorIntegration::navigateToSlot(const QString &objectName, } else { const CppTools::WorkingCopy workingCopy = CppTools::CppModelManager::instance()->workingCopy(); - const Utils::FileName configFileName = - Utils::FileName::fromString(CppTools::CppModelManager::configurationFileName()); QHashIterator<Utils::FileName, QPair<QByteArray, unsigned> > it = workingCopy.iterator(); while (it.hasNext()) { it.next(); const Utils::FileName &fileName = it.key(); - if (fileName != configFileName) - newDocTable.insert(docTable.document(fileName)); + newDocTable.insert(docTable.document(fileName)); } } docTable = newDocTable; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index aab83f38a4..2a4632b44c 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -461,8 +461,6 @@ void QmakeProject::updateCppCodeModel() } generators.append(proGenerators); - cppPart->files.prepend(ProjectFile(CppTools::CppModelManager::configurationFileName(), - ProjectFile::CXXSource)); projectInfo.appendProjectPart(cppPart); if (!objcppPart->files.isEmpty()) { -- GitLab