void BotGameUrlClickHandler::onClick(ClickContext context) const { const auto url = tryConvertUrlToLocal(this->url()); if (Core::InternalPassportLink(url)) { return; } const auto open = [=] { UrlClickHandler::Open(url, context.other); }; if (url.startsWith(qstr("tg://"), Qt::CaseInsensitive)) { open(); } else if (!_bot || _bot->isVerified() || Local::isBotTrusted(_bot)) { open(); } else { const auto callback = [=, bot = _bot] { Ui::hideLayer(); Local::makeBotTrusted(bot); open(); }; Ui::show(Box<ConfirmBox>( lng_allow_bot_pass(lt_bot_name, _bot->name), lang(lng_allow_bot), callback)); } }
void HiddenUrlClickHandler::Open(QString url, QVariant context) { url = tryConvertUrlToLocal(url); if (Core::InternalPassportLink(url)) { return; } const auto open = [=] { UrlClickHandler::Open(url, context); }; if (url.startsWith(qstr("tg://"), Qt::CaseInsensitive)) { open(); } else { const auto parsedUrl = QUrl::fromUserInput(url); if (UrlRequiresConfirmation(url)) { Core::App().hideMediaView(); const auto displayUrl = parsedUrl.isValid() ? parsedUrl.toDisplayString() : url; Ui::show( Box<ConfirmBox>( lang(lng_open_this_link) + qsl("\n\n") + displayUrl, lang(lng_open_link), [=] { Ui::hideLayer(); open(); }), LayerOption::KeepOther); } else { open(); } } }
void HiddenUrlClickHandler::onClick(Qt::MouseButton button) const { QString u = url(); u = tryConvertUrlToLocal(u); if (u.startsWith(qstr("tg://"))) { App::openLocalUrl(u); } else { Ui::showLayer(new ConfirmLinkBox(u)); } }
void HiddenUrlClickHandler::doOpen(QString url) { auto urlText = tryConvertUrlToLocal(url); if (urlText.startsWith(qstr("tg://"))) { App::openLocalUrl(urlText); } else { auto parsedUrl = QUrl::fromUserInput(urlText); auto displayUrl = parsedUrl.isValid() ? parsedUrl.toDisplayString() : urlText; Ui::show(Box<ConfirmBox>(lang(lng_open_this_link) + qsl("\n\n") + displayUrl, lang(lng_open_link), [urlText] { Ui::hideLayer(); UrlClickHandler::doOpen(urlText); })); } }
void BotGameUrlClickHandler::onClick(Qt::MouseButton button) const { auto urlText = tryConvertUrlToLocal(url()); if (urlText.startsWith(qstr("tg://"))) { App::openLocalUrl(urlText); } else if (!_bot || _bot->isVerified() || Local::isBotTrusted(_bot)) { doOpen(urlText); } else { Ui::show(Box<ConfirmBox>(lng_allow_bot_pass(lt_bot_name, _bot->name), lang(lng_allow_bot), [bot = _bot, urlText] { Ui::hideLayer(); Local::makeBotTrusted(bot); UrlClickHandler::doOpen(urlText); })); } }
void UrlClickHandler::Open(QString url, QVariant context) { url = tryConvertUrlToLocal(url); if (Core::InternalPassportLink(url)) { return; } Ui::Tooltip::Hide(); if (isEmail(url)) { File::OpenEmailLink(url); } else if (url.startsWith(qstr("tg://"), Qt::CaseInsensitive)) { Core::App().openLocalUrl(url, context); } else if (!url.isEmpty()) { QDesktopServices::openUrl(url); } }
void UrlClickHandler::doOpen(QString url) { Ui::Tooltip::Hide(); if (isEmail(url)) { File::OpenEmailLink(url); return; } url = tryConvertUrlToLocal(url); if (url.startsWith(qstr("tg://"), Qt::CaseInsensitive)) { App::openLocalUrl(url); } else { QDesktopServices::openUrl(url); } }
void UrlClickHandler::doOpen(QString url) { PopupTooltip::Hide(); if (isEmail(url)) { QUrl u(qstr("mailto:") + url); if (!QDesktopServices::openUrl(u)) { psOpenFile(u.toString(QUrl::FullyEncoded), true); } return; } url = tryConvertUrlToLocal(url); if (url.startsWith(qstr("tg://"), Qt::CaseInsensitive)) { App::openLocalUrl(url); } else { QDesktopServices::openUrl(url); } }