1 /*
2     SPDX-FileCopyrightText: 2020-2021 Laurent Montel <montel@kde.org>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #include "testgenerateplaintextbuildergui.h"
8 #include <KPIMTextEdit/MarkupDirector>
9 #include <KPIMTextEdit/PlainTextMarkupBuilder>
10 #include <QApplication>
11 #include <QLabel>
12 #include <QPushButton>
13 #include <QTextEdit>
14 #include <QVBoxLayout>
15 
TestGeneratePlainTextBuilderGui(QWidget * parent)16 TestGeneratePlainTextBuilderGui::TestGeneratePlainTextBuilderGui(QWidget *parent)
17     : QWidget(parent)
18 {
19     auto mainLayout = new QVBoxLayout(this);
20     QLabel *lab = new QLabel(QStringLiteral("html text"), this);
21     mainLayout->addWidget(lab);
22 
23     auto htmlEdit = new QTextEdit(this);
24     htmlEdit->setAcceptRichText(false);
25     mainLayout->addWidget(htmlEdit);
26 
27     QPushButton *generateHtmlFromQTextEditButton = new QPushButton(QStringLiteral("Generate HTML"), this);
28     mainLayout->addWidget(generateHtmlFromQTextEditButton);
29 
30     lab = new QLabel(QStringLiteral("Generate Html"), this);
31     mainLayout->addWidget(lab);
32 
33     auto generatedHtml = new QTextEdit(this);
34     generatedHtml->setAcceptRichText(false);
35     generatedHtml->setReadOnly(true);
36     mainLayout->addWidget(generatedHtml);
37 
38     lab = new QLabel(QStringLiteral("Plaintext from Grantlee to TextEdit"), this);
39     mainLayout->addWidget(lab);
40 
41     auto generatedPlainTextFromGrantleeToTextEdit = new QTextEdit(this);
42     generatedPlainTextFromGrantleeToTextEdit->setAcceptRichText(false);
43     generatedPlainTextFromGrantleeToTextEdit->setReadOnly(true);
44     mainLayout->addWidget(generatedPlainTextFromGrantleeToTextEdit);
45 
46     connect(generateHtmlFromQTextEditButton, &QPushButton::clicked, this, [=] {
47         generatedHtml->setHtml(htmlEdit->toPlainText());
48 
49         auto hb = new KPIMTextEdit::PlainTextMarkupBuilder();
50         auto md = new KPIMTextEdit::MarkupDirector(hb);
51         md->processDocument(generatedHtml->document());
52         auto result = hb->getResult();
53         delete md;
54         delete hb;
55         generatedPlainTextFromGrantleeToTextEdit->setPlainText(result);
56     });
57 }
58 
~TestGeneratePlainTextBuilderGui()59 TestGeneratePlainTextBuilderGui::~TestGeneratePlainTextBuilderGui()
60 {
61 }
62 
main(int argc,char * argv[])63 int main(int argc, char *argv[])
64 {
65     QApplication app(argc, argv);
66     TestGeneratePlainTextBuilderGui window;
67 
68     window.show();
69     return app.exec();
70 }
71