summaryrefslogtreecommitdiff
path: root/src/plugins/qmljseditor/qmljsmodelmanager.cpp
diff options
context:
space:
mode:
authorChristian Kamm <christian.d.kamm@nokia.com>2010-03-31 14:55:05 +0200
committerChristian Kamm <christian.d.kamm@nokia.com>2010-03-31 14:55:35 +0200
commit9408378a24f556649ba918830dd3e3a95e381718 (patch)
tree142fcf5ffff2442a40ca519afba2759454452b2c /src/plugins/qmljseditor/qmljsmodelmanager.cpp
parent107ad1cadfc22f056efec3ebf72337a5a89d2341 (diff)
downloadqt-creator-9408378a24f556649ba918830dd3e3a95e381718.tar.gz
QmlJSEditor: Fix file/directory imports for qml files not in a project.
Reviewed-by: Roberto Raggi
Diffstat (limited to 'src/plugins/qmljseditor/qmljsmodelmanager.cpp')
-rw-r--r--src/plugins/qmljseditor/qmljsmodelmanager.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/qmljseditor/qmljsmodelmanager.cpp b/src/plugins/qmljseditor/qmljsmodelmanager.cpp
index 52a781efdd..d21bda3660 100644
--- a/src/plugins/qmljseditor/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljseditor/qmljsmodelmanager.cpp
@@ -100,7 +100,19 @@ Snapshot ModelManager::snapshot() const
void ModelManager::updateSourceFiles(const QStringList &files)
{
- refreshSourceFiles(files);
+ // for files that are not yet in the snapshot, scan the whole directory
+ QStringList filesToParse;
+ QSet<QString> sourceDirectories;
+
+ foreach (const QString &file, files) {
+ if (! _snapshot.document(file))
+ sourceDirectories.insert(QFileInfo(file).path());
+ else
+ filesToParse.append(file);
+ }
+
+ refreshSourceFiles(filesToParse);
+ refreshSourceDirectories(sourceDirectories.toList());
}
QFuture<void> ModelManager::refreshSourceFiles(const QStringList &sourceFiles)