summaryrefslogtreecommitdiff
path: root/src/plugins/classview/classviewparser.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-02-12 10:32:54 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-02-12 14:50:03 +0000
commit784de5fb6c75d129055cd767e2eaef2e020d59b5 (patch)
tree62e78300dad9bcab2a6bdf8183195c98005122f7 /src/plugins/classview/classviewparser.cpp
parent8dc4cb17c1708a39b4f513f0faa9f374ff9af067 (diff)
downloadqt-creator-784de5fb6c75d129055cd767e2eaef2e020d59b5.tar.gz
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>
Diffstat (limited to 'src/plugins/classview/classviewparser.cpp')
-rw-r--r--src/plugins/classview/classviewparser.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/plugins/classview/classviewparser.cpp b/src/plugins/classview/classviewparser.cpp
index 99ab7adcc9..c2abae643f 100644
--- a/src/plugins/classview/classviewparser.cpp
+++ b/src/plugins/classview/classviewparser.cpp
@@ -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);
}
}