#include "ayu/boxes/edit_edited_mark.h" #include "ayu/boxes/edit_deleted_mark.h" #include "ayu/ayu_settings.h" #include "ayu/settings/settings_ayu.h" #include "lang_auto.h" #include "mainwindow.h" #include "settings/settings_common.h" #include "ui/wrap/vertical_layout.h" #include "ui/widgets/buttons.h" #include "ui/widgets/checkbox.h" #include "boxes/connection_box.h" #include "ui/boxes/confirm_box.h" #include "platform/platform_specific.h" #include "window/window_session_controller.h" #include "lang/lang_instance.h" #include "core/application.h" #include "storage/localstorage.h" #include "data/data_session.h" #include "main/main_session.h" #include "styles/style_settings.h" #include "apiwrap.h" #include "api/api_blocked_peers.h" namespace Settings { rpl::producer Ayu::title() { return tr::ayu_AyuPreferences(); } Ayu::Ayu( QWidget *parent, not_null controller) : Section(parent) { setupContent(controller); } void Ayu::SetupAyuGramSettings(not_null container, not_null controller) { auto settings = &AyuSettings::getInstance(); AddSkip(container); AddSubsectionTitle(container, tr::ayu_GhostEssentialsHeader()); AddButton( container, tr::ayu_SendReadPackets(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->sendReadPackets) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->sendReadPackets); }) | rpl::start_with_next([=](bool enabled) { settings->set_sendReadPackets(enabled); Local::writeSettings(); }, container->lifetime()); AddButton( container, tr::ayu_SendOnlinePackets(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->sendOnlinePackets) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->sendOnlinePackets); }) | rpl::start_with_next([=](bool enabled) { settings->set_sendOnlinePackets(enabled); Local::writeSettings(); }, container->lifetime()); AddButton( container, tr::ayu_SendUploadProgress(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->sendUploadProgress) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->sendUploadProgress); }) | rpl::start_with_next([=](bool enabled) { settings->set_sendUploadProgress(enabled); Local::writeSettings(); }, container->lifetime()); AddButton( container, tr::ayu_SendOfflinePacketAfterOnline(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->sendOfflinePacketAfterOnline) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->sendOfflinePacketAfterOnline); }) | rpl::start_with_next([=](bool enabled) { settings->set_sendOfflinePacketAfterOnline(enabled); Local::writeSettings(); }, container->lifetime()); AddButton( container, tr::ayu_UseScheduledMessages(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->useScheduledMessages) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->useScheduledMessages); }) | rpl::start_with_next([=](bool enabled) { settings->set_useScheduledMessages(enabled); Local::writeSettings(); }, container->lifetime()); AddDivider(container); AddSkip(container); AddSubsectionTitle(container, tr::ayu_SpyEssentialsHeader()); AddButton( container, tr::ayu_KeepDeletedMessages(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->keepDeletedMessages) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->keepDeletedMessages); }) | rpl::start_with_next([=](bool enabled) { settings->set_keepDeletedMessages(enabled); Local::writeSettings(); }, container->lifetime()); AddButton( container, tr::ayu_KeepMessagesHistory(), st::settingsButtonNoIcon )->toggleOn( rpl::single(settings->keepMessagesHistory) )->toggledValue( ) | rpl::filter([=](bool enabled) { return (enabled != settings->keepMessagesHistory); }) | rpl::start_with_next([=](bool enabled) { settings->set_keepMessagesHistory(enabled); Local::writeSettings(); }, container->lifetime()); AddDivider(container); AddSkip(container); AddSubsectionTitle(container, tr::ayu_CustomizationHeader()); auto currentDeletedMark = lifetime().make_state>(); auto btn = AddButtonWithLabel( container, tr::ayu_DeletedMarkText(), currentDeletedMark->changes(), st::settingsButtonNoIcon ); btn->addClickHandler([=]() { auto box = Box(); box->boxClosing() | rpl::start_with_next([=]() { *currentDeletedMark = settings->deletedMark; }, container->lifetime()); Ui::show(std::move(box)); }); *currentDeletedMark = settings->deletedMark; auto currentEditedMark = lifetime().make_state>(); auto btn2 = AddButtonWithLabel( container, rpl::single(QString("Edited mark")), currentEditedMark->changes(), st::settingsButtonNoIcon ); btn2->addClickHandler([=]() { auto box = Box(); box->boxClosing() | rpl::start_with_next([=]() { *currentEditedMark = settings->editedMark; }, container->lifetime()); Ui::show(std::move(box)); }); *currentEditedMark = settings->editedMark; AddDividerText(container, tr::ayu_SettingsWatermark()); } void Ayu::setupContent(not_null controller) { const auto content = Ui::CreateChild(this); SetupAyuGramSettings(content, controller); Ui::ResizeFitChild(this, content); } } // namespace Settings