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"