From 8d70ab27dc01b58792f3d6597bd1b634b267c72d Mon Sep 17 00:00:00 2001 From: Christian Kamm <christian.d.kamm@nokia.com> Date: Thu, 1 Apr 2010 14:42:39 +0200 Subject: [PATCH] QmlJS: Clean paths in the Snapshot. To solve import resolution issues on windows. Reviewed-by: Roberto Raggi --- src/libs/qmljs/qmljsdocument.cpp | 21 ++++++++++++++++++--- src/libs/qmljs/qmljsdocument.h | 11 +++-------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/libs/qmljs/qmljsdocument.cpp b/src/libs/qmljs/qmljsdocument.cpp index de18b8328d6..216fd7a738e 100644 --- a/src/libs/qmljs/qmljsdocument.cpp +++ b/src/libs/qmljs/qmljsdocument.cpp @@ -47,10 +47,10 @@ Document::Document(const QString &fileName) , _isQmlDocument(false) , _documentRevision(0) , _parsedCorrectly(false) - , _fileName(fileName) + , _fileName(QDir::cleanPath(fileName)) { QFileInfo fileInfo(fileName); - _path = fileInfo.absolutePath(); + _path = QDir::cleanPath(fileInfo.absolutePath()); // ### Should use mime type if (fileInfo.suffix() == QLatin1String("qml") @@ -258,7 +258,7 @@ void Snapshot::insert(const Document::Ptr &document) void Snapshot::insertLibraryInfo(const QString &path, const LibraryInfo &info) { - _libraries.insert(path, info); + _libraries.insert(QDir::cleanPath(path), info); } Document::Ptr Snapshot::documentFromSource(const QString &code, @@ -314,3 +314,18 @@ QMap<QString, Document::Ptr> Snapshot::componentsDefinedByImportedDocuments(cons return result; } + +Document::Ptr Snapshot::document(const QString &fileName) const +{ + return _documents.value(QDir::cleanPath(fileName)); +} + +QList<Document::Ptr> Snapshot::documentsInDirectory(const QString &path) const +{ + return _documentsByPath.values(QDir::cleanPath(path)); +} + +LibraryInfo Snapshot::libraryInfo(const QString &path) const +{ + return _libraries.value(QDir::cleanPath(path)); +} diff --git a/src/libs/qmljs/qmljsdocument.h b/src/libs/qmljs/qmljsdocument.h index 2a1469c1dad..c81c5132902 100644 --- a/src/libs/qmljs/qmljsdocument.h +++ b/src/libs/qmljs/qmljsdocument.h @@ -149,14 +149,9 @@ public: void insert(const Document::Ptr &document); void insertLibraryInfo(const QString &path, const LibraryInfo &info); - Document::Ptr document(const QString &fileName) const - { return _documents.value(fileName); } - - QList<Document::Ptr> documentsInDirectory(const QString &path) const - { return _documentsByPath.values(path); } - - LibraryInfo libraryInfo(const QString &path) const - { return _libraries.value(path); } + Document::Ptr document(const QString &fileName) const; + QList<Document::Ptr> documentsInDirectory(const QString &path) const; + LibraryInfo libraryInfo(const QString &path) const; Document::Ptr documentFromSource(const QString &code, const QString &fileName) const; -- GitLab