forked from qt-creator/qt-creator
Revert "CppTools: Do not put configuration document into global snapshot and working copy"
This reverts commit 05942b63f8 because it
breaks refactoring, e.g. Q_PROPERTY generators.
Change-Id: I9a14b912ba72663f08ea99e7e066d824b18da4b0
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -357,7 +357,6 @@ QFuture<void> BuiltinIndexingSupport::refreshSourceFiles(
|
||||
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, superFuture, params);
|
||||
|
||||
@@ -594,6 +594,11 @@ 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;
|
||||
}
|
||||
|
||||
@@ -871,6 +876,12 @@ QFuture<void> CppModelManager::updateProjectInfo(QFutureInterface<void> &futureI
|
||||
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();
|
||||
@@ -999,9 +1010,6 @@ bool CppModelManager::isClangCodeModelActive() const
|
||||
|
||||
void CppModelManager::emitDocumentUpdated(Document::Ptr doc)
|
||||
{
|
||||
if (Client::isInjectedFile(doc->fileName()))
|
||||
return;
|
||||
|
||||
if (replaceDocument(doc))
|
||||
emit documentUpdated(doc);
|
||||
}
|
||||
|
||||
@@ -618,7 +618,7 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
|
||||
CppModelManager *mm = CppModelManager::instance();
|
||||
WorkingCopy workingCopy = mm->workingCopy();
|
||||
|
||||
QCOMPARE(workingCopy.size(), 1);
|
||||
QCOMPARE(workingCopy.size(), 2); // mm->configurationFileName() and "ui_*.h"
|
||||
|
||||
QStringList fileNamesInWorkinCopy;
|
||||
QHashIterator<Utils::FileName, QPair<QByteArray, unsigned> > it = workingCopy.iterator();
|
||||
@@ -628,7 +628,8 @@ void CppToolsPlugin::test_modelmanager_extraeditorsupport_uiFiles()
|
||||
}
|
||||
fileNamesInWorkinCopy.sort();
|
||||
const QString expectedUiHeaderFileName = _("ui_mainwindow.h");
|
||||
QCOMPARE(fileNamesInWorkinCopy.at(0), expectedUiHeaderFileName);
|
||||
QCOMPARE(fileNamesInWorkinCopy.at(0), mm->configurationFileName());
|
||||
QCOMPARE(fileNamesInWorkinCopy.at(1), expectedUiHeaderFileName);
|
||||
|
||||
// Check CppSourceProcessor / includes.
|
||||
// The CppSourceProcessor is expected to find the ui_* file in the working copy.
|
||||
@@ -777,7 +778,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_project()
|
||||
pi.appendProjectPart(part2);
|
||||
|
||||
helper.updateProjectInfo(pi);
|
||||
QCOMPARE(mm->snapshot().size(), 3);
|
||||
QCOMPARE(mm->snapshot().size(), 4);
|
||||
|
||||
// Open a file in the editor
|
||||
QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0);
|
||||
@@ -845,7 +846,7 @@ void CppToolsPlugin::test_modelmanager_precompiled_headers()
|
||||
pi.appendProjectPart(part2);
|
||||
|
||||
helper.updateProjectInfo(pi);
|
||||
QCOMPARE(mm->snapshot().size(), 3);
|
||||
QCOMPARE(mm->snapshot().size(), 4);
|
||||
|
||||
// Open a file in the editor
|
||||
QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0);
|
||||
@@ -925,7 +926,7 @@ void CppToolsPlugin::test_modelmanager_defines_per_editor()
|
||||
|
||||
helper.updateProjectInfo(pi);
|
||||
|
||||
QCOMPARE(mm->snapshot().size(), 3);
|
||||
QCOMPARE(mm->snapshot().size(), 4);
|
||||
|
||||
// Open a file in the editor
|
||||
QCOMPARE(Core::DocumentModel::openedDocuments().size(), 0);
|
||||
|
||||
@@ -423,8 +423,11 @@ 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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user