diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-10-12 00:07:57 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-10-12 00:07:57 (GMT) |
commit | c9b2dc28d831f93e9e58dc11209171cebbdaf8f6 (patch) | |
tree | 61a22922989599bb4faf318b5233267737157cde /src/declarative/qml/qdeclarativedirparser.cpp | |
parent | ea99fab06a9c2365bcd992681fe682af98cb4c4b (diff) | |
parent | 3f42986b357c5066adb9755454bc4bcc4915ab9f (diff) | |
download | Qt-c9b2dc28d831f93e9e58dc11209171cebbdaf8f6.zip Qt-c9b2dc28d831f93e9e58dc11209171cebbdaf8f6.tar.gz Qt-c9b2dc28d831f93e9e58dc11209171cebbdaf8f6.tar.bz2 |
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml:
Backport more imports directory caching changes.
Fix more test DEPLOYMENT statements for Symbian
Fix deployment for declarative tests, examples on Symbian
Fix StrictlyEnforceRange with snapOneItem/Row and header behavior, pt 2
Backport imports directory caching performance optimization
Diffstat (limited to 'src/declarative/qml/qdeclarativedirparser.cpp')
-rw-r--r-- | src/declarative/qml/qdeclarativedirparser.cpp | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/declarative/qml/qdeclarativedirparser.cpp b/src/declarative/qml/qdeclarativedirparser.cpp index 0a7a749..fcc74da 100644 --- a/src/declarative/qml/qdeclarativedirparser.cpp +++ b/src/declarative/qml/qdeclarativedirparser.cpp @@ -41,8 +41,10 @@ #include "private/qdeclarativedirparser_p.h" #include "qdeclarativeerror.h" +#include <private/qdeclarativeglobal_p.h> #include <QtCore/QTextStream> +#include <QtCore/QFile> #include <QtCore/QtDebug> QT_BEGIN_NAMESPACE @@ -66,6 +68,16 @@ void QDeclarativeDirParser::setUrl(const QUrl &url) _url = url; } +QString QDeclarativeDirParser::fileSource() const +{ + return _filePathSouce; +} + +void QDeclarativeDirParser::setFileSource(const QString &filePath) +{ + _filePathSouce = filePath; +} + QString QDeclarativeDirParser::source() const { return _source; @@ -92,6 +104,23 @@ bool QDeclarativeDirParser::parse() _plugins.clear(); _components.clear(); + if (_source.isEmpty() && !_filePathSouce.isEmpty()) { + QFile file(_filePathSouce); + if (!QDeclarative_isFileCaseCorrect(_filePathSouce)) { + QDeclarativeError error; + error.setDescription(QString::fromUtf8("cannot load module \"$$URI$$\": File name case mismatch for \"%1\"").arg(_filePathSouce)); + _errors.prepend(error); + return false; + } else if (file.open(QFile::ReadOnly)) { + _source = QString::fromUtf8(file.readAll()); + } else { + QDeclarativeError error; + error.setDescription(QString::fromUtf8("module \"$$URI$$\" definition \"%1\" not readable").arg(_filePathSouce)); + _errors.prepend(error); + return false; + } + } + QTextStream stream(&_source); int lineNumber = 0; @@ -214,9 +243,16 @@ bool QDeclarativeDirParser::hasError() const return false; } -QList<QDeclarativeError> QDeclarativeDirParser::errors() const +QList<QDeclarativeError> QDeclarativeDirParser::errors(const QString &uri) const { - return _errors; + QList<QDeclarativeError> errors = _errors; + for (int i = 0; i < errors.size(); ++i) { + QDeclarativeError &e = errors[i]; + QString description = e.description(); + description.replace(QLatin1String("$$URI$$"), uri); + e.setDescription(description); + } + return errors; } QList<QDeclarativeDirParser::Plugin> QDeclarativeDirParser::plugins() const |