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();
		}
	}
}
Esempio n. 3
0
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);
	}
}
Esempio n. 8
0
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);
	}
}