File indexing completed on 2024-05-19 05:21:47

0001 /*
0002     SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "testgenerateplaintextbuildergui.h"
0008 #include <KPIMTextEdit/MarkupDirector>
0009 #include <KPIMTextEdit/PlainTextMarkupBuilder>
0010 #include <QApplication>
0011 #include <QLabel>
0012 #include <QPushButton>
0013 #include <QTextEdit>
0014 #include <QVBoxLayout>
0015 
0016 TestGeneratePlainTextBuilderGui::TestGeneratePlainTextBuilderGui(QWidget *parent)
0017     : QWidget(parent)
0018 {
0019     auto mainLayout = new QVBoxLayout(this);
0020     auto lab = new QLabel(QStringLiteral("html text"), this);
0021     mainLayout->addWidget(lab);
0022 
0023     auto htmlEdit = new QTextEdit(this);
0024     htmlEdit->setAcceptRichText(false);
0025     mainLayout->addWidget(htmlEdit);
0026 
0027     auto generateHtmlFromQTextEditButton = new QPushButton(QStringLiteral("Generate HTML"), this);
0028     mainLayout->addWidget(generateHtmlFromQTextEditButton);
0029 
0030     lab = new QLabel(QStringLiteral("Generate Html"), this);
0031     mainLayout->addWidget(lab);
0032 
0033     auto generatedHtml = new QTextEdit(this);
0034     generatedHtml->setAcceptRichText(false);
0035     generatedHtml->setReadOnly(true);
0036     mainLayout->addWidget(generatedHtml);
0037 
0038     lab = new QLabel(QStringLiteral("Plaintext from Grantlee to TextEdit"), this);
0039     mainLayout->addWidget(lab);
0040 
0041     auto generatedPlainTextFromGrantleeToTextEdit = new QTextEdit(this);
0042     generatedPlainTextFromGrantleeToTextEdit->setAcceptRichText(false);
0043     generatedPlainTextFromGrantleeToTextEdit->setReadOnly(true);
0044     mainLayout->addWidget(generatedPlainTextFromGrantleeToTextEdit);
0045 
0046     connect(generateHtmlFromQTextEditButton, &QPushButton::clicked, this, [=] {
0047         generatedHtml->setHtml(htmlEdit->toPlainText());
0048 
0049         auto hb = new KPIMTextEdit::PlainTextMarkupBuilder();
0050         auto md = new KPIMTextEdit::MarkupDirector(hb);
0051         md->processDocument(generatedHtml->document());
0052         auto result = hb->getResult();
0053         delete md;
0054         delete hb;
0055         generatedPlainTextFromGrantleeToTextEdit->setPlainText(result);
0056     });
0057 }
0058 
0059 TestGeneratePlainTextBuilderGui::~TestGeneratePlainTextBuilderGui() = default;
0060 
0061 int main(int argc, char *argv[])
0062 {
0063     QApplication app(argc, argv);
0064     TestGeneratePlainTextBuilderGui window;
0065 
0066     window.show();
0067     return app.exec();
0068 }
0069 
0070 #include "moc_testgenerateplaintextbuildergui.cpp"