aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qmldirparser
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qmldirparser')
-rw-r--r--src/qml/qmldirparser/qqmldirparser.cpp29
-rw-r--r--src/qml/qmldirparser/qqmldirparser_p.h2
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;