diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp index 24c87616708..5328a7c148f 100644 --- a/src/plugins/genericprojectmanager/genericproject.cpp +++ b/src/plugins/genericprojectmanager/genericproject.cpp @@ -195,10 +195,13 @@ bool GenericProject::addFiles(const QStringList &filePaths) bool GenericProject::removeFiles(const QStringList &filePaths) { - // Removing using set allows O(n.log(n)) behavior - QSet newFileSet = m_files.toSet(); - newFileSet.subtract(filePaths.toSet()); - QStringList newFileList = newFileSet.toList(); + QStringList newFileList; + QSet filesToRemove = filePaths.toSet(); + + foreach (const QString &file, m_files) { + if (!filesToRemove.contains(file)) + newFileList.append(file); + } return setFiles(newFileList); }