Correctly handle "internal:url:..." links.

This commit is contained in:
John Preston 2021-11-18 17:11:59 +04:00
parent f18fbbc2a1
commit 1111718ea3

View file

@ -19,7 +19,11 @@
QString TextClickHandler::readable() const {
const auto result = url();
return result.startsWith(qstr("internal:")) ? QString() : result;
return !result.startsWith(qstr("internal:"))
? result
: result.startsWith(qstr("internal:url:"))
? result.mid(qstr("internal:url:").size())
: QString();
}
UrlClickHandler::UrlClickHandler(const QString &url, bool fullDisplayed)
@ -33,6 +37,13 @@ UrlClickHandler::UrlClickHandler(const QString &url, bool fullDisplayed)
? original.toEncoded()
: QString());
_readable = good.isValid() ? good.toDisplayString() : _originalUrl;
} else if (_originalUrl.startsWith(qstr("internal:url:"))) {
const auto external = _originalUrl.mid(qstr("internal:url:").size());
const auto original = QUrl(external);
const auto good = QUrl(original.isValid()
? original.toEncoded()
: QString());
_readable = good.isValid() ? good.toDisplayString() : external;
}
}