diff --git a/resources/qml/MatrixText.qml b/resources/qml/MatrixText.qml index 9a4f73488c0576c15f8a2758503c3d6c526f62f7..d56143dd0143e612ebbf2134cc62ca6e6a9e30d3 100644 --- a/resources/qml/MatrixText.qml +++ b/resources/qml/MatrixText.qml @@ -16,7 +16,7 @@ TextEdit { timelineManager.setHistoryView(match[1]) chat.positionViewAtIndex(chat.model.idToIndex(match[2]), ListView.Contain) } - else Qt.openUrlExternally(link) + else timelineManager.openLink(link) } MouseArea { diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp index 64af8afb7b0158896caa07aa5a465d1fce3641a9..060f52fec9c18d0be7d0c23c38f2bd320cea6f3f 100644 --- a/src/timeline/TimelineViewManager.cpp +++ b/src/timeline/TimelineViewManager.cpp @@ -1,5 +1,6 @@ #include "TimelineViewManager.h" +#include <QDesktopServices> #include <QMetaType> #include <QPalette> #include <QQmlContext> @@ -219,6 +220,12 @@ TimelineViewManager::openImageOverlay(QString mxcUrl, QString eventId) const }); } +void +TimelineViewManager::openLink(QString link) const +{ + QDesktopServices::openUrl(link); +} + void TimelineViewManager::updateReadReceipts(const QString &room_id, const std::vector<QString> &event_ids) diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h index ed0950589d4d4aff93a734a8168858b6bb413993..81a8b9b43b5611efd6b34b8c1caa6f8d28f0193d 100644 --- a/src/timeline/TimelineViewManager.h +++ b/src/timeline/TimelineViewManager.h @@ -47,6 +47,8 @@ public: Q_INVOKABLE QString userPresence(QString id) const; Q_INVOKABLE QString userStatus(QString id) const; + Q_INVOKABLE void openLink(QString link) const; + signals: void clearRoomMessageCount(QString roomid); void updateRoomsLastMessage(QString roomid, const DescInfo &info);