if (! pinfo.isValid())
return;
+ Snapshot snapshot;
+ ProjectInfo oldInfo;
{
QMutexLocker locker(&m_mutex);
+ oldInfo = m_projects.value(pinfo.project);
m_projects.insert(pinfo.project, pinfo);
+ snapshot = _snapshot;
}
updateImportPaths();
+
+ // remove files that are no longer in the project and have been deleted
+ QStringList deletedFiles;
+ foreach (const QString &oldFile, oldInfo.sourceFiles) {
+ if (snapshot.document(oldFile)
+ && !pinfo.sourceFiles.contains(oldFile)
+ && !QFile::exists(oldFile)) {
+ deletedFiles += oldFile;
+ }
+ }
+ removeFiles(deletedFiles);
+
+ // parse any files not yet in the snapshot
+ QStringList newFiles;
+ foreach (const QString &file, pinfo.sourceFiles) {
+ if (!snapshot.document(file))
+ newFiles += file;
+ }
+ updateSourceFiles(newFiles, false);
}
void ModelManager::emitDocumentChangedOnDisk(Document::Ptr doc)
return;
QmlJS::ModelManagerInterface::ProjectInfo projectInfo = modelManager->projectInfo(this);
-
- // Not essential since the QmlJS engine parses required files on demand.
- //projectInfo.sourceFiles = ...
+ projectInfo.sourceFiles = m_projectFiles->files[QMLType];
FindQt4ProFiles findQt4ProFiles;
QList<Qt4ProFileNode *> proFiles = findQt4ProFiles(rootProjectNode());