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