From 06fbda77e050dd2a44ecc11210f4b01a4bcdd6ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Sat, 29 Aug 2020 13:45:07 -0400 Subject: [PATCH] chatview: correctly handle clicked links in the webview Change-Id: I16edca89fe0e66fb3845cc0420c251c70c12bdec Gitlab: #11 --- src/mainview/components/MessageWebView.qml | 7 +++++++ src/messagesadapter.cpp | 8 ++++++++ src/messagesadapter.h | 1 + 3 files changed, 16 insertions(+) diff --git a/src/mainview/components/MessageWebView.qml b/src/mainview/components/MessageWebView.qml index 1cb9242e9..98bdd48df 100644 --- a/src/mainview/components/MessageWebView.qml +++ b/src/mainview/components/MessageWebView.qml @@ -232,6 +232,13 @@ Rectangle { } } + onNavigationRequested: { + if(request.navigationType === WebEngineView.LinkClickedNavigation) { + MessagesAdapter.openUrl(request.url) + request.action = WebEngineView.IgnoreRequest + } + } + onLoadingChanged: { if (loadRequest.status == WebEngineView.LoadSucceededStatus) { messageWebView.runJavaScript(ClientWrapper.utilsAdaptor.getStyleSheet( diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp index 1220aeb45..314d7b933 100644 --- a/src/messagesadapter.cpp +++ b/src/messagesadapter.cpp @@ -332,6 +332,14 @@ MessagesAdapter::openFile(const QString &arg) } } +void +MessagesAdapter::openUrl(const QString &url) +{ + if (!QDesktopServices::openUrl(url)) { + qDebug() << "Couldn't open url: " << url; + } +} + void MessagesAdapter::acceptFile(const QString &arg) { diff --git a/src/messagesadapter.h b/src/messagesadapter.h index 7a0c2f9e4..352cc3eec 100644 --- a/src/messagesadapter.h +++ b/src/messagesadapter.h @@ -49,6 +49,7 @@ public: Q_INVOKABLE void sendFile(const QString &message); Q_INVOKABLE void retryInteraction(const QString &arg); Q_INVOKABLE void deleteInteraction(const QString &arg); + Q_INVOKABLE void openUrl(const QString &url); Q_INVOKABLE void openFile(const QString &arg); Q_INVOKABLE void acceptFile(const QString &arg); Q_INVOKABLE void refuseFile(const QString &arg); -- GitLab