From 5ddfab1b7b762cb9a3932e5f85cd436d3eaa1eb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Blin?= <sebastien.blin@savoirfairelinux.com> Date: Mon, 25 Oct 2021 14:57:36 -0400 Subject: [PATCH] previewEngine: fix display hyperlink preference Change-Id: I3c9813e41f6c857d096d9d685d5902d3c4c361cd --- resources/misc/previewInterop.js | 5 +++-- src/commoncomponents/TextMessageDelegate.qml | 3 ++- src/messagesadapter.cpp | 4 ++-- src/messagesadapter.h | 2 +- src/previewengine.cpp | 4 ++-- src/previewengine.h | 2 +- src/settingsview/components/ChatviewSettings.qml | 1 - 7 files changed, 11 insertions(+), 10 deletions(-) diff --git a/resources/misc/previewInterop.js b/resources/misc/previewInterop.js index 4a8a30291..16a73661a 100644 --- a/resources/misc/previewInterop.js +++ b/resources/misc/previewInterop.js @@ -44,11 +44,12 @@ function getPreviewInfo(messageId, url) { }) } -function parseMessage(messageId, message) { +function parseMessage(messageId, message, showPreview) { var links = linkify.find(message) if (links.length === 0) { return } - getPreviewInfo(messageId, links[0].href) + if (showPreview) + getPreviewInfo(messageId, links[0].href) window.jsbridge.linkifyReady(messageId, linkifyStr(message)) } diff --git a/src/commoncomponents/TextMessageDelegate.qml b/src/commoncomponents/TextMessageDelegate.qml index 4f94a9818..e9c4e2106 100644 --- a/src/commoncomponents/TextMessageDelegate.qml +++ b/src/commoncomponents/TextMessageDelegate.qml @@ -25,6 +25,7 @@ import QtGraphicalEffects 1.15 import net.jami.Models 1.1 import net.jami.Adapters 1.1 import net.jami.Constants 1.1 +import net.jami.Enums 1.1 SBSMessageBase { id : root @@ -170,7 +171,7 @@ SBSMessageBase { Behavior on opacity { NumberAnimation { duration: 100 } } Component.onCompleted: { if (!Linkified) { - MessagesAdapter.parseMessageUrls(Id, Body) + MessagesAdapter.parseMessageUrls(Id, Body, UtilsAdapter.getAppValue(Settings.DisplayHyperlinkPreviews)) } opacity = 1 } diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp index 2d0875c5a..efe43d182 100644 --- a/src/messagesadapter.cpp +++ b/src/messagesadapter.cpp @@ -407,9 +407,9 @@ MessagesAdapter::onConversationMessagesLoaded(uint32_t, const QString& convId) } void -MessagesAdapter::parseMessageUrls(const QString& messageId, const QString& msg) +MessagesAdapter::parseMessageUrls(const QString& messageId, const QString& msg, bool showPreview) { - previewEngine_->parseMessage(messageId, msg); + previewEngine_->parseMessage(messageId, msg, showPreview); } void diff --git a/src/messagesadapter.h b/src/messagesadapter.h index aec4f65d9..7e7138ac3 100644 --- a/src/messagesadapter.h +++ b/src/messagesadapter.h @@ -105,7 +105,7 @@ protected: Q_INVOKABLE QVariantMap getMediaInfo(const QString& msg); Q_INVOKABLE bool isRemoteImage(const QString& msg); Q_INVOKABLE QString getFormattedTime(const quint64 timestamp); - Q_INVOKABLE void parseMessageUrls(const QString& messageId, const QString& msg); + Q_INVOKABLE void parseMessageUrls(const QString& messageId, const QString& msg, bool showPreview); Q_INVOKABLE void onPaste(); Q_INVOKABLE QString getStatusString(int status); Q_INVOKABLE QVariantMap getTransferStats(const QString& messageId, int); diff --git a/src/previewengine.cpp b/src/previewengine.cpp index 439a91c59..5796ff07b 100644 --- a/src/previewengine.cpp +++ b/src/previewengine.cpp @@ -70,9 +70,9 @@ PreviewEngine::PreviewEngine(QObject* parent) } void -PreviewEngine::parseMessage(const QString& messageId, const QString& msg) +PreviewEngine::parseMessage(const QString& messageId, const QString& msg, bool showPreview) { - page()->runJavaScript(QString("parseMessage(`%1`, `%2`)").arg(messageId, msg)); + page()->runJavaScript(QString("parseMessage(`%1`, `%2`, %3)").arg(messageId, msg, showPreview ? "true" : "false")); } void diff --git a/src/previewengine.h b/src/previewengine.h index 9b45c6428..8cb7e322f 100644 --- a/src/previewengine.h +++ b/src/previewengine.h @@ -52,7 +52,7 @@ public: explicit PreviewEngine(QObject* parent = nullptr); ~PreviewEngine() = default; - void parseMessage(const QString& messageId, const QString& msg); + void parseMessage(const QString& messageId, const QString& msg, bool showPreview); Q_SIGNALS: void infoReady(const QString& messageId, const QVariantMap& info); diff --git a/src/settingsview/components/ChatviewSettings.qml b/src/settingsview/components/ChatviewSettings.qml index 344bb4c5d..660807e66 100644 --- a/src/settingsview/components/ChatviewSettings.qml +++ b/src/settingsview/components/ChatviewSettings.qml @@ -75,7 +75,6 @@ ColumnLayout { onSwitchToggled: { UtilsAdapter.setAppValue(Settings.Key.DisplayHyperlinkPreviews, checked) - MessagesAdapter.setDisplayLinks() } } } -- GitLab