mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2026-07-25 06:54:43 +00:00
feat: option to open link without warning
This commit is contained in:
@@ -7800,6 +7800,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
"ayu_KeepAliveServiceNote" = "We recommend migrating to **FCM** version.";
|
||||
"ayu_DisableAds" = "Disable Ads";
|
||||
"ayu_DisableStories" = "Disable Stories";
|
||||
"ayu_DisableOpenLinkWarning" = "Disable Open Link Warning";
|
||||
"ayu_DisableCustomBackgrounds" = "Disable Custom Backgrounds";
|
||||
"ayu_HidePremiumStatuses" = "Hide Premium Statuses";
|
||||
"ayu_SmoothScroll" = "Smooth Scroll";
|
||||
|
||||
@@ -581,6 +581,12 @@ void AyuSettings::setSpoofWebviewAsAndroid(bool val) {
|
||||
save();
|
||||
}
|
||||
|
||||
void AyuSettings::setDisableOpenLinkWarning(bool val) {
|
||||
if (_disableOpenLinkWarning.current() == val) return;
|
||||
_disableOpenLinkWarning = val;
|
||||
save();
|
||||
}
|
||||
|
||||
void AyuSettings::setIncreaseWebviewHeight(bool val) {
|
||||
if (_increaseWebviewHeight.current() == val) return;
|
||||
_increaseWebviewHeight = val;
|
||||
@@ -993,6 +999,7 @@ void to_json(nlohmann::json &j, const AyuSettings &s) {
|
||||
{"showOnlyAddedEmojisAndStickers", s._showOnlyAddedEmojisAndStickers.current()},
|
||||
{"collapseSimilarChannels", s._collapseSimilarChannels.current()},
|
||||
{"hideSimilarChannels", s._hideSimilarChannels.current()},
|
||||
{"disableOpenLinkWarning", s._disableOpenLinkWarning.current()},
|
||||
{"wideMultiplier", s._wideMultiplier.current()},
|
||||
{"spoofWebviewAsAndroid", s._spoofWebviewAsAndroid.current()},
|
||||
{"increaseWebviewHeight", s._increaseWebviewHeight.current()},
|
||||
@@ -1089,6 +1096,7 @@ void from_json(const nlohmann::json &j, AyuSettings &s) {
|
||||
s._showOnlyAddedEmojisAndStickers = j.value("showOnlyAddedEmojisAndStickers", defaults._showOnlyAddedEmojisAndStickers.current());
|
||||
s._collapseSimilarChannels = j.value("collapseSimilarChannels", defaults._collapseSimilarChannels.current());
|
||||
s._hideSimilarChannels = j.value("hideSimilarChannels", defaults._hideSimilarChannels.current());
|
||||
s._disableOpenLinkWarning = j.value("disableOpenLinkWarning", defaults._disableOpenLinkWarning.current());
|
||||
s._wideMultiplier = j.value("wideMultiplier", defaults._wideMultiplier.current());
|
||||
s._spoofWebviewAsAndroid = j.value("spoofWebviewAsAndroid", defaults._spoofWebviewAsAndroid.current());
|
||||
s._increaseWebviewHeight = j.value("increaseWebviewHeight", defaults._increaseWebviewHeight.current());
|
||||
|
||||
@@ -255,6 +255,7 @@ public:
|
||||
[[nodiscard]] bool showOnlyAddedEmojisAndStickers() const { return _showOnlyAddedEmojisAndStickers.current(); }
|
||||
[[nodiscard]] bool collapseSimilarChannels() const { return _collapseSimilarChannels.current(); }
|
||||
[[nodiscard]] bool hideSimilarChannels() const { return _hideSimilarChannels.current(); }
|
||||
[[nodiscard]] bool disableOpenLinkWarning() const { return _disableOpenLinkWarning.current(); }
|
||||
[[nodiscard]] double wideMultiplier() const { return _wideMultiplier.current(); }
|
||||
[[nodiscard]] bool spoofWebviewAsAndroid() const { return _spoofWebviewAsAndroid.current(); }
|
||||
[[nodiscard]] bool increaseWebviewHeight() const { return _increaseWebviewHeight.current(); }
|
||||
@@ -335,6 +336,7 @@ public:
|
||||
void setShowOnlyAddedEmojisAndStickers(bool val);
|
||||
void setCollapseSimilarChannels(bool val);
|
||||
void setHideSimilarChannels(bool val);
|
||||
void setDisableOpenLinkWarning(bool val);
|
||||
void setWideMultiplier(double val);
|
||||
void setSpoofWebviewAsAndroid(bool val);
|
||||
void setIncreaseWebviewHeight(bool val);
|
||||
@@ -431,6 +433,8 @@ public:
|
||||
[[nodiscard]] rpl::producer<bool> collapseSimilarChannelsChanges() const { return _collapseSimilarChannels.changes(); }
|
||||
[[nodiscard]] rpl::producer<bool> hideSimilarChannelsValue() const { return _hideSimilarChannels.value(); }
|
||||
[[nodiscard]] rpl::producer<bool> hideSimilarChannelsChanges() const { return _hideSimilarChannels.changes(); }
|
||||
[[nodiscard]] rpl::producer<bool> disableOpenLinkWarningValue() const { return _disableOpenLinkWarning.value(); }
|
||||
[[nodiscard]] rpl::producer<bool> disableOpenLinkWarningChanges() const { return _disableOpenLinkWarning.changes(); }
|
||||
[[nodiscard]] rpl::producer<double> wideMultiplierValue() const { return _wideMultiplier.value(); }
|
||||
[[nodiscard]] rpl::producer<double> wideMultiplierChanges() const { return _wideMultiplier.changes(); }
|
||||
[[nodiscard]] rpl::producer<bool> spoofWebviewAsAndroidValue() const { return _spoofWebviewAsAndroid.value(); }
|
||||
@@ -584,6 +588,7 @@ private:
|
||||
rpl::variable<bool> _showOnlyAddedEmojisAndStickers = false;
|
||||
rpl::variable<bool> _collapseSimilarChannels = true;
|
||||
rpl::variable<bool> _hideSimilarChannels = false;
|
||||
rpl::variable<bool> _disableOpenLinkWarning = false;
|
||||
rpl::variable<double> _wideMultiplier = 1.0;
|
||||
rpl::variable<bool> _spoofWebviewAsAndroid = false;
|
||||
rpl::variable<bool> _increaseWebviewHeight = false;
|
||||
|
||||
@@ -132,6 +132,13 @@ void BuildQoLToggles(SectionBuilder &builder, AyuSectionBuilder &ayu) {
|
||||
.setter = &AyuSettings::setDisableStories,
|
||||
});
|
||||
|
||||
ayu.addSettingToggle({
|
||||
.id = u"ayu/disableOpenLinkWarning"_q,
|
||||
.title = tr::ayu_DisableOpenLinkWarning(),
|
||||
.getter = &AyuSettings::disableOpenLinkWarning,
|
||||
.setter = &AyuSettings::setDisableOpenLinkWarning,
|
||||
});
|
||||
|
||||
ayu.addCollapsibleToggle({
|
||||
.id = u"ayu/similarChannels"_q,
|
||||
.title = tr::ayu_DisableSimilarChannels(),
|
||||
|
||||
@@ -46,6 +46,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||
#include <QtCore/QDateTime>
|
||||
#include <QtCore/QLocale>
|
||||
|
||||
// AyuGram includes
|
||||
#include "ayu/ayu_settings.h"
|
||||
|
||||
namespace {
|
||||
|
||||
constexpr auto kReminderSetToastDuration = 4 * crl::time(1000);
|
||||
@@ -260,7 +263,7 @@ void HiddenUrlClickHandler::Open(QString url, QVariant context) {
|
||||
const auto parsedUrl = url.startsWith(u"tonsite://"_q)
|
||||
? QUrl(url)
|
||||
: QUrl::fromUserInput(url);
|
||||
if (UrlRequiresConfirmation(parsedUrl) && !base::IsCtrlPressed()) {
|
||||
if (!AyuSettings::getInstance().disableOpenLinkWarning() && UrlRequiresConfirmation(parsedUrl) && !base::IsCtrlPressed()) {
|
||||
const auto my = context.value<ClickHandlerContext>();
|
||||
if (!my.show) {
|
||||
Core::App().hideMediaView();
|
||||
|
||||
Reference in New Issue
Block a user