Don't expand urls same as text.

This commit is contained in:
John Preston 2020-10-08 12:00:28 +03:00
parent ae340a0b76
commit 663e2cc133
3 changed files with 18 additions and 7 deletions

View file

@ -41,13 +41,16 @@ QString UrlClickHandler::copyToClipboardContextItemText() const {
: Ui::Integration::Instance().phraseContextCopyLink();
}
QString UrlClickHandler::url() const {
if (isEmail()) {
return _originalUrl;
QString UrlClickHandler::EncodeForOpening(const QString &originalUrl) {
if (IsEmail(originalUrl)) {
return originalUrl;
}
QUrl u(_originalUrl), good(u.isValid() ? u.toEncoded() : QString());
QString result(good.isValid() ? QString::fromUtf8(good.toEncoded()) : _originalUrl);
const auto u = QUrl(originalUrl);
const auto good = QUrl(u.isValid() ? u.toEncoded() : QString());
const auto result = good.isValid()
? QString::fromUtf8(good.toEncoded())
: originalUrl;
if (!result.isEmpty()
&& !QRegularExpression(

View file

@ -59,11 +59,17 @@ public:
const auto at = url.indexOf('@'), slash = url.indexOf('/');
return ((at > 0) && (slash < 0 || slash > at));
}
[[nodiscard]] static QString EncodeForOpening(const QString &originalUrl);
[[nodiscard]] static bool IsSuspicious(const QString &url);
[[nodiscard]] static QString ShowEncoded(const QString &url);
protected:
QString url() const override;
[[nodiscard]] QString originalUrl() const {
return _originalUrl;
}
QString url() const override {
return EncodeForOpening(_originalUrl);
}
QString readable() const override {
return _readable;
}

View file

@ -3270,7 +3270,9 @@ TextForMimeData String::toText(
return;
}
const auto skipLink = (entity.type == EntityType::CustomUrl)
&& (entity.data.startsWith(qstr("internal:")));
&& (entity.data.startsWith(qstr("internal:"))
|| (entity.data
== UrlClickHandler::EncodeForOpening(full.toString())));
if (composeExpanded) {
result.expanded.append(full);
if (entity.type == EntityType::CustomUrl && !skipLink) {