diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp index 888c45f26524710eec649affc5b140467e0f8c41..132b7ef3afcda4628b41ff16ca53135e5626c60c 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.cpp +++ b/src/plugins/qt4projectmanager/qt4nodes.cpp @@ -644,15 +644,22 @@ void Qt4PriFileNode::watchFolders(const QSet<QString> &folders) m_watchedFolders = folders; } -void Qt4PriFileNode::folderChanged(const QString &) +void Qt4PriFileNode::folderChanged(const QString &folder) { //qDebug()<<"########## Qt4PriFileNode::folderChanged"; // So, we need to figure out which files changed. + QString changedFolder = folder; + if (!changedFolder.endsWith(QLatin1Char('/'))) + changedFolder.append(QLatin1Char('/')); + // Collect all the files QSet<QString> newFiles; - foreach (const QString &folder, m_watchedFolders) { - newFiles += recursiveEnumerate(folder); + newFiles += recursiveEnumerate(changedFolder); + + foreach (const QString &file, m_recursiveEnumerateFiles) { + if (!file.startsWith(changedFolder)) + newFiles.insert(file); } QSet<QString> addedFiles = newFiles; diff --git a/src/plugins/qt4projectmanager/qt4nodes.h b/src/plugins/qt4projectmanager/qt4nodes.h index f9bdfd29c50c33633ca86646a3a8fd9a34d029d5..d2725dec535b126687a813f9f276593f37a705ea 100644 --- a/src/plugins/qt4projectmanager/qt4nodes.h +++ b/src/plugins/qt4projectmanager/qt4nodes.h @@ -155,7 +155,7 @@ public: bool renameFile(const FileType fileType, const QString &filePath, const QString &newFilePath); - void folderChanged(const QString &folder); + void folderChanged(const QString &changedFolder); bool deploysFolder(const QString &folder) const; diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index 7758d40080c790068e71121bbcd57ca624babdb0..aa5f93474ac1e9a6b3a947f31f538b6e62a7915e 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -1258,7 +1258,6 @@ void CentralizedFolderWatcher::folderChanged(const QString &folder) if (!folder.endsWith('/')) folderWithSlash.append('/'); - // If a subdirectory was added, watch it too QSet<QString> tmp = recursiveDirs(folderWithSlash); if (!tmp.isEmpty()) {