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 "testgeneratehtmlbuildergui.h"
0008 #include <KPIMTextEdit/MarkupDirector>
0009 #include <KPIMTextEdit/TextHTMLBuilder>
0010 #include <QApplication>
0011 #include <QLabel>
0012 #include <QPushButton>
0013 #include <QTextEdit>
0014 #include <QVBoxLayout>
0015 
0016 TestGenerateHTMLBuilderGui::TestGenerateHTMLBuilderGui(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("HTML from QTextEdit"), this);
0039     mainLayout->addWidget(lab);
0040 
0041     auto generatedHtmlFromTextEdit = new QTextEdit(this);
0042     generatedHtmlFromTextEdit->setAcceptRichText(false);
0043     generatedHtmlFromTextEdit->setReadOnly(true);
0044     mainLayout->addWidget(generatedHtmlFromTextEdit);
0045 
0046     lab = new QLabel(QStringLiteral("HTML from Grantlee"), this);
0047     mainLayout->addWidget(lab);
0048 
0049     auto generatedHtmlFromGrantlee = new QTextEdit(this);
0050     generatedHtmlFromGrantlee->setAcceptRichText(false);
0051     generatedHtmlFromGrantlee->setReadOnly(true);
0052     mainLayout->addWidget(generatedHtmlFromGrantlee);
0053 
0054     lab = new QLabel(QStringLiteral("HTML from Grantlee to TextEdit"), this);
0055     mainLayout->addWidget(lab);
0056 
0057     auto generatedHtmlFromGrantleeToTextEdit = new QTextEdit(this);
0058     generatedHtmlFromGrantleeToTextEdit->setAcceptRichText(false);
0059     generatedHtmlFromGrantleeToTextEdit->setReadOnly(true);
0060     mainLayout->addWidget(generatedHtmlFromGrantleeToTextEdit);
0061 
0062     connect(generateHtmlFromQTextEditButton, &QPushButton::clicked, this, [=] {
0063         generatedHtml->setHtml(htmlEdit->toPlainText());
0064         generatedHtmlFromTextEdit->setPlainText(generatedHtml->document()->toHtml());
0065 
0066         auto hb = new KPIMTextEdit::TextHTMLBuilder();
0067         auto md = new KPIMTextEdit::MarkupDirector(hb);
0068         md->processDocument(generatedHtml->document());
0069         auto result = hb->getResult();
0070         delete md;
0071         delete hb;
0072         generatedHtmlFromGrantlee->setPlainText(result);
0073         generatedHtmlFromGrantleeToTextEdit->setHtml(result);
0074     });
0075 }
0076 
0077 TestGenerateHTMLBuilderGui::~TestGenerateHTMLBuilderGui() = default;
0078 
0079 int main(int argc, char *argv[])
0080 {
0081     QApplication app(argc, argv);
0082     TestGenerateHTMLBuilderGui window;
0083 
0084     window.show();
0085     return app.exec();
0086 }
0087 
0088 #include "moc_testgeneratehtmlbuildergui.cpp"