Removed AddButton and CreateButton without icon from Settings.

This commit is contained in:
23rd 2023-11-14 23:59:21 +03:00
parent f6cb9072d2
commit f629bf76ff
40 changed files with 173 additions and 171 deletions

View file

@ -109,11 +109,11 @@ void AutoDownloadBox::setupContent() {
Type type, Type type,
rpl::producer<QString> label) { rpl::producer<QString> label) {
const auto value = settings->bytesLimit(_source, type); const auto value = settings->bytesLimit(_source, type);
AddButton( content->add(object_ptr<Ui::SettingsButton>(
content, content,
std::move(label), std::move(label),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
rpl::single(value > 0) rpl::single(value > 0)
)->toggledChanges( )->toggledChanges(
) | rpl::start_with_next([=](bool enabled) { ) | rpl::start_with_next([=](bool enabled) {

View file

@ -168,7 +168,7 @@ void BackgroundBox::prepare() {
Ui::AddSkip(container); Ui::AddSkip(container);
const auto button = container->add(Settings::CreateButton( const auto button = container->add(object_ptr<Ui::SettingsButton>(
container, container,
tr::lng_settings_bg_from_file(), tr::lng_settings_bg_from_file(),
st::infoProfileButton)); st::infoProfileButton));

View file

@ -295,7 +295,7 @@ void EditPrivacyBox::setupContent() {
const auto button = content->add( const auto button = content->add(
object_ptr<Ui::SlideWrap<Button>>( object_ptr<Ui::SlideWrap<Button>>(
content, content,
CreateButton( object_ptr<Button>(
content, content,
rpl::duplicate(text), rpl::duplicate(text),
st::settingsButtonNoIcon))); st::settingsButtonNoIcon)));

View file

@ -516,7 +516,7 @@ not_null<Ui::SettingsButton*> AddToggledButton(
const auto toggled = container->add( const auto toggled = container->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
container, container,
CreateButton( CreateButtonWithIcon(
container, container,
std::move(text), std::move(text),
st, st,
@ -664,7 +664,7 @@ void EditFilterBox(
Ui::AddSkip(content); Ui::AddSkip(content);
Ui::AddSubsectionTitle(content, tr::lng_filters_include()); Ui::AddSubsectionTitle(content, tr::lng_filters_include());
const auto includeAdd = AddButton( const auto includeAdd = AddButtonWithIcon(
content, content,
tr::lng_filters_add_chats(), tr::lng_filters_add_chats(),
st::settingsButtonActive, st::settingsButtonActive,
@ -691,7 +691,7 @@ void EditFilterBox(
Ui::AddSubsectionTitle(excludeInner, tr::lng_filters_exclude()); Ui::AddSubsectionTitle(excludeInner, tr::lng_filters_exclude());
const auto excludeAdd = AddButton( const auto excludeAdd = AddButtonWithIcon(
excludeInner, excludeInner,
tr::lng_filters_remove_chats(), tr::lng_filters_remove_chats(),
st::settingsButtonActive, st::settingsButtonActive,

View file

@ -1178,12 +1178,12 @@ void LanguageBox::setupTop(not_null<Ui::VerticalLayout*> container) {
if (!_controller) { if (!_controller) {
return; return;
} }
const auto translateEnabled = Settings::AddButton( const auto translateEnabled = container->add(
container, object_ptr<Ui::SettingsButton>(
tr::lng_translate_settings_show(), container,
st::settingsButtonNoIcon tr::lng_translate_settings_show(),
)->toggleOn( st::settingsButtonNoIcon))->toggleOn(
rpl::single(Core::App().settings().translateButtonEnabled())); rpl::single(Core::App().settings().translateButtonEnabled()));
translateEnabled->toggledValue( translateEnabled->toggledValue(
) | rpl::filter([](bool checked) { ) | rpl::filter([](bool checked) {
@ -1195,11 +1195,11 @@ void LanguageBox::setupTop(not_null<Ui::VerticalLayout*> container) {
using namespace rpl::mappers; using namespace rpl::mappers;
auto premium = Data::AmPremiumValue(&_controller->session()); auto premium = Data::AmPremiumValue(&_controller->session());
const auto translateChat = Settings::AddButton( const auto translateChat = container->add(object_ptr<Ui::SettingsButton>(
container, container,
tr::lng_translate_settings_chat(), tr::lng_translate_settings_chat(),
st::settingsButtonNoIconLocked st::settingsButtonNoIconLocked
)->toggleOn(rpl::merge( ))->toggleOn(rpl::merge(
rpl::combine( rpl::combine(
Core::App().settings().translateChatEnabledValue(), Core::App().settings().translateChatEnabledValue(),
rpl::duplicate(premium), rpl::duplicate(premium),

View file

@ -269,7 +269,7 @@ void Controller::choose(not_null<ChatData*> chat) {
Assert(channel->isBroadcast()); Assert(channel->isBroadcast());
Ui::AddSkip(above); Ui::AddSkip(above);
Settings::AddButton( Settings::AddButtonWithIcon(
above, above,
tr::lng_manage_discussion_group_create(), tr::lng_manage_discussion_group_create(),
st::infoCreateLinkedChatButton, st::infoCreateLinkedChatButton,
@ -287,7 +287,7 @@ void Controller::choose(not_null<ChatData*> chat) {
auto below = object_ptr<Ui::VerticalLayout>(box); auto below = object_ptr<Ui::VerticalLayout>(box);
if (chat && canEdit) { if (chat && canEdit) {
Settings::AddButton( Settings::AddButtonWithIcon(
below, below,
(channel->isBroadcast() (channel->isBroadcast()
? tr::lng_manage_discussion_group_unlink ? tr::lng_manage_discussion_group_unlink

View file

@ -662,11 +662,10 @@ int ColorSelector::resizeGetHeight(int newWidth) {
const auto st = parent->lifetime().make_state<style::SettingsButton>( const auto st = parent->lifetime().make_state<style::SettingsButton>(
basicSt); basicSt);
st->padding.setRight(rightPadding); st->padding.setRight(rightPadding);
auto result = CreateButton( auto result = object_ptr<Ui::SettingsButton>(
parent, parent,
tr::lng_settings_color_emoji(), tr::lng_settings_color_emoji(),
*st, *st);
{});
const auto raw = result.data(); const auto raw = result.data();
const auto right = Ui::CreateChild<Ui::RpWidget>(raw); const auto right = Ui::CreateChild<Ui::RpWidget>(raw);
@ -854,7 +853,7 @@ void AddPeerColorButton(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
std::shared_ptr<ChatHelpers::Show> show, std::shared_ptr<ChatHelpers::Show> show,
not_null<PeerData*> peer) { not_null<PeerData*> peer) {
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
(peer->isSelf() (peer->isSelf()
? tr::lng_settings_theme_name_color() ? tr::lng_settings_theme_name_color()

View file

@ -609,7 +609,7 @@ template <typename Flags>
return checkView; return checkView;
} else { } else {
const auto button = Settings::AddButton( const auto button = Settings::AddButtonWithIcon(
verticalLayout, verticalLayout,
rpl::single(entry.label), rpl::single(entry.label),
st, st,

View file

@ -82,11 +82,12 @@ void EditAllowedReactionsBox(
const auto container = box->verticalLayout(); const auto container = box->verticalLayout();
const auto enabled = isGroup ? nullptr : Settings::AddButton( const auto enabled = isGroup
container, ? nullptr
tr::lng_manage_peer_reactions_enable(), : container->add(object_ptr<Ui::SettingsButton>(
st::manageGroupButton.button container,
).get(); tr::lng_manage_peer_reactions_enable(),
st::manageGroupButton.button));
if (enabled && !list.empty()) { if (enabled && !list.empty()) {
AddReactionAnimatedIcon( AddReactionAnimatedIcon(
enabled, enabled,
@ -179,10 +180,10 @@ void EditAllowedReactionsBox(
: (inSome || (isDefault && allowed.some.empty())); : (inSome || (isDefault && allowed.some.empty()));
}; };
const auto add = [&](const Reaction &entry) { const auto add = [&](const Reaction &entry) {
const auto button = Settings::AddButton( const auto button = reactions->add(object_ptr<Ui::SettingsButton>(
reactions, reactions,
rpl::single(entry.title), rpl::single(entry.title),
st::manageGroupButton.button); st::manageGroupButton.button));
AddReactionAnimatedIcon( AddReactionAnimatedIcon(
button, button,
button->sizeValue( button->sizeValue(
@ -223,10 +224,10 @@ void EditAllowedReactionsBox(
for (const auto &id : allowed.some) { for (const auto &id : allowed.some) {
if (const auto customId = id.custom()) { if (const auto customId = id.custom()) {
// Some possible forward compatibility. // Some possible forward compatibility.
const auto button = Settings::AddButton( const auto button = reactions->add(object_ptr<Ui::SettingsButton>(
reactions, reactions,
rpl::single(u"Custom reaction"_q), rpl::single(u"Custom reaction"_q),
st::manageGroupButton.button); st::manageGroupButton.button));
AddReactionCustomIcon( AddReactionCustomIcon(
button, button,
button->sizeValue( button->sizeValue(

View file

@ -516,10 +516,10 @@ void ReactionsSettingsBox(
} }
} }
for (const auto &r : list) { for (const auto &r : list) {
const auto button = Settings::AddButton( const auto button = container->add(object_ptr<Ui::SettingsButton>(
container, container,
rpl::single<QString>(base::duplicate(r.title)), rpl::single<QString>(base::duplicate(r.title)),
st::settingsButton); st::settingsButton));
const auto premium = r.premium; const auto premium = r.premium;
if (premium && !premiumPossible) { if (premium && !premiumPossible) {

View file

@ -269,7 +269,7 @@ void RingtonesBox(
rebuild(); rebuild();
const auto upload = box->addRow( const auto upload = box->addRow(
Settings::CreateButton( Settings::CreateButtonWithIcon(
container, container,
tr::lng_ringtones_box_upload_button(), tr::lng_ringtones_box_upload_button(),
st::ringtonesBoxButton, st::ringtonesBoxButton,

View file

@ -940,7 +940,7 @@ void SessionsContent::Inner::setupContent() {
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0); object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
const auto terminateInner = terminateWrap->entity(); const auto terminateInner = terminateWrap->entity();
_terminateAll = terminateInner->add( _terminateAll = terminateInner->add(
CreateButton( CreateButtonWithIcon(
terminateInner, terminateInner,
tr::lng_sessions_terminate_all(), tr::lng_sessions_terminate_all(),
st::infoBlockButton, st::infoBlockButton,

View file

@ -1683,7 +1683,7 @@ void Members::setupAddMember(not_null<GroupCall*> call) {
} }
return; return;
} }
auto addMember = Settings::CreateButton( auto addMember = Settings::CreateButtonWithIcon(
_layout.get(), _layout.get(),
tr::lng_group_call_invite(), tr::lng_group_call_invite(),
st::groupCallAddMember, st::groupCallAddMember,

View file

@ -280,10 +280,10 @@ void SettingsBox(
Ui::AddSkip(layout); Ui::AddSkip(layout);
} }
const auto muteJoined = addCheck const auto muteJoined = addCheck
? AddButton( ? layout->add(object_ptr<Ui::SettingsButton>(
layout, layout,
tr::lng_group_call_new_muted(), tr::lng_group_call_new_muted(),
st::groupCallSettingsButton)->toggleOn(rpl::single(joinMuted)) st::groupCallSettingsButton))->toggleOn(rpl::single(joinMuted))
: nullptr; : nullptr;
if (addCheck) { if (addCheck) {
Ui::AddSkip(layout); Ui::AddSkip(layout);
@ -347,11 +347,11 @@ void SettingsBox(
//Ui::AddDivider(layout); //Ui::AddDivider(layout);
//Ui::AddSkip(layout); //Ui::AddSkip(layout);
AddButton( layout->add(object_ptr<Ui::SettingsButton>(
layout, layout,
tr::lng_group_call_noise_suppression(), tr::lng_group_call_noise_suppression(),
st::groupCallSettingsButton st::groupCallSettingsButton
)->toggleOn(rpl::single( ))->toggleOn(rpl::single(
settings.groupCallNoiseSuppression() settings.groupCallNoiseSuppression()
))->toggledChanges( ))->toggledChanges(
) | rpl::start_with_next([=](bool enabled) { ) | rpl::start_with_next([=](bool enabled) {
@ -390,11 +390,12 @@ void SettingsBox(
tryFillFromManager(); tryFillFromManager();
state->delay = settings.groupCallPushToTalkDelay(); state->delay = settings.groupCallPushToTalkDelay();
const auto pushToTalk = AddButton( const auto pushToTalk = layout->add(
layout, object_ptr<Ui::SettingsButton>(
tr::lng_group_call_push_to_talk(), layout,
st::groupCallSettingsButton tr::lng_group_call_push_to_talk(),
)->toggleOn(rpl::single( st::groupCallSettingsButton
))->toggleOn(rpl::single(
settings.groupCallPushToTalk() settings.groupCallPushToTalk()
) | rpl::then(state->pushToTalkToggles.events())); ) | rpl::then(state->pushToTalkToggles.events()));
const auto pushToTalkWrap = layout->add( const auto pushToTalkWrap = layout->add(
@ -402,10 +403,11 @@ void SettingsBox(
layout, layout,
object_ptr<Ui::VerticalLayout>(layout))); object_ptr<Ui::VerticalLayout>(layout)));
const auto pushToTalkInner = pushToTalkWrap->entity(); const auto pushToTalkInner = pushToTalkWrap->entity();
const auto recording = AddButton( const auto recording = pushToTalkInner->add(
pushToTalkInner, object_ptr<Ui::SettingsButton>(
state->recordText.value(), pushToTalkInner,
st::groupCallSettingsButton); state->recordText.value(),
st::groupCallSettingsButton));
CreateRightLabel( CreateRightLabel(
recording, recording,
state->shortcutText.value(), state->shortcutText.value(),
@ -645,11 +647,11 @@ void SettingsBox(
} }
} }
if (shareLink) { if (shareLink) {
AddButton( layout->add(object_ptr<Ui::SettingsButton>(
layout, layout,
tr::lng_group_call_share(), tr::lng_group_call_share(),
st::groupCallSettingsButton st::groupCallSettingsButton
)->addClickHandler(std::move(shareLink)); ))->addClickHandler(std::move(shareLink));
} }
if (rtmp && !call->rtmpInfo().url.isEmpty()) { if (rtmp && !call->rtmpInfo().url.isEmpty()) {
Ui::AddSkip(layout); Ui::AddSkip(layout);
@ -741,13 +743,13 @@ void SettingsBox(
} }
if (peer->canManageGroupCall()) { if (peer->canManageGroupCall()) {
AddButton( layout->add(object_ptr<Ui::SettingsButton>(
layout, layout,
(peer->isBroadcast() (peer->isBroadcast()
? tr::lng_group_call_end_channel() ? tr::lng_group_call_end_channel()
: tr::lng_group_call_end()), : tr::lng_group_call_end()),
st::groupCallSettingsAttentionButton st::groupCallSettingsAttentionButton
)->addClickHandler([=] { ))->addClickHandler([=] {
if (const auto call = weakCall.get()) { if (const auto call = weakCall.get()) {
box->getDelegate()->show(Box( box->getDelegate()->show(Box(
LeaveBox, LeaveBox,

View file

@ -662,7 +662,7 @@ void DraftOptionsBox(
const auto item = state->quote.current().item; const auto item = state->quote.current().item;
if (item->allowsForward()) { if (item->allowsForward()) {
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
tr::lng_reply_in_another_chat(), tr::lng_reply_in_another_chat(),
st::settingsButton, st::settingsButton,
@ -673,7 +673,7 @@ void DraftOptionsBox(
} }
const auto weak = Ui::MakeWeak(box); const auto weak = Ui::MakeWeak(box);
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
tr::lng_reply_show_in_chat(), tr::lng_reply_show_in_chat(),
st::settingsButton, st::settingsButton,
@ -685,7 +685,7 @@ void DraftOptionsBox(
} }
}); });
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
tr::lng_reply_remove(), tr::lng_reply_remove(),
st::settingsAttentionButtonWithIcon, st::settingsAttentionButtonWithIcon,
@ -703,7 +703,7 @@ void DraftOptionsBox(
AddFilledSkip(bottom); AddFilledSkip(bottom);
if (!draft.textWithTags.empty()) { if (!draft.textWithTags.empty()) {
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
(state->webpage.invert (state->webpage.invert
? tr::lng_link_move_down() ? tr::lng_link_move_down()
@ -723,7 +723,7 @@ void DraftOptionsBox(
const auto small = state->webpage.forceSmallMedia const auto small = state->webpage.forceSmallMedia
|| (!state->webpage.forceLargeMedia || (!state->webpage.forceLargeMedia
&& state->preview->computeDefaultSmallMedia()); && state->preview->computeDefaultSmallMedia());
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
(small (small
? tr::lng_link_enlarge_photo() ? tr::lng_link_enlarge_photo()
@ -743,7 +743,7 @@ void DraftOptionsBox(
}); });
} }
Settings::AddButton( Settings::AddButtonWithIcon(
bottom, bottom,
tr::lng_link_remove(), tr::lng_link_remove(),
st::settingsAttentionButtonWithIcon, st::settingsAttentionButtonWithIcon,

View file

@ -438,7 +438,7 @@ void EditWebPageOptions(
.result = draft, .result = draft,
}); });
state->large = Settings::AddButton( state->large = Settings::AddButtonWithIcon(
box->verticalLayout(), box->verticalLayout(),
rpl::single(u"Force large media"_q), rpl::single(u"Force large media"_q),
st::settingsButton, st::settingsButton,
@ -450,7 +450,7 @@ void EditWebPageOptions(
state->result = copy; state->result = copy;
}); });
state->small = Settings::AddButton( state->small = Settings::AddButtonWithIcon(
box->verticalLayout(), box->verticalLayout(),
rpl::single(u"Force small media"_q), rpl::single(u"Force small media"_q),
st::settingsButton, st::settingsButton,
@ -472,7 +472,7 @@ void EditWebPageOptions(
: std::optional<QColor>()); : std::optional<QColor>());
}, box->lifetime()); }, box->lifetime());
Settings::AddButton( Settings::AddButtonWithIcon(
box->verticalLayout(), box->verticalLayout(),
state->result.value( state->result.value(
) | rpl::map([=](const Data::WebPageDraft &draft) { ) | rpl::map([=](const Data::WebPageDraft &draft) {

View file

@ -536,7 +536,7 @@ void CreateGiveawayBox(
}))); })));
using IconType = Settings::IconType; using IconType = Settings::IconType;
Settings::AddButton( Settings::AddButtonWithIcon(
channelsContainer, channelsContainer,
tr::lng_giveaway_channels_add(), tr::lng_giveaway_channels_add(),
st::giveawayGiftCodeChannelsAddButton, st::giveawayGiftCodeChannelsAddButton,

View file

@ -67,7 +67,7 @@ inline auto AddCountedButton(
}); });
auto button = parent->add(object_ptr<Ui::SlideWrap<Button>>( auto button = parent->add(object_ptr<Ui::SlideWrap<Button>>(
parent, parent,
CreateButton( object_ptr<Button>(
parent, parent,
std::move(text), std::move(text),
st::infoSharedMediaButton)) st::infoSharedMediaButton))

View file

@ -123,10 +123,10 @@ void InnerWidget::createButtons() {
const auto key = _controller->key(); const auto key = _controller->key();
const auto peer = key.storiesPeer(); const auto peer = key.storiesPeer();
const auto stories = &peer->owner().stories(); const auto stories = &peer->owner().stories();
const auto archive = ::Settings::AddButton( const auto archive = _top->add(object_ptr<Ui::SettingsButton>(
_top, _top,
tr::lng_stories_archive_button(), tr::lng_stories_archive_button(),
st::infoSharedMediaButton); st::infoSharedMediaButton));
archive->addClickHandler([=] { archive->addClickHandler([=] {
_controller->showSection(Info::Stories::Make( _controller->showSection(Info::Stories::Make(
_controller->key().storiesPeer(), _controller->key().storiesPeer(),
@ -156,7 +156,7 @@ void InnerWidget::createButtons() {
const auto recentWrap = _top->add( const auto recentWrap = _top->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
_top, _top,
::Settings::CreateButton( object_ptr<Ui::SettingsButton>(
_top, _top,
tr::lng_stories_recent_button(), tr::lng_stories_recent_button(),
st::infoSharedMediaButton))); st::infoSharedMediaButton)));

View file

@ -66,11 +66,11 @@ BottomButton CreateBottomDisableButton(
Ui::AddSkip(content); Ui::AddSkip(content);
AddButton( content->add(object_ptr<Button>(
content, content,
std::move(buttonText), std::move(buttonText),
st::settingsAttentionButton st::settingsAttentionButton
)->addClickHandler(std::move(callback)); ))->addClickHandler(std::move(callback));
const auto divider = Ui::CreateChild<OneEdgeBoxContentDivider>( const auto divider = Ui::CreateChild<OneEdgeBoxContentDivider>(
parent.get()); parent.get());

View file

@ -129,7 +129,7 @@ void Manage::setupContent() {
u"cloud_password/intro"_q); u"cloud_password/intro"_q);
Ui::AddSkip(content); Ui::AddSkip(content);
AddButton( AddButtonWithIcon(
content, content,
tr::lng_settings_cloud_password_manage_password_change(), tr::lng_settings_cloud_password_manage_password_change(),
st::settingsButton, st::settingsButton,
@ -137,7 +137,7 @@ void Manage::setupContent() {
)->setClickedCallback([=] { )->setClickedCallback([=] {
showOtherAndRememberPassword(CloudPasswordInputId()); showOtherAndRememberPassword(CloudPasswordInputId());
}); });
AddButton( AddButtonWithIcon(
content, content,
state->hasRecovery state->hasRecovery
? tr::lng_settings_cloud_password_manage_email_change() ? tr::lng_settings_cloud_password_manage_email_change()

View file

@ -119,12 +119,12 @@ void SetupUpdate(not_null<Ui::VerticalLayout*> container) {
tr::now, tr::now,
lt_version, lt_version,
currentVersionText()); currentVersionText());
const auto toggle = AddButton( const auto toggle = container->add(object_ptr<Button>(
container, container,
tr::lng_settings_update_automatically(), tr::lng_settings_update_automatically(),
st::settingsUpdateToggle); st::settingsUpdateToggle));
const auto label = Ui::CreateChild<Ui::FlatLabel>( const auto label = Ui::CreateChild<Ui::FlatLabel>(
toggle.get(), toggle,
texts->events(), texts->events(),
st::settingsUpdateState); st::settingsUpdateState);
@ -133,17 +133,19 @@ void SetupUpdate(not_null<Ui::VerticalLayout*> container) {
container, container,
object_ptr<Ui::VerticalLayout>(container))); object_ptr<Ui::VerticalLayout>(container)));
const auto inner = options->entity(); const auto inner = options->entity();
const auto install = cAlphaVersion() ? nullptr : AddButton( const auto install = cAlphaVersion()
inner, ? nullptr
tr::lng_settings_install_beta(), : inner->add(object_ptr<Button>(
st::settingsButtonNoIcon).get(); inner,
tr::lng_settings_install_beta(),
st::settingsButtonNoIcon));
const auto check = AddButton( const auto check = inner->add(object_ptr<Button>(
inner, inner,
tr::lng_settings_check_now(), tr::lng_settings_check_now(),
st::settingsButtonNoIcon); st::settingsButtonNoIcon));
const auto update = Ui::CreateChild<Button>( const auto update = Ui::CreateChild<Button>(
check.get(), check,
tr::lng_update_telegram(), tr::lng_update_telegram(),
st::settingsUpdate); st::settingsUpdate);
update->hide(); update->hide();
@ -286,13 +288,13 @@ void SetupSpellchecker(
const auto session = &controller->session(); const auto session = &controller->session();
const auto settings = &Core::App().settings(); const auto settings = &Core::App().settings();
const auto isSystem = Platform::Spellchecker::IsSystemSpellchecker(); const auto isSystem = Platform::Spellchecker::IsSystemSpellchecker();
const auto button = AddButton( const auto button = container->add(object_ptr<Button>(
container, container,
isSystem isSystem
? tr::lng_settings_system_spellchecker() ? tr::lng_settings_system_spellchecker()
: tr::lng_settings_custom_spellchecker(), : tr::lng_settings_custom_spellchecker(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
rpl::single(settings->spellcheckerEnabled()) rpl::single(settings->spellcheckerEnabled())
); );
@ -313,11 +315,11 @@ void SetupSpellchecker(
container, container,
object_ptr<Ui::VerticalLayout>(container))); object_ptr<Ui::VerticalLayout>(container)));
AddButton( sliding->entity()->add(object_ptr<Button>(
sliding->entity(), sliding->entity(),
tr::lng_settings_auto_download_dictionaries(), tr::lng_settings_auto_download_dictionaries(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
rpl::single(settings->autoDownloadDictionaries()) rpl::single(settings->autoDownloadDictionaries())
)->toggledValue( )->toggledValue(
) | rpl::filter([=](bool enabled) { ) | rpl::filter([=](bool enabled) {
@ -709,13 +711,11 @@ void SetupWindowTitleOptions(
void SetupAnimations( void SetupAnimations(
not_null<Window::Controller*> window, not_null<Window::Controller*> window,
not_null<Ui::VerticalLayout*> container) { not_null<Ui::VerticalLayout*> container) {
AddButton( container->add(object_ptr<Button>(
container, container,
tr::lng_settings_power_menu(), tr::lng_settings_power_menu(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->setClickedCallback([=] { ))->setClickedCallback([=] { window->show(Box(PowerSavingBox)); });
window->show(Box(PowerSavingBox));
});
} }
void ArchiveSettingsBox( void ArchiveSettingsBox(
@ -740,11 +740,11 @@ void ArchiveSettingsBox(
AddSubsectionTitle(container, tr::lng_settings_unmuted_chats()); AddSubsectionTitle(container, tr::lng_settings_unmuted_chats());
using Unarchive = Api::UnarchiveOnNewMessage; using Unarchive = Api::UnarchiveOnNewMessage;
AddButton( container->add(object_ptr<Button>(
container, container,
tr::lng_settings_always_in_archive(), tr::lng_settings_always_in_archive(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn(privacy->unarchiveOnNewMessage( ))->toggleOn(privacy->unarchiveOnNewMessage(
) | rpl::map( ) | rpl::map(
rpl::mappers::_1 == Unarchive::None rpl::mappers::_1 == Unarchive::None
))->toggledChanges( ))->toggledChanges(
@ -771,11 +771,11 @@ void ArchiveSettingsBox(
AddSkip(inner); AddSkip(inner);
AddSubsectionTitle(inner, tr::lng_settings_chats_from_folders()); AddSubsectionTitle(inner, tr::lng_settings_chats_from_folders());
state->folders = AddButton( state->folders = inner->add(object_ptr<Button>(
inner, inner,
tr::lng_settings_always_in_archive(), tr::lng_settings_always_in_archive(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn(privacy->unarchiveOnNewMessage( ))->toggleOn(privacy->unarchiveOnNewMessage(
) | rpl::map( ) | rpl::map(
rpl::mappers::_1 != Unarchive::AnyUnmuted rpl::mappers::_1 != Unarchive::AnyUnmuted
)); ));
@ -808,11 +808,11 @@ void PreloadArchiveSettings(not_null<::Main::Session*> session) {
void SetupHardwareAcceleration(not_null<Ui::VerticalLayout*> container) { void SetupHardwareAcceleration(not_null<Ui::VerticalLayout*> container) {
const auto settings = &Core::App().settings(); const auto settings = &Core::App().settings();
AddButton( container->add(object_ptr<Button>(
container, container,
tr::lng_settings_enable_hwaccel(), tr::lng_settings_enable_hwaccel(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
rpl::single(settings->hardwareAcceleratedVideo()) rpl::single(settings->hardwareAcceleratedVideo())
)->toggledValue( )->toggledValue(
) | rpl::filter([=](bool enabled) { ) | rpl::filter([=](bool enabled) {
@ -904,11 +904,11 @@ void SetupOpenGL(
const auto toggles = container->lifetime().make_state< const auto toggles = container->lifetime().make_state<
rpl::event_stream<bool> rpl::event_stream<bool>
>(); >();
const auto button = AddButton( const auto button = container->add(object_ptr<Button>(
container, container,
tr::lng_settings_enable_opengl(), tr::lng_settings_enable_opengl(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
toggles->events_starting_with_copy( toggles->events_starting_with_copy(
!Core::App().settings().disableOpenGL()) !Core::App().settings().disableOpenGL())
); );

View file

@ -77,7 +77,7 @@ QPointer<Ui::RpWidget> Blocked::createPinnedToTop(not_null<QWidget*> parent) {
Ui::AddSkip(content); Ui::AddSkip(content);
AddButton( AddButtonWithIcon(
content, content,
tr::lng_blocked_list_add(), tr::lng_blocked_list_add(),
st::settingsButtonActive, st::settingsButtonActive,

View file

@ -292,11 +292,11 @@ void Calls::setupContent() {
Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_other()); Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_other());
const auto api = &_controller->session().api(); const auto api = &_controller->session().api();
AddButton( content->add(object_ptr<Ui::SettingsButton>(
content, content,
tr::lng_settings_call_accept_calls(), tr::lng_settings_call_accept_calls(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
api->authorizations().callsDisabledHereValue( api->authorizations().callsDisabledHereValue(
) | rpl::map(!rpl::mappers::_1) ) | rpl::map(!rpl::mappers::_1)
)->toggledChanges( )->toggledChanges(
@ -306,11 +306,11 @@ void Calls::setupContent() {
api->authorizations().toggleCallsDisabledHere(!value); api->authorizations().toggleCallsDisabledHere(!value);
}, content->lifetime()); }, content->lifetime());
AddButton( content->add(object_ptr<Ui::SettingsButton>(
content, content,
tr::lng_settings_call_open_system_prefs(), tr::lng_settings_call_open_system_prefs(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->addClickHandler([=] { ))->addClickHandler([=] {
const auto opened = Platform::OpenSystemSettings( const auto opened = Platform::OpenSystemSettings(
Platform::SystemSettingsType::Audio); Platform::SystemSettingsType::Audio);
if (!opened) { if (!opened) {

View file

@ -804,7 +804,7 @@ void SetupStickersEmoji(
Core::App().saveSettingsDelayed(); Core::App().saveSettingsDelayed();
}); });
AddButton( AddButtonWithIcon(
container, container,
tr::lng_stickers_you_have(), tr::lng_stickers_you_have(),
st::settingsButton, st::settingsButton,
@ -815,7 +815,7 @@ void SetupStickersEmoji(
StickersBox::Section::Installed)); StickersBox::Section::Installed));
}); });
AddButton( AddButtonWithIcon(
container, container,
tr::lng_emoji_manage_sets(), tr::lng_emoji_manage_sets(),
st::settingsButton, st::settingsButton,
@ -1024,7 +1024,7 @@ void SetupArchive(
Ui::AddSkip(container); Ui::AddSkip(container);
PreloadArchiveSettings(&controller->session()); PreloadArchiveSettings(&controller->session());
AddButton( AddButtonWithIcon(
container, container,
tr::lng_context_archive_settings(), tr::lng_context_archive_settings(),
st::settingsButton, st::settingsButton,
@ -1038,7 +1038,7 @@ void SetupExport(
not_null<Window::SessionController*> controller, not_null<Window::SessionController*> controller,
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
Fn<void(Type)> showOther) { Fn<void(Type)> showOther) {
AddButton( AddButtonWithIcon(
container, container,
tr::lng_settings_export_data(), tr::lng_settings_export_data(),
st::settingsButton, st::settingsButton,
@ -1052,7 +1052,7 @@ void SetupExport(
[=] { Core::App().exportManager().start(session); }); [=] { Core::App().exportManager().start(session); });
}); });
AddButton( AddButtonWithIcon(
container, container,
tr::lng_settings_experimental(), tr::lng_settings_experimental(),
st::settingsButton, st::settingsButton,
@ -1065,7 +1065,7 @@ void SetupExport(
void SetupLocalStorage( void SetupLocalStorage(
not_null<Window::SessionController*> controller, not_null<Window::SessionController*> controller,
not_null<Ui::VerticalLayout*> container) { not_null<Ui::VerticalLayout*> container) {
AddButton( AddButtonWithIcon(
container, container,
tr::lng_settings_manage_local_storage(), tr::lng_settings_manage_local_storage(),
st::settingsButton, st::settingsButton,
@ -1096,7 +1096,7 @@ void SetupDataStorage(
const auto path = container->add( const auto path = container->add(
object_ptr<Ui::SlideWrap<Button>>( object_ptr<Ui::SlideWrap<Button>>(
container, container,
CreateButton( CreateButtonWithIcon(
container, container,
tr::lng_download_path(), tr::lng_download_path(),
st::settingsButton, st::settingsButton,
@ -1124,7 +1124,7 @@ void SetupDataStorage(
SetupLocalStorage(controller, container); SetupLocalStorage(controller, container);
AddButton( AddButtonWithIcon(
container, container,
tr::lng_downloads_section(), tr::lng_downloads_section(),
st::settingsButton, st::settingsButton,
@ -1134,11 +1134,11 @@ void SetupDataStorage(
Info::Downloads::Make(controller->session().user())); Info::Downloads::Make(controller->session().user()));
}); });
const auto ask = AddButton( const auto ask = container->add(object_ptr<Ui::SettingsButton>(
container, container,
tr::lng_download_path_ask(), tr::lng_download_path_ask(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn(rpl::single(Core::App().settings().askDownloadPath())); ))->toggleOn(rpl::single(Core::App().settings().askDownloadPath()));
ask->toggledValue( ask->toggledValue(
) | rpl::filter([](bool checked) { ) | rpl::filter([](bool checked) {
@ -1173,7 +1173,7 @@ void SetupAutoDownload(
rpl::producer<QString> label, rpl::producer<QString> label,
Source source, Source source,
IconDescriptor &&descriptor) { IconDescriptor &&descriptor) {
AddButton( AddButtonWithIcon(
container, container,
std::move(label), std::move(label),
st::settingsButton, st::settingsButton,
@ -1534,7 +1534,7 @@ void SetupCloudThemes(
const auto edit = editWrap->entity(); const auto edit = editWrap->entity();
Ui::AddSkip(edit, st::settingsThemesBottomSkip); Ui::AddSkip(edit, st::settingsThemesBottomSkip);
AddButton( AddButtonWithIcon(
edit, edit,
tr::lng_settings_bg_theme_edit(), tr::lng_settings_bg_theme_edit(),
st::settingsButton, st::settingsButton,

View file

@ -132,7 +132,7 @@ void AddButtonIcon(
}, icon->widget.lifetime()); }, icon->widget.lifetime());
} }
object_ptr<Button> CreateButton( object_ptr<Button> CreateButtonWithIcon(
not_null<QWidget*> parent, not_null<QWidget*> parent,
rpl::producer<QString> text, rpl::producer<QString> text,
const style::SettingsButton &st, const style::SettingsButton &st,
@ -145,13 +145,13 @@ object_ptr<Button> CreateButton(
return result; return result;
} }
not_null<Button*> AddButton( not_null<Button*> AddButtonWithIcon(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
rpl::producer<QString> text, rpl::producer<QString> text,
const style::SettingsButton &st, const style::SettingsButton &st,
IconDescriptor &&descriptor) { IconDescriptor &&descriptor) {
return container->add( return container->add(
CreateButton(container, std::move(text), st, std::move(descriptor))); CreateButtonWithIcon(container, std::move(text), st, std::move(descriptor)));
} }
void CreateRightLabel( void CreateRightLabel(
@ -189,7 +189,7 @@ not_null<Button*> AddButtonWithLabel(
rpl::producer<QString> label, rpl::producer<QString> label,
const style::SettingsButton &st, const style::SettingsButton &st,
IconDescriptor &&descriptor) { IconDescriptor &&descriptor) {
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
rpl::duplicate(text), rpl::duplicate(text),
st, st,

View file

@ -171,12 +171,12 @@ void AddButtonIcon(
not_null<Ui::AbstractButton*> button, not_null<Ui::AbstractButton*> button,
const style::SettingsButton &st, const style::SettingsButton &st,
IconDescriptor &&descriptor); IconDescriptor &&descriptor);
object_ptr<Button> CreateButton( object_ptr<Button> CreateButtonWithIcon(
not_null<QWidget*> parent, not_null<QWidget*> parent,
rpl::producer<QString> text, rpl::producer<QString> text,
const style::SettingsButton &st, const style::SettingsButton &st,
IconDescriptor &&descriptor = {}); IconDescriptor &&descriptor = {});
not_null<Button*> AddButton( not_null<Button*> AddButtonWithIcon(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
rpl::producer<QString> text, rpl::producer<QString> text,
const style::SettingsButton &st, const style::SettingsButton &st,

View file

@ -51,13 +51,13 @@ void AddOption(
option.defaultValue() option.defaultValue()
) | rpl::start_to_stream(*toggles, lifetime); ) | rpl::start_to_stream(*toggles, lifetime);
const auto button = AddButton( const auto button = container->add(object_ptr<Button>(
container, container,
rpl::single(name), rpl::single(name),
(option.relevant() (option.relevant()
? st::settingsButtonNoIcon ? st::settingsButtonNoIcon
: st::settingsOptionDisabled) : st::settingsOptionDisabled)
)->toggleOn(toggles->events_starting_with(option.value())); ))->toggleOn(toggles->events_starting_with(option.value()));
const auto restarter = (option.relevant() && option.restartRequired()) const auto restarter = (option.relevant() && option.restartRequired())
? button->lifetime().make_state<base::Timer>() ? button->lifetime().make_state<base::Timer>()
@ -115,10 +115,10 @@ void SetupExperimental(
const auto inner = wrap->entity(); const auto inner = wrap->entity();
Ui::AddDivider(inner); Ui::AddDivider(inner);
Ui::AddSkip(inner, st::settingsCheckboxesSkip); Ui::AddSkip(inner, st::settingsCheckboxesSkip);
reset = AddButton( reset = inner->add(object_ptr<Button>(
inner, inner,
tr::lng_settings_experimental_restore(), tr::lng_settings_experimental_restore(),
st::settingsButtonNoIcon); st::settingsButtonNoIcon));
reset->addClickHandler([=] { reset->addClickHandler([=] {
base::options::reset(); base::options::reset();
wrap->hide(anim::type::normal); wrap->hide(anim::type::normal);

View file

@ -540,7 +540,7 @@ void FilterRowButton::paintEvent(QPaintEvent *e) {
j->button->updateCount(j->filter); j->button->updateCount(j->filter);
}, container->lifetime()); }, container->lifetime());
AddButton( AddButtonWithIcon(
container, container,
tr::lng_filters_create(), tr::lng_filters_create(),
st::settingsButtonActive, st::settingsButtonActive,

View file

@ -285,14 +285,14 @@ void GlobalTTL::rebuildButtons(TimeId currentTTL) const {
_buttons->clear(); _buttons->clear();
for (const auto &ttl : ttls) { for (const auto &ttl : ttls) {
const auto ttlText = Ui::FormatTTLAfter(ttl); const auto ttlText = Ui::FormatTTLAfter(ttl);
const auto button = AddButton( const auto button = _buttons->add(object_ptr<Ui::SettingsButton>(
_buttons, _buttons,
(!ttl) (!ttl)
? tr::lng_settings_ttl_after_off() ? tr::lng_settings_ttl_after_off()
: tr::lng_settings_ttl_after( : tr::lng_settings_ttl_after(
lt_after_duration, lt_after_duration,
rpl::single(ttlText)), rpl::single(ttlText)),
st::settingsButtonNoIcon); st::settingsButtonNoIcon));
button->setClickedCallback([=] { button->setClickedCallback([=] {
if (_group->value() == ttl) { if (_group->value() == ttl) {
return; return;
@ -305,7 +305,7 @@ void GlobalTTL::rebuildButtons(TimeId currentTTL) const {
showSure(ttl, false); showSure(ttl, false);
}); });
const auto radio = Ui::CreateChild<Ui::Radiobutton>( const auto radio = Ui::CreateChild<Ui::Radiobutton>(
button.get(), button,
_group, _group,
ttl, ttl,
QString()); QString());
@ -344,10 +344,10 @@ void GlobalTTL::setupContent() {
} }
const auto show = _controller->uiShow(); const auto show = _controller->uiShow();
AddButton( content->add(object_ptr<Ui::SettingsButton>(
content, content,
tr::lng_settings_ttl_after_custom(), tr::lng_settings_ttl_after_custom(),
st::settingsButtonNoIcon)->setClickedCallback([=] { st::settingsButtonNoIcon))->setClickedCallback([=] {
struct Args { struct Args {
std::shared_ptr<Ui::Show> show; std::shared_ptr<Ui::Show> show;
TimeId startTtl; TimeId startTtl;

View file

@ -776,7 +776,7 @@ not_null<Ui::SlideWrap<Ui::SettingsButton>*> AccountsList::setupAdd() {
const auto result = _outer->add( const auto result = _outer->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
_outer.get(), _outer.get(),
CreateButton( CreateButtonWithIcon(
_outer.get(), _outer.get(),
tr::lng_menu_add_account(), tr::lng_menu_add_account(),
st::mainMenuAddAccountButton, st::mainMenuAddAccountButton,

View file

@ -440,7 +440,7 @@ void LocalPasscodeManage::setupContent() {
Ui::AddSkip(content); Ui::AddSkip(content);
AddButton( AddButtonWithIcon(
content, content,
tr::lng_passcode_change(), tr::lng_passcode_change(),
st::settingsButton, st::settingsButton,

View file

@ -261,7 +261,7 @@ void Cover::refreshUsernameGeometry(int newWidth) {
void SetupPowerSavingButton( void SetupPowerSavingButton(
not_null<Window::Controller*> window, not_null<Window::Controller*> window,
not_null<Ui::VerticalLayout*> container) { not_null<Ui::VerticalLayout*> container) {
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
tr::lng_settings_power_menu(), tr::lng_settings_power_menu(),
st::settingsButton, st::settingsButton,
@ -306,7 +306,7 @@ void SetupSections(
rpl::producer<QString> label, rpl::producer<QString> label,
Type type, Type type,
IconDescriptor &&descriptor) { IconDescriptor &&descriptor) {
AddButton( AddButtonWithIcon(
container, container,
std::move(label), std::move(label),
st::settingsButton, st::settingsButton,
@ -347,7 +347,7 @@ void SetupSections(
const auto slided = container->add( const auto slided = container->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
container, container,
CreateButton( CreateButtonWithIcon(
container, container,
tr::lng_settings_section_filters(), tr::lng_settings_section_filters(),
st::settingsButton, st::settingsButton,
@ -408,7 +408,7 @@ void SetupPremium(
Ui::AddDivider(container); Ui::AddDivider(container);
Ui::AddSkip(container); Ui::AddSkip(container);
AddButton( AddButtonWithIcon(
container, container,
tr::lng_premium_summary_title(), tr::lng_premium_summary_title(),
st::settingsButton, st::settingsButton,
@ -436,7 +436,7 @@ void SetupInterfaceScale(
container.get()); container.get());
const auto switched = (cConfigScale() == style::kScaleAuto); const auto switched = (cConfigScale() == style::kScaleAuto);
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
tr::lng_settings_default_scale(), tr::lng_settings_default_scale(),
icon ? st::settingsButton : st::settingsButtonNoIcon, icon ? st::settingsButton : st::settingsButtonNoIcon,
@ -580,7 +580,7 @@ void OpenFaq() {
} }
void SetupFaq(not_null<Ui::VerticalLayout*> container, bool icon) { void SetupFaq(not_null<Ui::VerticalLayout*> container, bool icon) {
AddButton( AddButtonWithIcon(
container, container,
tr::lng_settings_faq(), tr::lng_settings_faq(),
icon ? st::settingsButton : st::settingsButtonNoIcon, icon ? st::settingsButton : st::settingsButtonNoIcon,
@ -596,7 +596,7 @@ void SetupHelp(
SetupFaq(container); SetupFaq(container);
AddButton( AddButtonWithIcon(
container, container,
tr::lng_settings_features(), tr::lng_settings_features(),
st::settingsButton, st::settingsButton,
@ -605,7 +605,7 @@ void SetupHelp(
UrlClickHandler::Open(tr::lng_telegram_features_url(tr::now)); UrlClickHandler::Open(tr::lng_telegram_features_url(tr::now));
}); });
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
tr::lng_settings_ask_question(), tr::lng_settings_ask_question(),
st::settingsButton, st::settingsButton,

View file

@ -166,7 +166,7 @@ void AddTypeButton(
} }
Unexpected("Type value in AddTypeButton."); Unexpected("Type value in AddTypeButton.");
}(); }();
const auto button = AddButton( const auto button = AddButtonWithIcon(
container, container,
std::move(label), std::move(label),
st::settingsNotificationType, st::settingsNotificationType,
@ -917,11 +917,11 @@ void SetupMultiAccountNotifications(
} }
Ui::AddSubsectionTitle(container, tr::lng_settings_show_from()); Ui::AddSubsectionTitle(container, tr::lng_settings_show_from());
const auto fromAll = AddButton( const auto fromAll = container->add(object_ptr<Button>(
container, container,
tr::lng_settings_notify_all(), tr::lng_settings_notify_all(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn(rpl::single(Core::App().settings().notifyFromAll())); ))->toggleOn(rpl::single(Core::App().settings().notifyFromAll()));
fromAll->toggledChanges( fromAll->toggledChanges(
) | rpl::filter([](bool checked) { ) | rpl::filter([](bool checked) {
return (checked != Core::App().settings().notifyFromAll()); return (checked != Core::App().settings().notifyFromAll());
@ -964,7 +964,7 @@ void SetupNotificationsContent(
rpl::producer<QString> label, rpl::producer<QString> label,
IconDescriptor &&descriptor, IconDescriptor &&descriptor,
rpl::producer<bool> checked) { rpl::producer<bool> checked) {
auto result = CreateButton( auto result = CreateButtonWithIcon(
container, container,
std::move(label), std::move(label),
st::settingsButton, st::settingsButton,
@ -1098,15 +1098,15 @@ void SetupNotificationsContent(
Ui::AddSkip(container, st::settingsCheckboxesSkip); Ui::AddSkip(container, st::settingsCheckboxesSkip);
Ui::AddSubsectionTitle(container, tr::lng_settings_badge_title()); Ui::AddSubsectionTitle(container, tr::lng_settings_badge_title());
const auto muted = AddButton( const auto muted = container->add(object_ptr<Button>(
container, container,
tr::lng_settings_include_muted(), tr::lng_settings_include_muted(),
st::settingsButtonNoIcon); st::settingsButtonNoIcon));
muted->toggleOn(rpl::single(settings.includeMutedCounter())); muted->toggleOn(rpl::single(settings.includeMutedCounter()));
const auto count = AddButton( const auto count = container->add(object_ptr<Button>(
container, container,
tr::lng_settings_count_unread(), tr::lng_settings_count_unread(),
st::settingsButtonNoIcon); st::settingsButtonNoIcon));
count->toggleOn(rpl::single(settings.countUnreadMessages())); count->toggleOn(rpl::single(settings.countUnreadMessages()));
auto nativeText = [&] { auto nativeText = [&] {
@ -1127,11 +1127,11 @@ void SetupNotificationsContent(
Ui::AddDivider(container); Ui::AddDivider(container);
Ui::AddSkip(container, st::settingsCheckboxesSkip); Ui::AddSkip(container, st::settingsCheckboxesSkip);
Ui::AddSubsectionTitle(container, tr::lng_settings_native_title()); Ui::AddSubsectionTitle(container, tr::lng_settings_native_title());
return AddButton( return container->add(object_ptr<Button>(
container, container,
std::move(nativeText), std::move(nativeText),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn(rpl::single(settings.nativeNotifications())); ))->toggleOn(rpl::single(settings.nativeNotifications()));
}(); }();
const auto advancedSlide = !Platform::Notifications::Enforced() const auto advancedSlide = !Platform::Notifications::Enforced()

View file

@ -385,7 +385,7 @@ void SetupChecks(
const auto settings = &session->data().notifySettings(); const auto settings = &session->data().notifySettings();
const auto enabled = container->add( const auto enabled = container->add(
CreateButton( CreateButtonWithIcon(
container, container,
tr::lng_notification_enable(), tr::lng_notification_enable(),
st::settingsButton, st::settingsButton,
@ -424,7 +424,7 @@ void SetupChecks(
return !sound || !sound->none; return !sound || !sound->none;
}; };
const auto sound = soundInner->add( const auto sound = soundInner->add(
CreateButton( CreateButtonWithIcon(
soundInner, soundInner,
tr::lng_notification_sound(), tr::lng_notification_sound(),
st::settingsButton, st::settingsButton,
@ -503,7 +503,7 @@ void SetupExceptions(
not_null<Ui::VerticalLayout*> container, not_null<Ui::VerticalLayout*> container,
not_null<Window::SessionController*> window, not_null<Window::SessionController*> window,
Notify type) { Notify type) {
const auto add = AddButton( const auto add = AddButtonWithIcon(
container, container,
tr::lng_notification_exceptions_add(), tr::lng_notification_exceptions_add(),
st::settingsButtonActive, st::settingsButtonActive,
@ -547,7 +547,7 @@ void SetupExceptions(
const auto wrap = container->add( const auto wrap = container->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
container, container,
CreateButton( CreateButtonWithIcon(
container, container,
tr::lng_notification_exceptions_clear(), tr::lng_notification_exceptions_clear(),
st::settingsAttentionButtonWithIcon, st::settingsAttentionButtonWithIcon,

View file

@ -67,11 +67,11 @@ void PowerSavingBox(not_null<Ui::GenericBox*> box) {
Ui::AddSkip(container); Ui::AddSkip(container);
Ui::AddDivider(container); Ui::AddDivider(container);
Ui::AddSkip(container); Ui::AddSkip(container);
automatic = AddButton( automatic = container->add(object_ptr<Ui::SettingsButton>(
container, container,
tr::lng_settings_power_auto(), tr::lng_settings_power_auto(),
st::powerSavingButtonNoIcon st::powerSavingButtonNoIcon
)->toggleOn(rpl::single(!ignore)); ))->toggleOn(rpl::single(!ignore));
Ui::AddSkip(container); Ui::AddSkip(container);
Ui::AddDividerText(container, tr::lng_settings_power_auto_about()); Ui::AddDividerText(container, tr::lng_settings_power_auto_about());

View file

@ -1089,7 +1089,7 @@ object_ptr<Ui::RpWidget> ProfilePhotoPrivacyController::setupMiddleWidget(
st::inviteLinkUserpics.size); st::inviteLinkUserpics.size);
Ui::AddSkip(container); Ui::AddSkip(container);
const auto setUserpicButton = AddButton( const auto setUserpicButton = AddButtonWithIcon(
container, container,
state->setUserpicButtonText.value(), state->setUserpicButtonText.value(),
st::settingsButtonLight, st::settingsButtonLight,

View file

@ -134,23 +134,23 @@ void AddPremiumPrivacyButton(
const auto shower = Ui::CreateChild<rpl::lifetime>(container.get()); const auto shower = Ui::CreateChild<rpl::lifetime>(container.get());
const auto session = &controller->session(); const auto session = &controller->session();
const auto &st = st::settingsButtonNoIcon; const auto &st = st::settingsButtonNoIcon;
const auto button = AddButton( const auto button = container->add(object_ptr<Button>(
container, container,
rpl::duplicate(label), rpl::duplicate(label),
st); st));
struct State { struct State {
State(QWidget *parent) : widget(parent) { State(QWidget *parent) : widget(parent) {
widget.setAttribute(Qt::WA_TransparentForMouseEvents); widget.setAttribute(Qt::WA_TransparentForMouseEvents);
} }
Ui::RpWidget widget; Ui::RpWidget widget;
}; };
const auto state = button->lifetime().make_state<State>(button.get()); const auto state = button->lifetime().make_state<State>(button);
using WeakToast = base::weak_ptr<Ui::Toast::Instance>; using WeakToast = base::weak_ptr<Ui::Toast::Instance>;
const auto toast = std::make_shared<WeakToast>(); const auto toast = std::make_shared<WeakToast>();
{ {
const auto rightLabel = Ui::CreateChild<Ui::FlatLabel>( const auto rightLabel = Ui::CreateChild<Ui::FlatLabel>(
button.get(), button,
st.rightLabel); st.rightLabel);
state->widget.resize(st::settingsPremiumLock.size()); state->widget.resize(st::settingsPremiumLock.size());
@ -437,11 +437,11 @@ void SetupSensitiveContent(
) | rpl::start_with_next([=] { ) | rpl::start_with_next([=] {
session->api().sensitiveContent().reload(); session->api().sensitiveContent().reload();
}, container->lifetime()); }, container->lifetime());
AddButton( inner->add(object_ptr<Button>(
inner, inner,
tr::lng_settings_sensitive_disable_filtering(), tr::lng_settings_sensitive_disable_filtering(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
session->api().sensitiveContent().enabled() session->api().sensitiveContent().enabled()
)->toggledChanges( )->toggledChanges(
) | rpl::filter([=](bool toggled) { ) | rpl::filter([=](bool toggled) {
@ -556,11 +556,11 @@ void SetupBotsAndWebsites(
Ui::AddSubsectionTitle(container, tr::lng_settings_security_bots()); Ui::AddSubsectionTitle(container, tr::lng_settings_security_bots());
const auto session = &controller->session(); const auto session = &controller->session();
AddButton( container->add(object_ptr<Button>(
container, container,
tr::lng_settings_clear_payment_info(), tr::lng_settings_clear_payment_info(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->addClickHandler([=] { ))->addClickHandler([=] {
controller->show(ClearPaymentInfoBox(session)); controller->show(ClearPaymentInfoBox(session));
}); });
@ -856,11 +856,11 @@ void SetupArchiveAndMute(
const auto privacy = &session->api().globalPrivacy(); const auto privacy = &session->api().globalPrivacy();
privacy->reload(); privacy->reload();
AddButton( inner->add(object_ptr<Button>(
inner, inner,
tr::lng_settings_auto_archive(), tr::lng_settings_auto_archive(),
st::settingsButtonNoIcon st::settingsButtonNoIcon
)->toggleOn( ))->toggleOn(
privacy->archiveAndMute() privacy->archiveAndMute()
)->toggledChanges( )->toggledChanges(
) | rpl::filter([=](bool toggled) { ) | rpl::filter([=](bool toggled) {

View file

@ -605,7 +605,7 @@ void Content::Inner::setupContent() {
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0); object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
const auto terminateInner = terminateWrap->entity(); const auto terminateInner = terminateWrap->entity();
_terminateAll = terminateInner->add( _terminateAll = terminateInner->add(
CreateButton( CreateButtonWithIcon(
terminateInner, terminateInner,
tr::lng_settings_disconnect_all(), tr::lng_settings_disconnect_all(),
st::infoBlockButton, st::infoBlockButton,

View file

@ -688,7 +688,7 @@ void MainMenu::setupArchive() {
const auto inner = wrap->entity(); const auto inner = wrap->entity();
wrap->toggle(checkArchive(), anim::type::instant); wrap->toggle(checkArchive(), anim::type::instant);
const auto button = AddButton( const auto button = AddButtonWithIcon(
inner, inner,
tr::lng_archived_name(), tr::lng_archived_name(),
st::mainMenuButton, st::mainMenuButton,
@ -841,7 +841,7 @@ void MainMenu::setupMenu() {
const auto addAction = [&]( const auto addAction = [&](
rpl::producer<QString> text, rpl::producer<QString> text,
IconDescriptor &&descriptor) { IconDescriptor &&descriptor) {
return AddButton( return AddButtonWithIcon(
_menu, _menu,
std::move(text), std::move(text),
st::mainMenuButton, st::mainMenuButton,
@ -864,7 +864,7 @@ void MainMenu::setupMenu() {
const auto wrap = _menu->add( const auto wrap = _menu->add(
object_ptr<Ui::SlideWrap<Ui::SettingsButton>>( object_ptr<Ui::SlideWrap<Ui::SettingsButton>>(
_menu, _menu,
CreateButton( CreateButtonWithIcon(
_menu, _menu,
tr::lng_menu_my_stories(), tr::lng_menu_my_stories(),
st::mainMenuButton, st::mainMenuButton,