forked from qt-creator/qt-creator
ClassView: don't clear project's file list cache when files removed
Instead of clearing the project's file list completely, remove just a project (in case a removed file was a project) and remove from all project's lists the removed file (in case a removed file was contained in any project). Task-number: QTCREATORBUG-25317 Change-Id: I63a5f9eb1043bd0d9b835d55f4a16f7f6af7bc6e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -572,13 +572,15 @@ void Parser::removeFiles(const QStringList &fileList)
|
||||
|
||||
QWriteLocker lockerPrj(&d->prjLocker);
|
||||
QWriteLocker lockerDoc(&d->docLocker);
|
||||
foreach (const QString &name, fileList) {
|
||||
for (const QString &name : fileList) {
|
||||
d->fileList.remove(name);
|
||||
d->cachedDocTrees.remove(name);
|
||||
d->cachedDocTreesRevision.remove(name);
|
||||
d->documentList.remove(name);
|
||||
d->cachedPrjTrees.remove(name);
|
||||
d->cachedPrjFileLists.clear();
|
||||
d->cachedPrjFileLists.remove(name);
|
||||
for (auto it = d->cachedPrjFileLists.begin(); it != d->cachedPrjFileLists.end(); ++it)
|
||||
it.value().removeOne(name);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user