forked from qt-creator/qt-creator
Merge remote branch 'origin/2.1'
This commit is contained in:
@@ -588,6 +588,9 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, ProFileReader *readerExac
|
||||
m_recursiveEnumerateFiles += recursiveEnumerate(folder);
|
||||
}
|
||||
|
||||
|
||||
QMap<FileType, QSet<QString> > foundFiles;
|
||||
|
||||
// update files
|
||||
for (int i = 0; i < fileTypes.size(); ++i) {
|
||||
FileType type = fileTypes.at(i).type;
|
||||
@@ -604,6 +607,13 @@ void Qt4PriFileNode::update(ProFile *includeFileExact, ProFileReader *readerExac
|
||||
|
||||
}
|
||||
|
||||
foundFiles[type] = newFilePaths;
|
||||
m_recursiveEnumerateFiles.subtract(newFilePaths);
|
||||
}
|
||||
|
||||
for (int i = 0; i < fileTypes.size(); ++i) {
|
||||
FileType type = fileTypes.at(i).type;
|
||||
QSet<QString> newFilePaths = foundFiles[type];
|
||||
newFilePaths += filterFiles(type, m_recursiveEnumerateFiles);
|
||||
|
||||
// We only need to save this information if
|
||||
@@ -644,15 +654,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;
|
||||
|
||||
Reference in New Issue
Block a user