diff --git a/resources/misc/previewInterop.js b/resources/misc/previewInterop.js index 4a8a30291ec2e67112abc098aee2f5a9182c0e64..16a73661a3aef335b7a1ed19e8869786139fe870 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 4f94a981873d967cc6fe6ff90661a284bdceb9fd..e9c4e21067a5d53398dd214a7232ffdb594aa279 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 2d0875c5ab27b4077092112d4a53925fc5592a80..efe43d1821a821785634d621c5854c2511736151 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 aec4f65d983c35efbc4c626a1578efb87925d851..7e7138ac393f43bb5d445dee2142f3262ecfea27 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 439a91c5946792d2214a1e5968095bf26877d5bc..5796ff07bef2c1ceb3c8d22291736339fde5c5cc 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 9b45c6428e1dd854ccd7b5a2c99c2cad4a0740f1..8cb7e322f35dc8aceb8f9c4eedd40a7308041500 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 344bb4c5d57f2a2102ad2957cb701333caf9446a..660807e6668515e4283b49391d6cb281c2d0b49b 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() } } }