diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 44a1e1e9edb..cad79fcf8df 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -599,6 +599,7 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader folders[i] = QDir::cleanPath(projectDir + QLatin1Char('/') + folders.at(i)); } + folders.removeDuplicates(); m_recursiveEnumerateFiles.clear(); // Remove non existing items and non folders @@ -620,7 +621,6 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader } } - folders.removeDuplicates(); watchFolders(folders.toSet()); foreach (const QString &folder, folders) { @@ -638,6 +638,7 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader const QVector &fileTypes = qt4NodeStaticData()->fileTypeData; // update files + QFileInfo tmpFi; for (int i = 0; i < fileTypes.size(); ++i) { FileType type = fileTypes.at(i).type; QStringList qmakeVariables = varNames(type); @@ -647,14 +648,20 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader if (includeFileExact) { QStringList vPathsExact = fullVPaths(baseVPathsExact, readerExact, qmakeVariable, projectDir); QStringList tmp = readerExact->absoluteFileValues(qmakeVariable, projectDir, vPathsExact, includeFileExact); - foreach (const QString &t, tmp) - newFilePaths += Utils::FileName::fromString(t); + foreach (const QString &t, tmp) { + tmpFi.setFile(t); + if (tmpFi.isFile()) + newFilePaths += Utils::FileName::fromString(t); + } } if (includeFileCumlative) { QStringList vPathsCumulative = fullVPaths(baseVPathsCumulative, readerCumulative, qmakeVariable, projectDir); QStringList tmp = readerCumulative->absoluteFileValues(qmakeVariable, projectDir, vPathsCumulative, includeFileCumlative); - foreach (const QString &t, tmp) - newFilePaths += Utils::FileName::fromString(t); + foreach (const QString &t, tmp) { + tmpFi.setFile(t); + if (tmpFi.isFile()) + newFilePaths += Utils::FileName::fromString(t); + } } } @@ -662,6 +669,7 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader m_recursiveEnumerateFiles.subtract(newFilePaths); } + for (int i = 0; i < fileTypes.size(); ++i) { FileType type = fileTypes.at(i).type; QSet newFilePaths = filterFilesProVariables(type, foundFiles[type]); @@ -1314,7 +1322,7 @@ QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExac result << (var + files); } } - + result.removeDuplicates(); return result; }