1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the tools applications of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL-EXCEPT$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 as published by the Free Software
20** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
21** included in the packaging of this file. Please review the following
22** information to ensure the GNU General Public License requirements will
23** be met: https://www.gnu.org/licenses/gpl-3.0.html.
24**
25** $QT_END_LICENSE$
26**
27****************************************************************************/
28
29#include "jsongenerator.h"
30
31#include <QtCore/qjsonarray.h>
32#include <QtCore/qjsondocument.h>
33#include <QtCore/qjsonobject.h>
34
35#include <iostream>
36
37namespace JsonGenerator {
38
39static QJsonObject generate(Package package)
40{
41 QJsonObject obj;
42
43 obj.insert(QStringLiteral("Id"), value: package.id);
44 obj.insert(QStringLiteral("Path"), value: package.path);
45 obj.insert(QStringLiteral("Files"), value: package.files.join(sep: QLatin1Char(' ')));
46 obj.insert(QStringLiteral("QDocModule"), value: package.qdocModule);
47 obj.insert(QStringLiteral("Name"), value: package.name);
48 obj.insert(QStringLiteral("QtUsage"), value: package.qtUsage);
49 obj.insert(QStringLiteral("QtParts"), value: QJsonArray::fromStringList(list: package.qtParts));
50
51 obj.insert(QStringLiteral("Description"), value: package.description);
52 obj.insert(QStringLiteral("Homepage"), value: package.homepage);
53 obj.insert(QStringLiteral("Version"), value: package.version);
54 obj.insert(QStringLiteral("DownloadLocation"), value: package.downloadLocation);
55
56 obj.insert(QStringLiteral("License"), value: package.license);
57 obj.insert(QStringLiteral("LicenseId"), value: package.licenseId);
58 obj.insert(QStringLiteral("LicenseFile"), value: package.licenseFile);
59
60 obj.insert(QStringLiteral("Copyright"), value: package.copyright);
61 obj.insert(QStringLiteral("PackageComment"), value: package.packageComment);
62
63 return obj;
64}
65
66void generate(QTextStream &out, const QVector<Package> &packages, LogLevel logLevel)
67{
68 if (logLevel == VerboseLog)
69 std::cerr << qPrintable(tr("Generating json...\n"));
70
71 QJsonDocument document;
72 QJsonArray array;
73 for (const Package &package : packages)
74 array.append(value: generate(package));
75 document.setArray(array);
76
77 out << document.toJson();
78}
79
80} // namespace JsonGenerator
81

source code of qttools/src/qtattributionsscanner/jsongenerator.cpp