forked from qt-creator/qt-creator
Qt4ProjectManager: Skip files that are actually directories
Since the cumulative parsing now parses for loops, we get bogus data in creator's own .pro files. Task-number: QTCREATORBUG-10045 Change-Id: I627772f221cc5c928458788feb036cdd93b25a08 Reviewed-by: Robert Loehning <robert.loehning@digia.com> Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -599,6 +599,7 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader
|
|||||||
folders[i] = QDir::cleanPath(projectDir + QLatin1Char('/') + folders.at(i));
|
folders[i] = QDir::cleanPath(projectDir + QLatin1Char('/') + folders.at(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
folders.removeDuplicates();
|
||||||
|
|
||||||
m_recursiveEnumerateFiles.clear();
|
m_recursiveEnumerateFiles.clear();
|
||||||
// Remove non existing items and non folders
|
// Remove non existing items and non folders
|
||||||
@@ -620,7 +621,6 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
folders.removeDuplicates();
|
|
||||||
watchFolders(folders.toSet());
|
watchFolders(folders.toSet());
|
||||||
|
|
||||||
foreach (const QString &folder, folders) {
|
foreach (const QString &folder, folders) {
|
||||||
@@ -638,6 +638,7 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader
|
|||||||
const QVector<Qt4NodeStaticData::FileTypeData> &fileTypes = qt4NodeStaticData()->fileTypeData;
|
const QVector<Qt4NodeStaticData::FileTypeData> &fileTypes = qt4NodeStaticData()->fileTypeData;
|
||||||
|
|
||||||
// update files
|
// update files
|
||||||
|
QFileInfo tmpFi;
|
||||||
for (int i = 0; i < fileTypes.size(); ++i) {
|
for (int i = 0; i < fileTypes.size(); ++i) {
|
||||||
FileType type = fileTypes.at(i).type;
|
FileType type = fileTypes.at(i).type;
|
||||||
QStringList qmakeVariables = varNames(type);
|
QStringList qmakeVariables = varNames(type);
|
||||||
@@ -647,14 +648,20 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader
|
|||||||
if (includeFileExact) {
|
if (includeFileExact) {
|
||||||
QStringList vPathsExact = fullVPaths(baseVPathsExact, readerExact, qmakeVariable, projectDir);
|
QStringList vPathsExact = fullVPaths(baseVPathsExact, readerExact, qmakeVariable, projectDir);
|
||||||
QStringList tmp = readerExact->absoluteFileValues(qmakeVariable, projectDir, vPathsExact, includeFileExact);
|
QStringList tmp = readerExact->absoluteFileValues(qmakeVariable, projectDir, vPathsExact, includeFileExact);
|
||||||
foreach (const QString &t, tmp)
|
foreach (const QString &t, tmp) {
|
||||||
newFilePaths += Utils::FileName::fromString(t);
|
tmpFi.setFile(t);
|
||||||
|
if (tmpFi.isFile())
|
||||||
|
newFilePaths += Utils::FileName::fromString(t);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (includeFileCumlative) {
|
if (includeFileCumlative) {
|
||||||
QStringList vPathsCumulative = fullVPaths(baseVPathsCumulative, readerCumulative, qmakeVariable, projectDir);
|
QStringList vPathsCumulative = fullVPaths(baseVPathsCumulative, readerCumulative, qmakeVariable, projectDir);
|
||||||
QStringList tmp = readerCumulative->absoluteFileValues(qmakeVariable, projectDir, vPathsCumulative, includeFileCumlative);
|
QStringList tmp = readerCumulative->absoluteFileValues(qmakeVariable, projectDir, vPathsCumulative, includeFileCumlative);
|
||||||
foreach (const QString &t, tmp)
|
foreach (const QString &t, tmp) {
|
||||||
newFilePaths += Utils::FileName::fromString(t);
|
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);
|
m_recursiveEnumerateFiles.subtract(newFilePaths);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (int i = 0; i < fileTypes.size(); ++i) {
|
for (int i = 0; i < fileTypes.size(); ++i) {
|
||||||
FileType type = fileTypes.at(i).type;
|
FileType type = fileTypes.at(i).type;
|
||||||
QSet<Utils::FileName> newFilePaths = filterFilesProVariables(type, foundFiles[type]);
|
QSet<Utils::FileName> newFilePaths = filterFilesProVariables(type, foundFiles[type]);
|
||||||
@@ -1314,7 +1322,7 @@ QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExac
|
|||||||
result << (var + files);
|
result << (var + files);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
result.removeDuplicates();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user