From 949d75b2bd3f783149cac4b4c8536c09d7a81bc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Fri, 18 Sep 2026 23:57:34 +0200 Subject: [PATCH] [DeckShare] Build share links with QUrl and QUrlQuery for percent-encoding --- .../widgets/deck_share/deck_share_utils.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/cockatrice/src/interface/widgets/deck_share/deck_share_utils.cpp b/cockatrice/src/interface/widgets/deck_share/deck_share_utils.cpp index 422d29ba1..ae2606a35 100644 --- a/cockatrice/src/interface/widgets/deck_share/deck_share_utils.cpp +++ b/cockatrice/src/interface/widgets/deck_share/deck_share_utils.cpp @@ -4,6 +4,8 @@ #include #include #include +#include +#include #include #include #include @@ -13,8 +15,17 @@ namespace DeckShareUtils QString buildShareLink(const AbstractClient *client, const QString &token) { - return QString("cockatrice://opendeck?share=%1&hostname=%2&port=%3") - .arg(token, client->serverName(), QString::number(client->serverPort())); + QUrl url; + url.setScheme(QStringLiteral("cockatrice")); + url.setHost(QStringLiteral("opendeck")); + + QUrlQuery query; + query.addQueryItem(QStringLiteral("share"), token); + query.addQueryItem(QStringLiteral("hostname"), client->serverName()); + query.addQueryItem(QStringLiteral("port"), QString::number(client->serverPort())); + url.setQuery(query); + + return url.toString(QUrl::FullyEncoded); } QString copyShareLinkToClipboard(const QString &link)