File indexing completed on 2025-03-09 04:54:39
0001 /* 0002 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "testwebenginescrolladdattachment.h" 0008 0009 #include <KActionCollection> 0010 #include <QApplication> 0011 #include <QPushButton> 0012 #include <QVBoxLayout> 0013 #include <QWebEngineSettings> 0014 0015 #include "messageviewer/mailwebengineview.h" 0016 0017 template<typename Arg, typename R, typename C> 0018 struct InvokeWrapper { 0019 R *receiver; 0020 void (C::*memberFunction)(Arg); 0021 void operator()(Arg result) 0022 { 0023 (receiver->*memberFunction)(result); 0024 } 0025 }; 0026 0027 template<typename Arg, typename R, typename C> 0028 0029 InvokeWrapper<Arg, R, C> invoke(R *receiver, void (C::*memberFunction)(Arg)) 0030 { 0031 InvokeWrapper<Arg, R, C> wrapper = {receiver, memberFunction}; 0032 return wrapper; 0033 } 0034 0035 TestWebEngineScrollAddAttachment::TestWebEngineScrollAddAttachment(QWidget *parent) 0036 : QWidget(parent) 0037 { 0038 auto vboxLayout = new QVBoxLayout(this); 0039 0040 mTestWebEngine = new MessageViewer::MailWebEngineView(new KActionCollection(this), this); 0041 mTestWebEngine->settings()->setAttribute(QWebEngineSettings::JavascriptEnabled, true); 0042 vboxLayout->addWidget(mTestWebEngine); 0043 mTestWebEngine->load(QUrl(QStringLiteral("http://www.kde.org"))); 0044 auto scrollToButton = new QPushButton(QStringLiteral("Scroll to Attachment"), this); 0045 vboxLayout->addWidget(scrollToButton); 0046 connect(scrollToButton, &QPushButton::clicked, this, &TestWebEngineScrollAddAttachment::slotScrollToAttachment); 0047 } 0048 0049 void TestWebEngineScrollAddAttachment::slotScrollToAttachment() 0050 { 0051 mTestWebEngine->scrollToAnchor(QStringLiteral("module")); 0052 } 0053 0054 int main(int argc, char *argv[]) 0055 { 0056 QApplication app(argc, argv); 0057 auto testWebEngine = new TestWebEngineScrollAddAttachment; 0058 testWebEngine->show(); 0059 const int ret = app.exec(); 0060 return ret; 0061 } 0062 0063 #include "moc_testwebenginescrolladdattachment.cpp"