diff --git a/Telegram/Resources/langs/lang.strings b/Telegram/Resources/langs/lang.strings index 5b6ab61acf..c082ccbe9a 100644 --- a/Telegram/Resources/langs/lang.strings +++ b/Telegram/Resources/langs/lang.strings @@ -601,6 +601,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL "lng_edit_privacy_calls_p2p_always_title" = "Always allow"; "lng_edit_privacy_calls_p2p_never_title" = "Never allow"; +"lng_edit_privacy_calls_p2p_everyone" = "Everybody"; +"lng_edit_privacy_calls_p2p_contacts" = "My contacts"; +"lng_edit_privacy_calls_p2p_nobody" = "Nobody"; + "lng_self_destruct_title" = "Account self-destruction"; "lng_self_destruct_description" = "If you don't come online at least once within this period, your account will be deleted along with all groups, messages and contacts."; "lng_self_destruct_months#one" = "{count} month"; diff --git a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp index ae51d2725e..e5bad4c274 100644 --- a/Telegram/SourceFiles/boxes/edit_privacy_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_privacy_box.cpp @@ -83,6 +83,15 @@ std::unique_ptr PrivacyExceptionsBoxControl } // namespace +LangKey EditPrivacyBox::Controller::optionLabelKey(Option option) { + switch (option) { + case Option::Everyone: return lng_edit_privacy_everyone; + case Option::Contacts: return lng_edit_privacy_contacts; + case Option::Nobody: return lng_edit_privacy_nobody; + } + Unexpected("Option value in optionsLabelKey."); +} + EditPrivacyBox::EditPrivacyBox( QWidget*, std::unique_ptr controller, @@ -182,29 +191,21 @@ bool EditPrivacyBox::showExceptionLink(Exception exception) const { Unexpected("Invalid exception value."); } -Ui::Radioenum *EditPrivacyBox::AddOption( +Ui::Radioenum *EditPrivacyBox::addOption( not_null container, const std::shared_ptr> &group, Option option) { - const auto label = [&] { - switch (option) { - case Option::Everyone: return lng_edit_privacy_everyone; - case Option::Contacts: return lng_edit_privacy_contacts; - case Option::Nobody: return lng_edit_privacy_nobody; - } - Unexpected("Option value in EditPrivacyBox::AddOption."); - }(); return container->add( object_ptr>( container, group, option, - lang(label), + lang(_controller->optionLabelKey(option)), st::settingsSendType), st::settingsSendTypePadding); } -Ui::FlatLabel *EditPrivacyBox::AddLabel( +Ui::FlatLabel *EditPrivacyBox::addLabel( not_null container, rpl::producer text) { const auto wrap = container->add( @@ -244,9 +245,9 @@ void EditPrivacyBox::setupContent() { toggle->fire({}); }); - const auto addOption = [&](Option option) { + const auto addOptionRow = [&](Option option) { return (_controller->hasOption(option) || (_value.option == option)) - ? AddOption(content, group, option) + ? addOption(content, group, option) : nullptr; }; const auto addExceptionLink = [=](Exception exception) { @@ -286,10 +287,10 @@ void EditPrivacyBox::setupContent() { }; AddSubsectionTitle(content, _controller->optionsTitleKey()); - addOption(Option::Everyone); - addOption(Option::Contacts); - addOption(Option::Nobody); - AddLabel(content, _controller->warning()); + addOptionRow(Option::Everyone); + addOptionRow(Option::Contacts); + addOptionRow(Option::Nobody); + addLabel(content, _controller->warning()); AddSkip(content); AddDivider(content); @@ -297,7 +298,7 @@ void EditPrivacyBox::setupContent() { AddSubsectionTitle(content, lng_edit_privacy_exceptions); const auto always = addExceptionLink(Exception::Always); const auto never = addExceptionLink(Exception::Never); - AddLabel(content, _controller->exceptionsDescription()); + addLabel(content, _controller->exceptionsDescription()); AddSkip(content); addButton(langFactory(lng_settings_save), [=] { diff --git a/Telegram/SourceFiles/boxes/edit_privacy_box.h b/Telegram/SourceFiles/boxes/edit_privacy_box.h index 831e6c6379..2da4ff76ac 100644 --- a/Telegram/SourceFiles/boxes/edit_privacy_box.h +++ b/Telegram/SourceFiles/boxes/edit_privacy_box.h @@ -46,6 +46,7 @@ public: return true; } virtual LangKey optionsTitleKey() = 0; + virtual LangKey optionLabelKey(Option option); virtual rpl::producer warning() { return rpl::never(); } @@ -82,14 +83,6 @@ public: std::unique_ptr controller, const Value &value); - static Ui::Radioenum