File indexing completed on 2024-05-05 17:01:23

0001 /*
0002    SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "expandjson.h"
0008 #include <QApplication>
0009 #include <QDebug>
0010 #include <QJsonDocument>
0011 #include <QPushButton>
0012 #include <QTextEdit>
0013 #include <QVBoxLayout>
0014 
0015 ExpandJson::ExpandJson(QWidget *parent)
0016     : QWidget(parent)
0017     , mInput(new QTextEdit(this))
0018     , mOutput(new QTextEdit(this))
0019     , mExpandButton(new QPushButton(QStringLiteral("Expand Json String"), this))
0020 {
0021     auto layout = new QVBoxLayout(this);
0022     mInput->setAcceptRichText(false);
0023     layout->addWidget(mInput);
0024 
0025     mOutput->setReadOnly(true);
0026     layout->addWidget(mOutput);
0027 
0028     layout->addWidget(mExpandButton);
0029     connect(mExpandButton, &QPushButton::clicked, this, &ExpandJson::slotExpandJson);
0030 }
0031 
0032 void ExpandJson::slotExpandJson()
0033 {
0034     const QString inputStr = mInput->toPlainText().trimmed();
0035     if (!inputStr.isEmpty()) {
0036         QJsonDocument json = QJsonDocument::fromJson(inputStr.toUtf8());
0037         qDebug() << " json " << json << inputStr.toUtf8();
0038         mOutput->setText(QString::fromUtf8(json.toJson(QJsonDocument::Indented)));
0039     }
0040 }
0041 
0042 int main(int argc, char *argv[])
0043 {
0044     QApplication app(argc, argv);
0045     ExpandJson w;
0046     w.show();
0047     return app.exec();
0048 }
0049 
0050 #include "moc_expandjson.cpp"