/* This file is part of Kotatogram Desktop, the unofficial app based on Telegram Desktop. For license and copyright information please follow this link: https://github.com/kotatogram/kotatogram-desktop/blob/dev/LEGAL */ #include "kotato/kotato_settings_menu.h" #include "kotato/kotato_lang.h" #include "kotato/kotato_settings.h" #include "base/options.h" #include "base/platform/base_platform_info.h" #include "settings/settings_common.h" #include "settings/settings_chat.h" #include "ui/wrap/vertical_layout.h" #include "ui/wrap/slide_wrap.h" #include "ui/widgets/buttons.h" #include "ui/widgets/labels.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/continuous_sliders.h" #include "ui/text/text_utilities.h" // Ui::Text::ToUpper #include "boxes/connection_box.h" #include "kotato/boxes/kotato_fonts_box.h" #include "kotato/boxes/kotato_radio_box.h" #include "boxes/about_box.h" #include "ui/boxes/confirm_box.h" #include "platform/platform_specific.h" #include "platform/platform_file_utilities.h" #include "window/window_peer_menu.h" #include "window/window_session_controller.h" #include "lang/lang_keys.h" #include "core/update_checker.h" #include "core/application.h" #include "storage/localstorage.h" #include "data/data_session.h" #include "data/data_cloud_themes.h" #include "main/main_session.h" #include "mainwindow.h" #include "facades.h" #include "styles/style_settings.h" #include "ui/platform/ui_platform_utility.h" namespace Settings { namespace { } // namespace #define SettingsMenuJsonSwitch(LangKey, Option) AddButton( \ container, \ rktr(#LangKey), \ st::settingsButton \ )->toggleOn( \ rpl::single(::Kotato::JsonSettings::GetBool(#Option)) \ )->toggledValue( \ ) | rpl::filter([](bool enabled) { \ return (enabled != ::Kotato::JsonSettings::GetBool(#Option)); \ }) | rpl::start_with_next([](bool enabled) { \ ::Kotato::JsonSettings::Set(#Option, enabled); \ ::Kotato::JsonSettings::Write(); \ }, container->lifetime()); void SetupKotatoChats( not_null controller, not_null container) { AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_chats")); AddButton( container, rktr("ktg_settings_fonts"), st::settingsButton )->addClickHandler([=] { Ui::show(Box()); }); AddSkip(container); AddDivider(container); AddSkip(container); } void SetupKotatoMessages(not_null container) { AddSubsectionTitle(container, rktr("ktg_settings_messages")); AddSkip(container); } void SetupKotatoForward(not_null container) { AddDivider(container); AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_forward")); AddSkip(container); AddDividerText(container, rktr("ktg_settings_forward_chat_on_click_description")); } void SetupKotatoNetwork(not_null container) { AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_network")); AddSkip(container); } void SetupKotatoFolders( not_null controller, not_null container) { AddDivider(container); AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_filters")); AddSkip(container); } void SetupKotatoSystem( not_null controller, not_null container) { AddDivider(container); AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_system")); AddSkip(container); } void SetupKotatoOther( not_null controller, not_null container) { AddDivider(container); AddSkip(container); AddSubsectionTitle(container, rktr("ktg_settings_other")); } Kotato::Kotato( QWidget *parent, not_null controller) : Section(parent) { setupContent(controller); } void Kotato::setupContent(not_null controller) { const auto content = Ui::CreateChild(this); SetupKotatoChats(controller, content); SetupKotatoMessages(content); SetupKotatoForward(content); SetupKotatoNetwork(content); SetupKotatoFolders(controller, content); SetupKotatoSystem(controller, content); SetupKotatoOther(controller, content); Ui::ResizeFitChild(this, content); } } // namespace Settings