Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qqmltypeloaderqmldircontent.cpp
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant
4
5#include <private/qqmltypeloaderqmldircontent_p.h>
6#include <private/qqmlsourcecoordinate_p.h>
7#include <QtQml/qqmlerror.h>
8
9QT_BEGIN_NAMESPACE
10
11QList<QQmlError> QQmlTypeLoaderQmldirContent::errors(const QString &uri, const QUrl &url) const
12{
13 QList<QQmlError> errors;
14 const auto parseErrors = m_parser.errors(uri);
15 for (const auto &parseError : parseErrors) {
16 QQmlError error;
17 error.setUrl(url);
18 error.setLine(qmlConvertSourceCoordinate<quint32, int>(parseError.loc.startLine));
19 error.setColumn(qmlConvertSourceCoordinate<quint32, int>(parseError.loc.startColumn));
20 error.setDescription(parseError.message);
21 errors.append(error);
22 }
23 return errors;
24}
25
26void QQmlTypeLoaderQmldirContent::setContent(const QString &location, const QString &content)
27{
28 Q_ASSERT(!m_hasContent);
29 m_hasContent = true;
30 m_location = location;
31 m_parser.parse(content);
32 m_parser.disambiguateFileSelectors();
33}
34
35void QQmlTypeLoaderQmldirContent::setError(const QQmlError &error)
36{
37 QQmlJS::DiagnosticMessage parseError;
38 parseError.loc.startLine = error.line();
39 parseError.loc.startColumn = error.column();
40 parseError.message = error.description();
41 m_parser.setError(parseError);
42}
43
44QT_END_NAMESPACE