From bb776d5c2b8c98c8b7f6af5fb67a8190e670bdc6 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Mon, 1 Apr 2024 16:42:07 +0200 Subject: [PATCH] Only ask for URL opening confirmation for QR codes BUG: 484870 --- src/qml/QrScannerPage.qml | 2 +- src/roommanager.cpp | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/qml/QrScannerPage.qml b/src/qml/QrScannerPage.qml index 14157dbd9..1090cb912 100644 --- a/src/qml/QrScannerPage.qml +++ b/src/qml/QrScannerPage.qml @@ -38,7 +38,7 @@ Kirigami.Page { formats: Prison.Format.QRCode | Prison.Format.Aztec onResultChanged: { if (result.text.length > 0 && result.text != scanner.previousText) { - RoomManager.resolveResource(result.text, ""); + RoomManager.resolveResource(result.text, "qr"); scanner.previousText = result.text; } root.closeDialog(); diff --git a/src/roommanager.cpp b/src/roommanager.cpp index 2fba40a9f..e39b07d3a 100644 --- a/src/roommanager.cpp +++ b/src/roommanager.cpp @@ -11,6 +11,7 @@ #include "neochatconnection.h" #include "neochatroom.h" #include "spacehierarchycache.h" +#include "urlhelper.h" #include #include @@ -124,6 +125,11 @@ void RoomManager::resolveResource(const QString &idOrUri, const QString &action) return; } + if (uri.type() == Uri::NonMatrix && action == "qr"_ls) { + Q_EMIT externalUrl(uri.toUrl()); + return; + } + if (uri.type() != Uri::NonMatrix) { if (!m_connection) { return; @@ -325,7 +331,7 @@ void RoomManager::knockRoom(Quotient::Connection *account, const QString &roomAl bool RoomManager::visitNonMatrix(const QUrl &url) { - Q_EMIT externalUrl(url); + UrlHelper().openUrl(url); return true; }