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