File indexing completed on 2025-02-16 04:57:41
0001 /* 0002 SPDX-FileCopyrightText: 2017-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "templateextracttextfrommail.h" 0008 #include "templateparser_debug.h" 0009 #include "templatewebenginepage.h" 0010 0011 using namespace TemplateParser; 0012 0013 template<typename Arg, typename R, typename C> 0014 struct InvokeWrapper { 0015 R *receiver; 0016 void (C::*memberFun)(Arg); 0017 void operator()(Arg result) 0018 { 0019 (receiver->*memberFun)(result); 0020 } 0021 }; 0022 0023 template<typename Arg, typename R, typename C> 0024 InvokeWrapper<Arg, R, C> invoke(R *receiver, void (C::*memberFun)(Arg)) 0025 { 0026 InvokeWrapper<Arg, R, C> wrapper = {receiver, memberFun}; 0027 return wrapper; 0028 } 0029 0030 TemplateExtractTextFromMail::TemplateExtractTextFromMail(QObject *parent) 0031 : QObject(parent) 0032 , mPage(new TemplateWebEnginePage(this)) 0033 { 0034 connect(mPage, &TemplateWebEnginePage::loadFinished, this, &TemplateExtractTextFromMail::slotLoadFinished); 0035 } 0036 0037 TemplateExtractTextFromMail::~TemplateExtractTextFromMail() = default; 0038 0039 void TemplateExtractTextFromMail::setHtmlContent(const QString &html) 0040 { 0041 mExtractedPlainText.clear(); 0042 mPage->setHtml(html); 0043 } 0044 0045 void TemplateExtractTextFromMail::slotLoadFinished(bool ok) 0046 { 0047 if (ok) { 0048 mPage->toPlainText(invoke(this, &TemplateExtractTextFromMail::setPlainText)); 0049 } else { 0050 qCWarning(TEMPLATEPARSER_LOG) << "Loading page failed"; 0051 Q_EMIT loadContentDone(false); 0052 } 0053 } 0054 0055 void TemplateExtractTextFromMail::setPlainText(const QString &plainText) 0056 { 0057 mExtractedPlainText = plainText; 0058 Q_EMIT loadContentDone(true); 0059 } 0060 0061 QString TemplateExtractTextFromMail::plainText() const 0062 { 0063 return mExtractedPlainText; 0064 } 0065 0066 #include "moc_templateextracttextfrommail.cpp"