Fix some encoding issues when translating matrix.to to matrix:

This commit is contained in:
Nicolas Werner 2021-04-29 13:12:09 +02:00
parent dbf23fafbf
commit 620b6e8838
No known key found for this signature in database
GPG key ID: C8D75E610773F2D9

View file

@ -454,20 +454,18 @@ TimelineViewManager::openLink(QString link) const
QUrl url(link);
if (url.scheme() == "https" && url.host() == "matrix.to") {
// handle matrix.to links internally
QString p = url.fragment(QUrl::FullyDecoded);
QString p = url.fragment(QUrl::FullyEncoded);
if (p.startsWith("/"))
p.remove(0, 1);
auto temp = p.split("?");
QString query;
if (temp.size() >= 2)
query = temp.takeAt(1);
query = QUrl::fromPercentEncoding(temp.takeAt(1).toUtf8());
temp = temp.first().split("/");
auto identifier = temp.first();
QString eventId;
if (temp.size() >= 2)
eventId = temp.takeAt(1);
auto identifier = QUrl::fromPercentEncoding(temp.takeFirst().toUtf8());
QString eventId = QUrl::fromPercentEncoding(temp.join('/').toUtf8());
if (!identifier.isEmpty()) {
if (identifier.startsWith("@")) {
QByteArray uri =