diff options
Diffstat (limited to 'src/qml/qmldirparser/qqmldirparser.cpp')
-rw-r--r-- | src/qml/qmldirparser/qqmldirparser.cpp | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/src/qml/qmldirparser/qqmldirparser.cpp b/src/qml/qmldirparser/qqmldirparser.cpp index e944b52e47..5bf33d3602 100644 --- a/src/qml/qmldirparser/qqmldirparser.cpp +++ b/src/qml/qmldirparser/qqmldirparser.cpp @@ -38,7 +38,6 @@ ****************************************************************************/ #include "qqmldirparser_p.h" -#include "qqmlerror.h" #include <QtCore/QtDebug> @@ -263,6 +262,13 @@ bool QQmlDirParser::parse(const QString &source) } else { reportError(lineNumber, 0, QStringLiteral("invalid version %1, expected <major>.<minor>").arg(sections[2])); } + } else if (sections[0] == QLatin1String("import")) { + if (sectionCount != 2) { + reportError(lineNumber, 0, + QStringLiteral("import requires 2 arguments, but %1 were provided").arg(sectionCount - 1)); + continue; + } + _imports << sections[1]; } else if (sectionCount == 2) { // No version specified (should only be used for relative qmldir files) const Component entry(sections[0], sections[1], -1, -1); @@ -297,8 +303,8 @@ bool QQmlDirParser::parse(const QString &source) void QQmlDirParser::reportError(quint16 line, quint16 column, const QString &description) { QQmlJS::DiagnosticMessage error; - error.loc.startLine = line; - error.loc.startColumn = column; + error.line = line; + error.column = column; error.message = description; _errors.append(error); } @@ -311,27 +317,20 @@ bool QQmlDirParser::hasError() const return false; } -void QQmlDirParser::setError(const QQmlError &e) +void QQmlDirParser::setError(const QQmlJS::DiagnosticMessage &e) { _errors.clear(); - reportError(e.line(), e.column(), e.description()); + reportError(e.line, e.column, e.message); } -QList<QQmlError> QQmlDirParser::errors(const QString &uri) const +QList<QQmlJS::DiagnosticMessage> QQmlDirParser::errors(const QString &uri) const { - QUrl url(uri); - QList<QQmlError> errors; + QList<QQmlJS::DiagnosticMessage> errors; const int numErrors = _errors.size(); errors.reserve(numErrors); for (int i = 0; i < numErrors; ++i) { - const QQmlJS::DiagnosticMessage &msg = _errors.at(i); - QQmlError e; - QString description = msg.message; - description.replace(QLatin1String("$$URI$$"), uri); - e.setDescription(description); - e.setUrl(url); - e.setLine(msg.loc.startLine); - e.setColumn(msg.loc.startColumn); + QQmlJS::DiagnosticMessage e = _errors.at(i); + e.message.replace(QLatin1String("$$URI$$"), uri); errors << e; } return errors; @@ -362,6 +361,11 @@ QHash<QString, QQmlDirParser::Component> QQmlDirParser::dependencies() const return _dependencies; } +QStringList QQmlDirParser::imports() const +{ + return _imports; +} + QList<QQmlDirParser::Script> QQmlDirParser::scripts() const { return _scripts; |