1// Copyright (C) 2023 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
4#include "qqmldom_utils_p.h"
5#include <QtCore/qdir.h>
6#include <QtCore/qdiriterator.h>
7#include <QtCore/qstring.h>
8#include <QtCore/qmetaobject.h>
9#include <QtCore/qcbormap.h>
10#include <QtCore/qvarlengtharray.h>
11
12QT_BEGIN_NAMESPACE
13
14Q_LOGGING_CATEGORY(QQmlJSDomImporting, "qt.qqmljsdom.importing")
15
16namespace QQmlJS {
17namespace Dom {
18
19using namespace Qt::StringLiterals;
20
21static QMetaEnum regionEnum = QMetaEnum::fromType<FileLocationRegion>();
22
23QString fileLocationRegionName(FileLocationRegion region)
24{
25 return QString::fromLatin1(ba: regionEnum.key(index: region));
26}
27
28FileLocationRegion fileLocationRegionValue(QStringView region)
29{
30 return static_cast<FileLocationRegion>(regionEnum.keyToValue(key: region.toLatin1()));
31}
32
33QCborValue sourceLocationToQCborValue(QQmlJS::SourceLocation loc)
34{
35 QCborMap res({
36 {QStringLiteral(u"offset"), loc.offset},
37 {QStringLiteral(u"length"), loc.length},
38 {QStringLiteral(u"startLine"), loc.startLine},
39 {QStringLiteral(u"startColumn"), loc.startColumn}
40 });
41 return res;
42}
43
44} // namespace Dom
45}; // namespace QQmlJS
46
47QT_END_NAMESPACE
48

Provided by KDAB

Privacy Policy
Learn Advanced QML with KDAB
Find out more

source code of qtdeclarative/src/qmldom/qqmldom_utils.cpp