diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 4e60ba5024e..ebf2d0bade3 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -619,8 +619,8 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, QtSupport::ProFileReader for (int i = 0; i < fileTypes.size(); ++i) { FileType type = fileTypes.at(i).type; - QSet newFilePaths = filterFiles(type, foundFiles[type]); - newFilePaths += filterFiles(type, m_recursiveEnumerateFiles); + QSet newFilePaths = filterFilesProVariables(type, foundFiles[type]); + newFilePaths += filterFilesRecursiveEnumerata(type, m_recursiveEnumerateFiles); // We only need to save this information if // we are watching folders @@ -694,8 +694,8 @@ void Qt4PriFileNode::folderChanged(const QString &folder) const QVector &fileTypes = qt4NodeStaticData()->fileTypeData; for (int i = 0; i < fileTypes.size(); ++i) { FileType type = fileTypes.at(i).type; - QSet add = filterFiles(type, addedFiles); - QSet remove = filterFiles(type, removedFiles); + QSet add = filterFilesRecursiveEnumerata(type, addedFiles); + QSet remove = filterFilesRecursiveEnumerata(type, removedFiles); if (!add.isEmpty() || !remove.isEmpty()) { // Scream :) @@ -1227,7 +1227,26 @@ QStringList Qt4PriFileNode::dynamicVarNames(QtSupport::ProFileReader *readerExac return result; } -QSet Qt4PriFileNode::filterFiles(ProjectExplorer::FileType fileType, const QSet &files) +QSet Qt4PriFileNode::filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet &files) +{ + if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType) + return files; + QSet result; + if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType) + return result; + if (fileType == ProjectExplorer::QMLType) { + foreach (const QString &file, files) + if (file.endsWith(".qml")) + result << file; + } else { + foreach (const QString &file, files) + if (!file.endsWith(".qml")) + result << file; + } + return result; +} + +QSet Qt4PriFileNode::filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet &files) { QSet result; if (fileType != ProjectExplorer::QMLType && fileType != ProjectExplorer::UnknownFileType) diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h index d674a75899d..3f2d1e7b8a0 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.h +++ b/src/plugins/qt4projectmanager/qt4nodes.h @@ -153,7 +153,8 @@ protected: void clear(); static QStringList varNames(FileType type); static QStringList dynamicVarNames(QtSupport::ProFileReader *readerExact, QtSupport::ProFileReader *readerCumulative); - static QSet filterFiles(ProjectExplorer::FileType fileType, const QSet &files); + static QSet filterFilesProVariables(ProjectExplorer::FileType fileType, const QSet &files); + static QSet filterFilesRecursiveEnumerata(ProjectExplorer::FileType fileType, const QSet &files); enum ChangeType { AddToProFile,