diff options
Diffstat (limited to 'src/qml/qmldirparser')
| -rw-r--r-- | src/qml/qmldirparser/qqmldirparser.cpp | 29 | ||||
| -rw-r--r-- | src/qml/qmldirparser/qqmldirparser_p.h | 2 |
2 files changed, 18 insertions, 13 deletions
diff --git a/src/qml/qmldirparser/qqmldirparser.cpp b/src/qml/qmldirparser/qqmldirparser.cpp index e6a5691d3d..022d082546 100644 --- a/src/qml/qmldirparser/qqmldirparser.cpp +++ b/src/qml/qmldirparser/qqmldirparser.cpp @@ -347,23 +347,16 @@ bool QQmlDirParser::parse(const QString &source) _linkTarget = sections[1]; } else if (sectionCount == 2) { // No version specified (should only be used for relative qmldir files) - const Component entry(sections[0], sections[1], QTypeRevision()); - _components.insert(entry.typeName, entry); + insertComponentOrScript(sections[0], sections[1], QTypeRevision()); } else if (sectionCount == 3) { const QTypeRevision version = parseVersion(sections[1]); if (version.isValid()) { - const QString &fileName = sections[2]; - - if (fileName.endsWith(QLatin1String(".js")) || fileName.endsWith(QLatin1String(".mjs"))) { - // A 'js' extension indicates a namespaced script import - const Script entry(sections[0], fileName, version); - _scripts.append(entry); - } else { - const Component entry(sections[0], fileName, version); - _components.insert(entry.typeName, entry); - } + insertComponentOrScript(sections[0], sections[2], version); } else { - reportError(lineNumber, 0, QStringLiteral("invalid version %1, expected <major>.<minor>").arg(sections[1])); + reportError( + lineNumber, 0, + QStringLiteral("invalid version %1, expected <major>.<minor>") + .arg(sections[1])); } } else { reportError(lineNumber, 0, @@ -508,6 +501,16 @@ void QQmlDirParser::reportError(quint16 line, quint16 column, const QString &des _errors.append(error); } +void QQmlDirParser::insertComponentOrScript( + const QString &name, const QString &fileName, QTypeRevision version) +{ + // A 'js' extension indicates a namespaced script import + if (fileName.endsWith(QLatin1String(".js")) || fileName.endsWith(QLatin1String(".mjs"))) + _scripts.append(Script(name, fileName, version)); + else + _components.insert(name, Component(name, fileName, version)); +} + void QQmlDirParser::setError(const QQmlJS::DiagnosticMessage &e) { _errors.clear(); diff --git a/src/qml/qmldirparser/qqmldirparser_p.h b/src/qml/qmldirparser/qqmldirparser_p.h index 43409b7b41..07f783ab25 100644 --- a/src/qml/qmldirparser/qqmldirparser_p.h +++ b/src/qml/qmldirparser/qqmldirparser_p.h @@ -140,6 +140,8 @@ public: private: bool maybeAddComponent(const QString &typeName, const QString &fileName, const QString &version, QHash<QString,Component> &hash, int lineNumber = -1, bool multi = true); void reportError(quint16 line, quint16 column, const QString &message); + void insertComponentOrScript( + const QString &name, const QString &fileName, QTypeRevision version); private: QList<QQmlJS::DiagnosticMessage> _errors; |
