From a02c721c4d8ba3c342fcb317f5c779a076571fa4 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Tue, 3 Jan 2017 19:01:41 +0100 Subject: Intercept link clicks and try to open an external browser. --- applications/mail/main.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'applications/mail') diff --git a/applications/mail/main.cpp b/applications/mail/main.cpp index cb5350a2..9f3003d0 100644 --- a/applications/mail/main.cpp +++ b/applications/mail/main.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include @@ -32,10 +33,30 @@ public: } }; +class WebUrlRequestInterceptor : public QWebEngineUrlRequestInterceptor +{ + Q_OBJECT +public: + WebUrlRequestInterceptor(QObject *p = Q_NULLPTR) : QWebEngineUrlRequestInterceptor{} + {} + + void interceptRequest(QWebEngineUrlRequestInfo &info) + { + qWarning() << info.requestMethod() << info.requestUrl(); + QDesktopServices::openUrl(info.requestUrl()); + info.block(true); + //TODO handle mailto to open a composer + } +}; + int main(int argc, char *argv[]) { QApplication app(argc, argv); + QtWebEngine::initialize(); + WebUrlRequestInterceptor *wuri = new WebUrlRequestInterceptor(); + QQuickWebEngineProfile::defaultProfile()->setRequestInterceptor(wuri); + auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.components.mail"); Q_ASSERT(package.isValid()); QQmlApplicationEngine engine; @@ -43,3 +64,5 @@ int main(int argc, char *argv[]) engine.load(QUrl::fromLocalFile(package.filePath("mainscript"))); return app.exec(); } + +#include "main.moc" -- cgit v1.2.3