mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 06:33:57 +02:00
Moved AddSkip and AddDivier from Settings namespace to separate module.
This commit is contained in:
parent
497aa6dbc8
commit
f6cb9072d2
69 changed files with 666 additions and 621 deletions
|
@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/filter_icons.h"
|
#include "ui/filter_icons.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_filter_icons.h"
|
#include "styles/style_filter_icons.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -341,7 +342,7 @@ void ToggleChatsController::setupAboveWidget() {
|
||||||
_addedTopWidget = container->add(object_ptr<Ui::RpWidget>(container));
|
_addedTopWidget = container->add(object_ptr<Ui::RpWidget>(container));
|
||||||
const auto realAbove = container->add(
|
const auto realAbove = container->add(
|
||||||
object_ptr<Ui::VerticalLayout>(container));
|
object_ptr<Ui::VerticalLayout>(container));
|
||||||
AddDivider(realAbove);
|
Ui::AddDivider(realAbove);
|
||||||
const auto totalCount = [&] {
|
const auto totalCount = [&] {
|
||||||
if (_chats.empty()) {
|
if (_chats.empty()) {
|
||||||
return _additional.size();
|
return _additional.size();
|
||||||
|
|
|
@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "main/main_session_settings.h"
|
#include "main/main_session_settings.h"
|
||||||
#include "data/data_session.h"
|
#include "data/data_session.h"
|
||||||
#include "data/data_auto_download.h"
|
#include "data/data_auto_download.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/continuous_sliders.h"
|
#include "ui/widgets/continuous_sliders.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
@ -35,7 +36,6 @@ not_null<int64*> AddSizeLimitSlider(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
const base::flat_map<Type, int64> &values,
|
const base::flat_map<Type, int64> &values,
|
||||||
int64 defaultValue) {
|
int64 defaultValue) {
|
||||||
using namespace Settings;
|
|
||||||
using Pair = base::flat_map<Type, int64>::value_type;
|
using Pair = base::flat_map<Type, int64>::value_type;
|
||||||
|
|
||||||
const auto limits = Ui::CreateChild<rpl::event_stream<int64>>(
|
const auto limits = Ui::CreateChild<rpl::event_stream<int64>>(
|
||||||
|
@ -46,7 +46,7 @@ not_null<int64*> AddSizeLimitSlider(
|
||||||
[](Pair pair) { return pair.second; })->second;
|
[](Pair pair) { return pair.second; })->second;
|
||||||
const auto startLimit = currentLimit ? currentLimit : defaultValue;
|
const auto startLimit = currentLimit ? currentLimit : defaultValue;
|
||||||
const auto result = Ui::CreateChild<int64>(container.get(), startLimit);
|
const auto result = Ui::CreateChild<int64>(container.get(), startLimit);
|
||||||
AddButtonWithLabel(
|
Settings::AddButtonWithLabel(
|
||||||
container,
|
container,
|
||||||
tr::lng_media_size_limit(),
|
tr::lng_media_size_limit(),
|
||||||
limits->events_starting_with_copy(
|
limits->events_starting_with_copy(
|
||||||
|
|
|
@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/chat/attach/attach_extensions.h"
|
#include "ui/chat/attach/attach_extensions.h"
|
||||||
#include "ui/chat/chat_theme.h"
|
#include "ui/chat/chat_theme.h"
|
||||||
#include "ui/ui_utility.h"
|
#include "ui/ui_utility.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "mtproto/sender.h"
|
#include "mtproto/sender.h"
|
||||||
|
@ -24,7 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_document_media.h"
|
#include "data/data_document_media.h"
|
||||||
#include "boxes/background_preview_box.h"
|
#include "boxes/background_preview_box.h"
|
||||||
#include "info/profile/info_profile_icon.h"
|
#include "info/profile/info_profile_icon.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // CreateButton.
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
|
@ -165,7 +166,7 @@ void BackgroundBox::prepare() {
|
||||||
auto wrap = object_ptr<Ui::VerticalLayout>(this);
|
auto wrap = object_ptr<Ui::VerticalLayout>(this);
|
||||||
const auto container = wrap.data();
|
const auto container = wrap.data();
|
||||||
|
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
const auto button = container->add(Settings::CreateButton(
|
const auto button = container->add(Settings::CreateButton(
|
||||||
container,
|
container,
|
||||||
|
@ -180,8 +181,8 @@ void BackgroundBox::prepare() {
|
||||||
chooseFromFile();
|
chooseFromFile();
|
||||||
});
|
});
|
||||||
|
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
|
|
||||||
_inner = container->add(
|
_inner = container->add(
|
||||||
object_ptr<Inner>(this, &_controller->session(), _forPeer));
|
object_ptr<Inner>(this, &_controller->session(), _forPeer));
|
||||||
|
|
|
@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/continuous_sliders.h"
|
#include "ui/widgets/continuous_sliders.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/ui_utility.h"
|
#include "ui/ui_utility.h"
|
||||||
#include "history/history.h"
|
#include "history/history.h"
|
||||||
#include "history/history_item.h"
|
#include "history/history_item.h"
|
||||||
|
@ -293,7 +294,7 @@ void BackgroundPreviewBox::createDimmingSlider(bool dark) {
|
||||||
const auto equals = (dark == Window::Theme::IsNightMode());
|
const auto equals = (dark == Window::Theme::IsNightMode());
|
||||||
const auto inner = Ui::CreateChild<Ui::VerticalLayout>(_dimmingContent);
|
const auto inner = Ui::CreateChild<Ui::VerticalLayout>(_dimmingContent);
|
||||||
inner->show();
|
inner->show();
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
inner,
|
inner,
|
||||||
tr::lng_background_dimming(),
|
tr::lng_background_dimming(),
|
||||||
style::margins(0, st::settingsSectionSkip, 0, 0),
|
style::margins(0, st::settingsSectionSkip, 0, 0),
|
||||||
|
|
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
|
@ -790,7 +791,7 @@ not_null<Ui::InputField*> CreatePollBox::setupQuestion(
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
|
|
||||||
const auto session = &_controller->session();
|
const auto session = &_controller->session();
|
||||||
AddSubsectionTitle(container, tr::lng_polls_create_question());
|
Ui::AddSubsectionTitle(container, tr::lng_polls_create_question());
|
||||||
const auto question = container->add(
|
const auto question = container->add(
|
||||||
object_ptr<Ui::InputField>(
|
object_ptr<Ui::InputField>(
|
||||||
container,
|
container,
|
||||||
|
@ -841,8 +842,8 @@ not_null<Ui::InputField*> CreatePollBox::setupSolution(
|
||||||
const auto inner = outer->entity();
|
const auto inner = outer->entity();
|
||||||
|
|
||||||
const auto session = &_controller->session();
|
const auto session = &_controller->session();
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddSubsectionTitle(inner, tr::lng_polls_solution_title());
|
Ui::AddSubsectionTitle(inner, tr::lng_polls_solution_title());
|
||||||
const auto solution = inner->add(
|
const auto solution = inner->add(
|
||||||
object_ptr<Ui::InputField>(
|
object_ptr<Ui::InputField>(
|
||||||
inner,
|
inner,
|
||||||
|
@ -902,8 +903,8 @@ object_ptr<Ui::RpWidget> CreatePollBox::setupContent() {
|
||||||
const auto container = result.data();
|
const auto container = result.data();
|
||||||
|
|
||||||
const auto question = setupQuestion(container);
|
const auto question = setupQuestion(container);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
container,
|
container,
|
||||||
|
@ -939,8 +940,8 @@ object_ptr<Ui::RpWidget> CreatePollBox::setupContent() {
|
||||||
options->focusFirst();
|
options->focusFirst();
|
||||||
}, question->lifetime());
|
}, question->lifetime());
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddSubsectionTitle(container, tr::lng_polls_create_settings());
|
Ui::AddSubsectionTitle(container, tr::lng_polls_create_settings());
|
||||||
|
|
||||||
const auto anonymous = (!(_disabled & PollData::Flag::PublicVotes))
|
const auto anonymous = (!(_disabled & PollData::Flag::PublicVotes))
|
||||||
? container->add(
|
? container->add(
|
||||||
|
|
|
@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "history/history.h"
|
#include "history/history.h"
|
||||||
#include "boxes/peer_list_controllers.h"
|
#include "boxes/peer_list_controllers.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
|
@ -321,7 +322,7 @@ void EditPrivacyBox::setupContent() {
|
||||||
content->add(std::move(above));
|
content->add(std::move(above));
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
content,
|
content,
|
||||||
_controller->optionsTitleKey(),
|
_controller->optionsTitleKey(),
|
||||||
{ 0, st::settingsPrivacySkipTop, 0, 0 });
|
{ 0, st::settingsPrivacySkipTop, 0, 0 });
|
||||||
|
@ -345,8 +346,8 @@ void EditPrivacyBox::setupContent() {
|
||||||
content->add(std::move(middle));
|
content->add(std::move(middle));
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
content,
|
content,
|
||||||
tr::lng_edit_privacy_exceptions(),
|
tr::lng_edit_privacy_exceptions(),
|
||||||
{ 0, st::settingsPrivacySkipTop, 0, 0 });
|
{ 0, st::settingsPrivacySkipTop, 0, 0 });
|
||||||
|
|
|
@ -21,6 +21,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/filter_icons.h"
|
#include "ui/filter_icons.h"
|
||||||
#include "ui/filter_icon_panel.h"
|
#include "ui/filter_icon_panel.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_chat_filters.h"
|
#include "data/data_chat_filters.h"
|
||||||
#include "data/data_peer.h"
|
#include "data/data_peer.h"
|
||||||
|
@ -658,10 +659,10 @@ void EditFilterBox(
|
||||||
name->setFocusFast();
|
name->setFocusFast();
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(content, tr::lng_filters_include());
|
Ui::AddSubsectionTitle(content, tr::lng_filters_include());
|
||||||
|
|
||||||
const auto includeAdd = AddButton(
|
const auto includeAdd = AddButton(
|
||||||
content,
|
content,
|
||||||
|
@ -676,9 +677,9 @@ void EditFilterBox(
|
||||||
kTypes,
|
kTypes,
|
||||||
&Data::ChatFilter::always);
|
&Data::ChatFilter::always);
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDividerText(content, tr::lng_filters_include_about());
|
Ui::AddDividerText(content, tr::lng_filters_include_about());
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
auto excludeWrap = content->add(
|
auto excludeWrap = content->add(
|
||||||
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
|
@ -688,7 +689,7 @@ void EditFilterBox(
|
||||||
excludeWrap->toggleOn(state->chatlist.value() | rpl::map(!_1));
|
excludeWrap->toggleOn(state->chatlist.value() | rpl::map(!_1));
|
||||||
const auto excludeInner = excludeWrap->entity();
|
const auto excludeInner = excludeWrap->entity();
|
||||||
|
|
||||||
AddSubsectionTitle(excludeInner, tr::lng_filters_exclude());
|
Ui::AddSubsectionTitle(excludeInner, tr::lng_filters_exclude());
|
||||||
|
|
||||||
const auto excludeAdd = AddButton(
|
const auto excludeAdd = AddButton(
|
||||||
excludeInner,
|
excludeInner,
|
||||||
|
@ -703,9 +704,9 @@ void EditFilterBox(
|
||||||
kExcludeTypes,
|
kExcludeTypes,
|
||||||
&Data::ChatFilter::never);
|
&Data::ChatFilter::never);
|
||||||
|
|
||||||
AddSkip(excludeInner);
|
Ui::AddSkip(excludeInner);
|
||||||
AddDividerText(excludeInner, tr::lng_filters_exclude_about());
|
Ui::AddDividerText(excludeInner, tr::lng_filters_exclude_about());
|
||||||
AddSkip(excludeInner);
|
Ui::AddSkip(excludeInner);
|
||||||
|
|
||||||
const auto collect = [=]() -> std::optional<Data::ChatFilter> {
|
const auto collect = [=]() -> std::optional<Data::ChatFilter> {
|
||||||
const auto title = name->getLastText().trimmed();
|
const auto title = name->getLastText().trimmed();
|
||||||
|
@ -726,7 +727,7 @@ void EditFilterBox(
|
||||||
return rules.withTitle(title);
|
return rules.withTitle(title);
|
||||||
};
|
};
|
||||||
|
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
content,
|
content,
|
||||||
rpl::conditional(
|
rpl::conditional(
|
||||||
state->hasLinks.value(),
|
state->hasLinks.value(),
|
||||||
|
@ -806,8 +807,8 @@ void EditFilterBox(
|
||||||
}));
|
}));
|
||||||
}));
|
}));
|
||||||
}, createLink->lifetime());
|
}, createLink->lifetime());
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
content,
|
content,
|
||||||
rpl::conditional(
|
rpl::conditional(
|
||||||
state->hasLinks.value(),
|
state->hasLinks.value(),
|
||||||
|
|
|
@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_info.h"
|
#include "styles/style_info.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -145,7 +146,7 @@ void ChatFilterLinkBox(
|
||||||
st::settingsSubsectionTitlePadding.right(),
|
st::settingsSubsectionTitlePadding.right(),
|
||||||
st::settingsSectionSkip * 2));
|
st::settingsSectionSkip * 2));
|
||||||
labelField->setMaxLength(kMaxLinkTitleLength);
|
labelField->setMaxLength(kMaxLinkTitleLength);
|
||||||
Settings::AddDivider(container);
|
AddDivider(container);
|
||||||
|
|
||||||
box->setFocusCallback([=] {
|
box->setFocusCallback([=] {
|
||||||
labelField->setFocusFast();
|
labelField->setFocusFast();
|
||||||
|
@ -616,7 +617,7 @@ void LinkController::addLinkBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
&st::menuIconDelete);
|
&st::menuIconDelete);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_filters_link_subtitle(),
|
tr::lng_filters_link_subtitle(),
|
||||||
st::filterLinkSubsectionTitlePadding);
|
st::filterLinkSubsectionTitlePadding);
|
||||||
|
@ -637,11 +638,11 @@ void LinkController::addLinkBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
|
|
||||||
AddCopyShareLinkButtons(container, copyLink, shareLink);
|
AddCopyShareLinkButtons(container, copyLink, shareLink);
|
||||||
|
|
||||||
AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2);
|
Ui::AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2);
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LinkController::prepare() {
|
void LinkController::prepare() {
|
||||||
|
@ -1152,7 +1153,7 @@ void AddFilterSubtitleWithToggles(
|
||||||
font->width(tr::lng_filters_by_link_select(tr::now)),
|
font->width(tr::lng_filters_by_link_select(tr::now)),
|
||||||
font->width(tr::lng_filters_by_link_deselect(tr::now))));
|
font->width(tr::lng_filters_by_link_deselect(tr::now))));
|
||||||
}
|
}
|
||||||
const auto title = Settings::AddSubsectionTitle(
|
const auto title = Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
std::move(text),
|
std::move(text),
|
||||||
padding);
|
padding);
|
||||||
|
|
|
@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/text/text_options.h"
|
#include "ui/text/text_options.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "storage/localstorage.h"
|
#include "storage/localstorage.h"
|
||||||
#include "boxes/premium_preview_box.h"
|
#include "boxes/premium_preview_box.h"
|
||||||
#include "boxes/translate_box.h"
|
#include "boxes/translate_box.h"
|
||||||
|
@ -34,7 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "lang/lang_instance.h"
|
#include "lang/lang_instance.h"
|
||||||
#include "lang/lang_cloud_manager.h"
|
#include "lang/lang_cloud_manager.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // CreateButton.
|
||||||
#include "spellcheck/spellcheck_types.h"
|
#include "spellcheck/spellcheck_types.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -1250,10 +1251,8 @@ void LanguageBox::setupTop(not_null<Ui::VerticalLayout*> container) {
|
||||||
translateSkip->setClickedCallback([=] {
|
translateSkip->setClickedCallback([=] {
|
||||||
uiShow()->showBox(Ui::EditSkipTranslationLanguages());
|
uiShow()->showBox(Ui::EditSkipTranslationLanguages());
|
||||||
});
|
});
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(container, tr::lng_translate_settings_about());
|
||||||
container,
|
|
||||||
tr::lng_translate_settings_about());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LanguageBox::keyPressEvent(QKeyEvent *e) {
|
void LanguageBox::keyPressEvent(QKeyEvent *e) {
|
||||||
|
|
|
@ -25,6 +25,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_chat_helpers.h"
|
#include "styles/style_chat_helpers.h"
|
||||||
|
@ -352,7 +353,7 @@ void ChoosePeerBoxController::prepareRestrictions() {
|
||||||
const auto raw = above.data();
|
const auto raw = above.data();
|
||||||
auto rows = RestrictionsList(_query);
|
auto rows = RestrictionsList(_query);
|
||||||
if (!rows.empty()) {
|
if (!rows.empty()) {
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
raw,
|
raw,
|
||||||
tr::lng_request_peer_requirements(),
|
tr::lng_request_peer_requirements(),
|
||||||
{ 0, st::membersMarginTop, 0, 0 });
|
{ 0, st::membersMarginTop, 0, 0 });
|
||||||
|
@ -364,7 +365,7 @@ void ChoosePeerBoxController::prepareRestrictions() {
|
||||||
separator + rows.join(separator),
|
separator + rows.join(separator),
|
||||||
st::requestPeerRestriction),
|
st::requestPeerRestriction),
|
||||||
{ skip, 0, skip, st::membersMarginTop });
|
{ skip, 0, skip, st::membersMarginTop });
|
||||||
Settings::AddDivider(raw);
|
Ui::AddDivider(raw);
|
||||||
}
|
}
|
||||||
const auto make = [&](tr::phrase<> text, const style::icon &st) {
|
const auto make = [&](tr::phrase<> text, const style::icon &st) {
|
||||||
auto button = raw->add(
|
auto button = raw->add(
|
||||||
|
|
|
@ -11,7 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/shadow.h"
|
#include "ui/widgets/shadow.h"
|
||||||
#include "ui/effects/emoji_fly_animation.h"
|
#include "ui/effects/emoji_fly_animation.h"
|
||||||
#include "ui/abstract_button.h"
|
#include "ui/abstract_button.h"
|
||||||
#include "ui/color_int_conversion.h"
|
#include "ui/vertical_list.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_document.h"
|
#include "data/data_document.h"
|
||||||
#include "data/data_forum.h"
|
#include "data/data_forum.h"
|
||||||
|
@ -39,7 +39,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_dialogs.h"
|
#include "styles/style_dialogs.h"
|
||||||
#include "styles/style_chat_helpers.h"
|
#include "styles/style_chat_helpers.h"
|
||||||
|
|
||||||
namespace {
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
constexpr auto kDefaultIconId = DocumentId(0x7FFF'FFFF'FFFF'FFFFULL);
|
constexpr auto kDefaultIconId = DocumentId(0x7FFF'FFFF'FFFF'FFFFULL);
|
||||||
|
@ -114,8 +113,6 @@ bool DefaultIconEmoji::readyInDefaultState() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
[[nodiscard]] int EditIconSize() {
|
[[nodiscard]] int EditIconSize() {
|
||||||
const auto tag = Data::CustomEmojiManager::SizeTag::Large;
|
const auto tag = Data::CustomEmojiManager::SizeTag::Large;
|
||||||
return Data::FrameSizeFromTag(tag) / style::DevicePixelRatio();
|
return Data::FrameSizeFromTag(tag) / style::DevicePixelRatio();
|
||||||
|
@ -479,9 +476,7 @@ void EditForumTopicBox(
|
||||||
}, title->lifetime());
|
}, title->lifetime());
|
||||||
|
|
||||||
if (!topic || !topic->isGeneral()) {
|
if (!topic || !topic->isGeneral()) {
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(top, tr::lng_forum_choose_title_and_icon());
|
||||||
top,
|
|
||||||
tr::lng_forum_choose_title_and_icon());
|
|
||||||
|
|
||||||
box->setScrollStyle(st::reactPanelScroll);
|
box->setScrollStyle(st::reactPanelScroll);
|
||||||
|
|
||||||
|
|
|
@ -10,9 +10,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
#include "data/data_chat.h"
|
#include "data/data_chat.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // AddButton.
|
||||||
#include "data/data_changes.h"
|
#include "data/data_changes.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/text/text_utilities.h" // Ui::Text::RichLangValue
|
#include "ui/text/text_utilities.h" // Ui::Text::RichLangValue
|
||||||
|
@ -267,7 +268,7 @@ void Controller::choose(not_null<ChatData*> chat) {
|
||||||
if (!chat) {
|
if (!chat) {
|
||||||
Assert(channel->isBroadcast());
|
Assert(channel->isBroadcast());
|
||||||
|
|
||||||
Settings::AddSkip(above);
|
Ui::AddSkip(above);
|
||||||
Settings::AddButton(
|
Settings::AddButton(
|
||||||
above,
|
above,
|
||||||
tr::lng_manage_discussion_group_create(),
|
tr::lng_manage_discussion_group_create(),
|
||||||
|
@ -294,9 +295,9 @@ void Controller::choose(not_null<ChatData*> chat) {
|
||||||
st::infoUnlinkChatButton,
|
st::infoUnlinkChatButton,
|
||||||
{ &st::menuIconRemove }
|
{ &st::menuIconRemove }
|
||||||
)->addClickHandler([=] { callback(nullptr); });
|
)->addClickHandler([=] { callback(nullptr); });
|
||||||
Settings::AddSkip(below);
|
Ui::AddSkip(below);
|
||||||
}
|
}
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
below,
|
below,
|
||||||
(channel->isBroadcast()
|
(channel->isBroadcast()
|
||||||
? tr::lng_manage_discussion_group_posted
|
? tr::lng_manage_discussion_group_posted
|
||||||
|
|
|
@ -13,7 +13,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "settings/settings_common.h"
|
#include "ui/vertical_list.h"
|
||||||
|
#include "settings/settings_common.h" // IconDescriptor.
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_app_config.h"
|
#include "main/main_app_config.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
|
@ -45,7 +46,7 @@ namespace {
|
||||||
struct State {
|
struct State {
|
||||||
rpl::event_stream<bool> toggled;
|
rpl::event_stream<bool> toggled;
|
||||||
};
|
};
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
const auto state = container->lifetime().make_state<State>();
|
const auto state = container->lifetime().make_state<State>();
|
||||||
const auto button = container->add(
|
const auto button = container->add(
|
||||||
EditPeerInfoBox::CreateButton(
|
EditPeerInfoBox::CreateButton(
|
||||||
|
@ -58,10 +59,8 @@ namespace {
|
||||||
))->toggleOn(rpl::single(
|
))->toggleOn(rpl::single(
|
||||||
(megagroup->flags() & ChannelDataFlag::ParticipantsHidden) != 0
|
(megagroup->flags() & ChannelDataFlag::ParticipantsHidden) != 0
|
||||||
) | rpl::then(state->toggled.events()));
|
) | rpl::then(state->toggled.events()));
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(container, tr::lng_profile_hide_participants_about());
|
||||||
container,
|
|
||||||
tr::lng_profile_hide_participants_about());
|
|
||||||
|
|
||||||
button->toggledValue(
|
button->toggledValue(
|
||||||
) | rpl::start_with_next([=](bool toggled) {
|
) | rpl::start_with_next([=](bool toggled) {
|
||||||
|
|
|
@ -37,6 +37,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/themes/window_theme.h"
|
#include "window/themes/window_theme.h"
|
||||||
#include "window/section_widget.h"
|
#include "window/section_widget.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
|
@ -812,11 +813,11 @@ void EditPeerColorBox(
|
||||||
{ margin, skip, margin, skip });
|
{ margin, skip, margin, skip });
|
||||||
|
|
||||||
const auto container = box->verticalLayout();
|
const auto container = box->verticalLayout();
|
||||||
AddDividerText(container, peer->isSelf()
|
Ui::AddDividerText(container, peer->isSelf()
|
||||||
? tr::lng_settings_color_about()
|
? tr::lng_settings_color_about()
|
||||||
: tr::lng_settings_color_about_channel());
|
: tr::lng_settings_color_about_channel());
|
||||||
|
|
||||||
AddSkip(container, st::settingsColorSampleSkip);
|
Ui::AddSkip(container, st::settingsColorSampleSkip);
|
||||||
|
|
||||||
container->add(CreateEmojiIconButton(
|
container->add(CreateEmojiIconButton(
|
||||||
container,
|
container,
|
||||||
|
@ -826,8 +827,8 @@ void EditPeerColorBox(
|
||||||
state->emojiId.value(),
|
state->emojiId.value(),
|
||||||
[=](DocumentId id) { state->emojiId = id; }));
|
[=](DocumentId id) { state->emojiId = id; }));
|
||||||
|
|
||||||
AddSkip(container, st::settingsColorSampleSkip);
|
Ui::AddSkip(container, st::settingsColorSampleSkip);
|
||||||
AddDividerText(container, peer->isSelf()
|
Ui::AddDividerText(container, peer->isSelf()
|
||||||
? tr::lng_settings_color_emoji_about()
|
? tr::lng_settings_color_emoji_about()
|
||||||
: tr::lng_settings_color_emoji_about_channel());
|
: tr::lng_settings_color_emoji_about_channel());
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "api/api_peer_photo.h"
|
#include "api/api_peer_photo.h"
|
||||||
#include "api/api_user_names.h"
|
#include "api/api_user_names.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "boxes/add_contact_box.h"
|
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "boxes/peers/edit_participants_box.h"
|
#include "boxes/peers/edit_participants_box.h"
|
||||||
#include "boxes/peers/edit_peer_color_box.h"
|
#include "boxes/peers/edit_peer_color_box.h"
|
||||||
|
@ -23,10 +22,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "boxes/peers/edit_linked_chat_box.h"
|
#include "boxes/peers/edit_linked_chat_box.h"
|
||||||
#include "boxes/peers/edit_peer_requests_box.h"
|
#include "boxes/peers/edit_peer_requests_box.h"
|
||||||
#include "boxes/peers/edit_peer_reactions.h"
|
#include "boxes/peers/edit_peer_reactions.h"
|
||||||
#include "boxes/peer_list_controllers.h"
|
|
||||||
#include "boxes/stickers_box.h"
|
#include "boxes/stickers_box.h"
|
||||||
#include "boxes/username_box.h"
|
#include "boxes/username_box.h"
|
||||||
#include "ui/boxes/single_choice_box.h"
|
|
||||||
#include "chat_helpers/emoji_suggestions_widget.h"
|
#include "chat_helpers/emoji_suggestions_widget.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
|
@ -42,24 +39,22 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "info/profile/info_profile_values.h"
|
#include "info/profile/info_profile_values.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "mtproto/sender.h"
|
#include "mtproto/sender.h"
|
||||||
#include "main/main_session.h"
|
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_app_config.h"
|
#include "main/main_app_config.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // IconDescriptor.
|
||||||
#include "ui/controls/userpic_button.h"
|
#include "ui/controls/userpic_button.h"
|
||||||
#include "ui/rp_widget.h"
|
#include "ui/rp_widget.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/fields/input_field.h"
|
#include "ui/widgets/fields/input_field.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/widgets/box_content_divider.h"
|
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "info/profile/info_profile_icon.h"
|
|
||||||
#include "api/api_invite_links.h"
|
#include "api/api_invite_links.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
|
@ -87,13 +82,9 @@ void AddSkip(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
int top = st::editPeerTopButtonsLayoutSkip,
|
int top = st::editPeerTopButtonsLayoutSkip,
|
||||||
int bottom = st::editPeerTopButtonsLayoutSkipToBottom) {
|
int bottom = st::editPeerTopButtonsLayoutSkipToBottom) {
|
||||||
container->add(object_ptr<Ui::FixedHeightWidget>(
|
Ui::AddSkip(container, top);
|
||||||
container,
|
Ui::AddDivider(container);
|
||||||
top));
|
Ui::AddSkip(container, bottom);
|
||||||
container->add(object_ptr<Ui::BoxContentDivider>(container));
|
|
||||||
container->add(object_ptr<Ui::FixedHeightWidget>(
|
|
||||||
container,
|
|
||||||
bottom));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddButtonWithCount(
|
void AddButtonWithCount(
|
||||||
|
@ -245,10 +236,6 @@ void ShowEditPermissions(
|
||||||
navigation->parentController()->show(Box(std::move(createBox)));
|
navigation->parentController()->show(Box(std::move(createBox)));
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
class Controller : public base::has_weak_ptr {
|
class Controller : public base::has_weak_ptr {
|
||||||
public:
|
public:
|
||||||
Controller(
|
Controller(
|
||||||
|
@ -591,7 +578,7 @@ object_ptr<Ui::RpWidget> Controller::createStickersEdit() {
|
||||||
object_ptr<Ui::VerticalLayout>(_wrap));
|
object_ptr<Ui::VerticalLayout>(_wrap));
|
||||||
const auto container = result->entity();
|
const auto container = result->entity();
|
||||||
|
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_group_stickers(),
|
tr::lng_group_stickers(),
|
||||||
{ 0, st::settingsSubsectionTitlePadding.top() - bottomSkip, 0, 0 });
|
{ 0, st::settingsSubsectionTitlePadding.top() - bottomSkip, 0, 0 });
|
||||||
|
@ -606,13 +593,13 @@ object_ptr<Ui::RpWidget> Controller::createStickersEdit() {
|
||||||
},
|
},
|
||||||
{ &st::menuIconStickers });
|
{ &st::menuIconStickers });
|
||||||
|
|
||||||
Settings::AddSkip(container, bottomSkip);
|
Ui::AddSkip(container, bottomSkip);
|
||||||
|
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
tr::lng_group_stickers_description());
|
tr::lng_group_stickers_description());
|
||||||
|
|
||||||
Settings::AddSkip(container, bottomSkip);
|
Ui::AddSkip(container, bottomSkip);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1002,12 +989,12 @@ void Controller::fillManageSection() {
|
||||||
if (_isBot) {
|
if (_isBot) {
|
||||||
const auto &container = _controls.buttonsLayout;
|
const auto &container = _controls.buttonsLayout;
|
||||||
|
|
||||||
AddSkip(container, 0);
|
::AddSkip(container, 0);
|
||||||
fillBotUsernamesButton();
|
fillBotUsernamesButton();
|
||||||
fillBotEditIntroButton();
|
fillBotEditIntroButton();
|
||||||
fillBotEditCommandsButton();
|
fillBotEditCommandsButton();
|
||||||
fillBotEditSettingsButton();
|
fillBotEditSettingsButton();
|
||||||
Settings::AddSkip(
|
Ui::AddSkip(
|
||||||
container,
|
container,
|
||||||
st::editPeerTopButtonsLayoutSkipCustomBottom);
|
st::editPeerTopButtonsLayoutSkipCustomBottom);
|
||||||
container->add(object_ptr<Ui::DividerLabel>(
|
container->add(object_ptr<Ui::DividerLabel>(
|
||||||
|
@ -1070,7 +1057,7 @@ void Controller::fillManageSection() {
|
||||||
&& (channel->linkedChat()
|
&& (channel->linkedChat()
|
||||||
|| (channel->isBroadcast() && channel->canEditInformation()));
|
|| (channel->isBroadcast() && channel->canEditInformation()));
|
||||||
|
|
||||||
AddSkip(_controls.buttonsLayout, 0);
|
::AddSkip(_controls.buttonsLayout, 0);
|
||||||
|
|
||||||
if (canEditType) {
|
if (canEditType) {
|
||||||
fillPrivacyTypeButton();
|
fillPrivacyTypeButton();
|
||||||
|
@ -1099,7 +1086,7 @@ void Controller::fillManageSection() {
|
||||||
//|| canEditInviteLinks
|
//|| canEditInviteLinks
|
||||||
|| canViewOrEditLinkedChat
|
|| canViewOrEditLinkedChat
|
||||||
|| canEditType) {
|
|| canEditType) {
|
||||||
AddSkip(_controls.buttonsLayout);
|
::AddSkip(_controls.buttonsLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canEditReactions()) {
|
if (canEditReactions()) {
|
||||||
|
@ -1269,7 +1256,7 @@ void Controller::fillManageSection() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canEditStickers || canDeleteChannel) {
|
if (canEditStickers || canDeleteChannel) {
|
||||||
AddSkip(_controls.buttonsLayout);
|
::AddSkip(_controls.buttonsLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canEditStickers) {
|
if (canEditStickers) {
|
||||||
|
@ -1287,7 +1274,7 @@ void Controller::fillManageSection() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canEditStickers || canDeleteChannel) {
|
if (canEditStickers || canDeleteChannel) {
|
||||||
AddSkip(_controls.buttonsLayout);
|
::AddSkip(_controls.buttonsLayout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/boxes/edit_invite_link.h"
|
#include "ui/boxes/edit_invite_link.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "boxes/share_box.h"
|
#include "boxes/share_box.h"
|
||||||
#include "history/view/history_view_group_call_bar.h" // GenerateUserpics...
|
#include "history/view/history_view_group_call_bar.h" // GenerateUserpics...
|
||||||
#include "history/history_item_helpers.h" // GetErrorTextForSending.
|
#include "history/history_item_helpers.h" // GetErrorTextForSending.
|
||||||
|
@ -434,7 +435,7 @@ void Controller::addHeaderBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDeleteLinkButton(container, deleteLink);
|
AddDeleteLinkButton(container, deleteLink);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2);
|
Ui::AddSkip(container, st::inviteLinkJoinedRowPadding.bottom() * 2);
|
||||||
|
|
||||||
auto grayLabelText = dataValue(
|
auto grayLabelText = dataValue(
|
||||||
) | rpl::map([=](const LinkData &data) {
|
) | rpl::map([=](const LinkData &data) {
|
||||||
|
@ -472,7 +473,7 @@ void Controller::addHeaderBlock(not_null<Ui::VerticalLayout*> container) {
|
||||||
object_ptr<Ui::SlideWrap<>>(
|
object_ptr<Ui::SlideWrap<>>(
|
||||||
container,
|
container,
|
||||||
object_ptr<Ui::BoxContentDivider>(container)));
|
object_ptr<Ui::BoxContentDivider>(container)));
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
dataValue(
|
dataValue(
|
||||||
) | rpl::start_with_next([=](const LinkData &data) {
|
) | rpl::start_with_next([=](const LinkData &data) {
|
||||||
|
@ -509,15 +510,15 @@ not_null<Ui::SlideWrap<>*> Controller::addRequestedListBlock(
|
||||||
const auto wrap = result->entity();
|
const auto wrap = result->entity();
|
||||||
// Make this container occupy full width.
|
// Make this container occupy full width.
|
||||||
wrap->add(object_ptr<Ui::RpWidget>(wrap));
|
wrap->add(object_ptr<Ui::RpWidget>(wrap));
|
||||||
AddDivider(wrap);
|
Ui::AddDivider(wrap);
|
||||||
AddSkip(wrap);
|
Ui::AddSkip(wrap);
|
||||||
auto requestedCount = dataValue(
|
auto requestedCount = dataValue(
|
||||||
) | rpl::filter([](const LinkData &data) {
|
) | rpl::filter([](const LinkData &data) {
|
||||||
return data.requested > 0;
|
return data.requested > 0;
|
||||||
}) | rpl::map([=](const LinkData &data) {
|
}) | rpl::map([=](const LinkData &data) {
|
||||||
return float64(data.requested);
|
return float64(data.requested);
|
||||||
});
|
});
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
wrap,
|
wrap,
|
||||||
tr::lng_group_invite_requested_full(
|
tr::lng_group_invite_requested_full(
|
||||||
lt_count_decimal,
|
lt_count_decimal,
|
||||||
|
@ -588,14 +589,14 @@ void Controller::setupAboveJoinedWidget() {
|
||||||
if (revoked || !current.permanent) {
|
if (revoked || !current.permanent) {
|
||||||
addHeaderBlock(container);
|
addHeaderBlock(container);
|
||||||
}
|
}
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_group_invite_created_by());
|
tr::lng_group_invite_created_by());
|
||||||
AddSinglePeerRow(
|
AddSinglePeerRow(
|
||||||
container,
|
container,
|
||||||
current.admin,
|
current.admin,
|
||||||
rpl::single(langDateTime(base::unixtime::parse(current.date))));
|
rpl::single(langDateTime(base::unixtime::parse(current.date))));
|
||||||
AddSkip(container, st::membersMarginBottom);
|
Ui::AddSkip(container, st::membersMarginBottom);
|
||||||
|
|
||||||
auto requestedWrap = addRequestedListBlock(container);
|
auto requestedWrap = addRequestedListBlock(container);
|
||||||
|
|
||||||
|
@ -609,8 +610,8 @@ void Controller::setupAboveJoinedWidget() {
|
||||||
// Make this container occupy full width.
|
// Make this container occupy full width.
|
||||||
listHeader->add(object_ptr<Ui::RpWidget>(listHeader));
|
listHeader->add(object_ptr<Ui::RpWidget>(listHeader));
|
||||||
|
|
||||||
AddDivider(listHeader);
|
Ui::AddDivider(listHeader);
|
||||||
AddSkip(listHeader);
|
Ui::AddSkip(listHeader);
|
||||||
|
|
||||||
auto listHeaderText = dataValue(
|
auto listHeaderText = dataValue(
|
||||||
) | rpl::map([=](const LinkData &data) {
|
) | rpl::map([=](const LinkData &data) {
|
||||||
|
|
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "boxes/peer_list_controllers.h"
|
#include "boxes/peer_list_controllers.h"
|
||||||
|
@ -901,14 +902,14 @@ void ManageInviteLinksBox(
|
||||||
std::move(status));
|
std::move(status));
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_create_permanent_link_title());
|
Ui::AddSubsectionTitle(container, tr::lng_create_permanent_link_title());
|
||||||
AddPermanentLinkBlock(
|
AddPermanentLinkBlock(
|
||||||
show,
|
show,
|
||||||
container,
|
container,
|
||||||
peer,
|
peer,
|
||||||
admin,
|
admin,
|
||||||
permanentFromList->events());
|
permanentFromList->events());
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
|
|
||||||
auto otherHeader = (Ui::SlideWrap<>*)nullptr;
|
auto otherHeader = (Ui::SlideWrap<>*)nullptr;
|
||||||
if (admin->isSelf()) {
|
if (admin->isSelf()) {
|
||||||
|
|
|
@ -20,7 +20,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "settings/settings_common.h"
|
#include "ui/vertical_list.h"
|
||||||
|
#include "settings/settings_common.h" // AddButton.
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
#include "styles/style_info.h"
|
#include "styles/style_info.h"
|
||||||
|
@ -138,8 +139,8 @@ void EditAllowedReactionsBox(
|
||||||
}
|
}
|
||||||
Unexpected("Option value in EditAllowedReactionsBox.");
|
Unexpected("Option value in EditAllowedReactionsBox.");
|
||||||
};
|
};
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
(isGroup
|
(isGroup
|
||||||
? (state->option.value()
|
? (state->option.value()
|
||||||
|
@ -157,8 +158,8 @@ void EditAllowedReactionsBox(
|
||||||
}
|
}
|
||||||
const auto reactions = wrap ? wrap->entity() : container.get();
|
const auto reactions = wrap ? wrap->entity() : container.get();
|
||||||
|
|
||||||
Settings::AddSkip(reactions);
|
Ui::AddSkip(reactions);
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
reactions,
|
reactions,
|
||||||
(enabled
|
(enabled
|
||||||
? tr::lng_manage_peer_reactions_available()
|
? tr::lng_manage_peer_reactions_available()
|
||||||
|
|
|
@ -29,6 +29,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "mtproto/sender.h"
|
#include "mtproto/sender.h"
|
||||||
#include "ui/rp_widget.h"
|
#include "ui/rp_widget.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/controls/userpic_button.h"
|
#include "ui/controls/userpic_button.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
|
@ -218,9 +219,9 @@ void Controller::createContent() {
|
||||||
object_ptr<Ui::VerticalLayout>(_wrap.get())));
|
object_ptr<Ui::VerticalLayout>(_wrap.get())));
|
||||||
const auto wrap = _controls.whoSendWrap->entity();
|
const auto wrap = _controls.whoSendWrap->entity();
|
||||||
|
|
||||||
AddSkip(wrap);
|
Ui::AddSkip(wrap);
|
||||||
if (_dataSavedValue->hasLinkedChat) {
|
if (_dataSavedValue->hasLinkedChat) {
|
||||||
AddSubsectionTitle(wrap, tr::lng_manage_peer_send_title());
|
Ui::AddSubsectionTitle(wrap, tr::lng_manage_peer_send_title());
|
||||||
|
|
||||||
_controls.joinToWrite = wrap->add(EditPeerInfoBox::CreateButton(
|
_controls.joinToWrite = wrap->add(EditPeerInfoBox::CreateButton(
|
||||||
wrap,
|
wrap,
|
||||||
|
@ -264,16 +265,16 @@ void Controller::createContent() {
|
||||||
_dataSavedValue->requestToJoin = toggled;
|
_dataSavedValue->requestToJoin = toggled;
|
||||||
}, wrap->lifetime());
|
}, wrap->lifetime());
|
||||||
|
|
||||||
AddSkip(wrap);
|
Ui::AddSkip(wrap);
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
wrap,
|
wrap,
|
||||||
rpl::conditional(
|
rpl::conditional(
|
||||||
std::move(joinToWrite),
|
std::move(joinToWrite),
|
||||||
tr::lng_manage_peer_send_approve_members_about(),
|
tr::lng_manage_peer_send_approve_members_about(),
|
||||||
tr::lng_manage_peer_send_only_members_about()));
|
tr::lng_manage_peer_send_only_members_about()));
|
||||||
}
|
}
|
||||||
AddSkip(_wrap.get());
|
Ui::AddSkip(_wrap.get());
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
_wrap.get(),
|
_wrap.get(),
|
||||||
tr::lng_manage_peer_no_forwards_title());
|
tr::lng_manage_peer_no_forwards_title());
|
||||||
_controls.noForwards = _wrap->add(EditPeerInfoBox::CreateButton(
|
_controls.noForwards = _wrap->add(EditPeerInfoBox::CreateButton(
|
||||||
|
@ -289,8 +290,8 @@ void Controller::createContent() {
|
||||||
) | rpl::start_with_next([=](bool toggled) {
|
) | rpl::start_with_next([=](bool toggled) {
|
||||||
_dataSavedValue->noForwards = toggled;
|
_dataSavedValue->noForwards = toggled;
|
||||||
}, _wrap->lifetime());
|
}, _wrap->lifetime());
|
||||||
AddSkip(_wrap.get());
|
Ui::AddSkip(_wrap.get());
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
_wrap.get(),
|
_wrap.get(),
|
||||||
(_isGroup
|
(_isGroup
|
||||||
? tr::lng_manage_peer_no_forwards_about
|
? tr::lng_manage_peer_no_forwards_about
|
||||||
|
@ -419,7 +420,7 @@ object_ptr<Ui::RpWidget> Controller::createUsernameEdit() {
|
||||||
const auto container = result->entity();
|
const auto container = result->entity();
|
||||||
|
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
container,
|
container,
|
||||||
|
@ -453,7 +454,7 @@ object_ptr<Ui::RpWidget> Controller::createUsernameEdit() {
|
||||||
|
|
||||||
AddUsernameCheckLabel(container, _usernameCheckInfo.events());
|
AddUsernameCheckLabel(container, _usernameCheckInfo.events());
|
||||||
|
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
tr::lng_create_channel_link_about());
|
tr::lng_create_channel_link_about());
|
||||||
|
|
||||||
|
@ -675,7 +676,7 @@ object_ptr<Ui::RpWidget> Controller::createInviteLinkBlock() {
|
||||||
|
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
if (_dataSavedValue) {
|
if (_dataSavedValue) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_create_permanent_link_title());
|
AddSubsectionTitle(container, tr::lng_create_permanent_link_title());
|
||||||
}
|
}
|
||||||
|
@ -686,9 +687,9 @@ object_ptr<Ui::RpWidget> Controller::createInviteLinkBlock() {
|
||||||
_peer->session().user(),
|
_peer->session().user(),
|
||||||
nullptr);
|
nullptr);
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
((_peer->isMegagroup() || _peer->asChat())
|
((_peer->isMegagroup() || _peer->asChat())
|
||||||
? tr::lng_group_invite_about_permanent_group()
|
? tr::lng_group_invite_about_permanent_group()
|
||||||
|
|
|
@ -14,10 +14,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/layers/show.h"
|
#include "ui/layers/show.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/text_utilities.h" // Ui::Text::RichLangValue.
|
#include "ui/text/text_utilities.h" // Ui::Text::RichLangValue.
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
@ -231,7 +231,7 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) {
|
||||||
_container = base::make_unique_q<Ui::VerticalLayout>(this);
|
_container = base::make_unique_q<Ui::VerticalLayout>(this);
|
||||||
|
|
||||||
{
|
{
|
||||||
Settings::AddSkip(_container);
|
Ui::AddSkip(_container);
|
||||||
_container->add(
|
_container->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
_container,
|
_container,
|
||||||
|
@ -364,8 +364,8 @@ void UsernamesList::rebuild(const Data::Usernames &usernames) {
|
||||||
}, content->lifetime());
|
}, content->lifetime());
|
||||||
|
|
||||||
{
|
{
|
||||||
Settings::AddSkip(_container);
|
Ui::AddSkip(_container);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
_container,
|
_container,
|
||||||
_peer->isSelf()
|
_peer->isSelf()
|
||||||
? tr::lng_usernames_description()
|
? tr::lng_usernames_description()
|
||||||
|
|
|
@ -13,6 +13,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_domain.h"
|
#include "main/main_domain.h"
|
||||||
|
@ -27,8 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_folder.h"
|
#include "data/data_folder.h"
|
||||||
#include "data/data_premium_limits.h"
|
#include "data/data_premium_limits.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_premium.h" // ShowPremium.
|
||||||
#include "settings/settings_premium.h"
|
|
||||||
#include "base/unixtime.h"
|
#include "base/unixtime.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "styles/style_premium.h"
|
#include "styles/style_premium.h"
|
||||||
|
@ -48,11 +48,11 @@ struct InfographicDescriptor {
|
||||||
bool complexRatio = false;
|
bool complexRatio = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSubsectionTitle(
|
void AddSubtitle(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
rpl::producer<QString> text) {
|
rpl::producer<QString> text) {
|
||||||
const auto &subtitlePadding = st::settingsButton.padding;
|
const auto &subtitlePadding = st::settingsButton.padding;
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
std::move(text),
|
std::move(text),
|
||||||
{ 0, subtitlePadding.top(), 0, -subtitlePadding.bottom() });
|
{ 0, subtitlePadding.top(), 0, -subtitlePadding.bottom() });
|
||||||
|
@ -395,7 +395,7 @@ void SimpleLimitBox(
|
||||||
? box->setPinnedToTopContent(object_ptr<Ui::VerticalLayout>(box))
|
? box->setPinnedToTopContent(object_ptr<Ui::VerticalLayout>(box))
|
||||||
: box->verticalLayout();
|
: box->verticalLayout();
|
||||||
|
|
||||||
Settings::AddSkip(top, st::premiumInfographicPadding.top());
|
Ui::AddSkip(top, st::premiumInfographicPadding.top());
|
||||||
Ui::Premium::AddBubbleRow(
|
Ui::Premium::AddBubbleRow(
|
||||||
top,
|
top,
|
||||||
st::defaultPremiumBubble,
|
st::defaultPremiumBubble,
|
||||||
|
@ -406,7 +406,7 @@ void SimpleLimitBox(
|
||||||
premiumPossible,
|
premiumPossible,
|
||||||
descriptor.phrase,
|
descriptor.phrase,
|
||||||
descriptor.icon);
|
descriptor.icon);
|
||||||
Settings::AddSkip(top, st::premiumLineTextSkip);
|
Ui::AddSkip(top, st::premiumLineTextSkip);
|
||||||
if (premiumPossible) {
|
if (premiumPossible) {
|
||||||
Ui::Premium::AddLimitRow(
|
Ui::Premium::AddLimitRow(
|
||||||
top,
|
top,
|
||||||
|
@ -417,7 +417,7 @@ void SimpleLimitBox(
|
||||||
(descriptor.complexRatio
|
(descriptor.complexRatio
|
||||||
? (float64(descriptor.current) / descriptor.premiumLimit)
|
? (float64(descriptor.current) / descriptor.premiumLimit)
|
||||||
: Ui::Premium::kLimitRowRatio));
|
: Ui::Premium::kLimitRowRatio));
|
||||||
Settings::AddSkip(top, st::premiumInfographicPadding.bottom());
|
Ui::AddSkip(top, st::premiumInfographicPadding.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
box->setTitle(std::move(title));
|
box->setTitle(std::move(title));
|
||||||
|
@ -446,8 +446,8 @@ void SimpleLimitBox(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fixed) {
|
if (fixed) {
|
||||||
Settings::AddSkip(top, st::settingsButton.padding.bottom());
|
Ui::AddSkip(top, st::settingsButton.padding.bottom());
|
||||||
Settings::AddDivider(top);
|
Ui::AddDivider(top);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -552,7 +552,7 @@ void ChannelsLimitBox(
|
||||||
{ defaultLimit, current, premiumLimit, &st::premiumIconGroups },
|
{ defaultLimit, current, premiumLimit, &st::premiumIconGroups },
|
||||||
true);
|
true);
|
||||||
|
|
||||||
AddSubsectionTitle(box->verticalLayout(), tr::lng_channels_leave_title());
|
AddSubtitle(box->verticalLayout(), tr::lng_channels_leave_title());
|
||||||
|
|
||||||
const auto delegate = box->lifetime().make_state<InactiveDelegate>();
|
const auto delegate = box->lifetime().make_state<InactiveDelegate>();
|
||||||
const auto controller = box->lifetime().make_state<InactiveController>(
|
const auto controller = box->lifetime().make_state<InactiveController>(
|
||||||
|
@ -642,7 +642,7 @@ void PublicLinksLimitBox(
|
||||||
{ defaultLimit, current, premiumLimit, &st::premiumIconLinks },
|
{ defaultLimit, current, premiumLimit, &st::premiumIconLinks },
|
||||||
true);
|
true);
|
||||||
|
|
||||||
AddSubsectionTitle(box->verticalLayout(), tr::lng_links_revoke_title());
|
AddSubtitle(box->verticalLayout(), tr::lng_links_revoke_title());
|
||||||
|
|
||||||
const auto delegate = box->lifetime().make_state<InactiveDelegate>();
|
const auto delegate = box->lifetime().make_state<InactiveDelegate>();
|
||||||
const auto controller = box->lifetime().make_state<PublicsController>(
|
const auto controller = box->lifetime().make_state<PublicsController>(
|
||||||
|
@ -1067,7 +1067,7 @@ void AccountsLimitBox(
|
||||||
const auto top = box->verticalLayout();
|
const auto top = box->verticalLayout();
|
||||||
const auto group = std::make_shared<Ui::RadiobuttonGroup>(0);
|
const auto group = std::make_shared<Ui::RadiobuttonGroup>(0);
|
||||||
|
|
||||||
Settings::AddSkip(top, st::premiumInfographicPadding.top());
|
Ui::AddSkip(top, st::premiumInfographicPadding.top());
|
||||||
Ui::Premium::AddBubbleRow(
|
Ui::Premium::AddBubbleRow(
|
||||||
top,
|
top,
|
||||||
st::defaultPremiumBubble,
|
st::defaultPremiumBubble,
|
||||||
|
@ -1082,7 +1082,7 @@ void AccountsLimitBox(
|
||||||
premiumPossible,
|
premiumPossible,
|
||||||
std::nullopt,
|
std::nullopt,
|
||||||
&st::premiumIconAccounts);
|
&st::premiumIconAccounts);
|
||||||
Settings::AddSkip(top, st::premiumLineTextSkip);
|
Ui::AddSkip(top, st::premiumLineTextSkip);
|
||||||
if (premiumPossible) {
|
if (premiumPossible) {
|
||||||
Ui::Premium::AddLimitRow(
|
Ui::Premium::AddLimitRow(
|
||||||
top,
|
top,
|
||||||
|
@ -1090,7 +1090,7 @@ void AccountsLimitBox(
|
||||||
(QString::number(std::max(current, defaultLimit) + 1)
|
(QString::number(std::max(current, defaultLimit) + 1)
|
||||||
+ ((current + 1 == premiumLimit) ? "" : "+")),
|
+ ((current + 1 == premiumLimit) ? "" : "+")),
|
||||||
QString::number(defaultLimit));
|
QString::number(defaultLimit));
|
||||||
Settings::AddSkip(top, st::premiumInfographicPadding.bottom());
|
Ui::AddSkip(top, st::premiumInfographicPadding.bottom());
|
||||||
}
|
}
|
||||||
box->setTitle(tr::lng_accounts_limit_title());
|
box->setTitle(tr::lng_accounts_limit_title());
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "settings/settings_common.h"
|
#include "ui/vertical_list.h"
|
||||||
#include "settings/settings_premium.h"
|
#include "settings/settings_premium.h"
|
||||||
#include "lottie/lottie_single_player.h"
|
#include "lottie/lottie_single_player.h"
|
||||||
#include "history/view/media/history_view_sticker.h"
|
#include "history/view/media/history_view_sticker.h"
|
||||||
|
@ -1488,7 +1488,7 @@ void UpgradedStoriesPreviewBox(
|
||||||
st::defaultPremiumLimits,
|
st::defaultPremiumLimits,
|
||||||
std::move(entries));
|
std::move(entries));
|
||||||
|
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
box->verticalLayout(),
|
box->verticalLayout(),
|
||||||
tr::lng_premium_stories_about_mobile());
|
tr::lng_premium_stories_about_mobile());
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/animated_icon.h"
|
#include "ui/animated_icon.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/section_widget.h"
|
#include "window/section_widget.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
|
@ -486,7 +487,7 @@ void ReactionsSettingsBox(
|
||||||
auto idValue = state->selectedId.value();
|
auto idValue = state->selectedId.value();
|
||||||
AddMessage(pinnedToTop, controller, std::move(idValue), box->width());
|
AddMessage(pinnedToTop, controller, std::move(idValue), box->width());
|
||||||
|
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
pinnedToTop,
|
pinnedToTop,
|
||||||
tr::lng_settings_chat_reactions_subtitle());
|
tr::lng_settings_chat_reactions_subtitle());
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
|
||||||
#include "api/api_ringtones.h"
|
#include "api/api_ringtones.h"
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "base/base_file_utilities.h"
|
|
||||||
#include "base/call_delayed.h"
|
#include "base/call_delayed.h"
|
||||||
#include "base/event_filter.h"
|
#include "base/event_filter.h"
|
||||||
#include "base/timer_rpl.h"
|
#include "base/timer_rpl.h"
|
||||||
|
@ -30,13 +29,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/widgets/buttons.h"
|
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/widgets/labels.h"
|
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/widgets/scroll_area.h"
|
#include "ui/widgets/scroll_area.h"
|
||||||
#include "ui/wrap/padding_wrap.h"
|
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -217,7 +214,7 @@ void RingtonesBox(
|
||||||
}
|
}
|
||||||
}, box->lifetime());
|
}, box->lifetime());
|
||||||
|
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_ringtones_box_cloud_subtitle());
|
tr::lng_ringtones_box_cloud_subtitle());
|
||||||
|
|
||||||
|
@ -323,7 +320,7 @@ void RingtonesBox(
|
||||||
});
|
});
|
||||||
|
|
||||||
box->addSkip(st::ringtonesBoxSkip);
|
box->addSkip(st::ringtonesBoxSkip);
|
||||||
Settings::AddDividerText(container, tr::lng_ringtones_box_about());
|
Ui::AddDividerText(container, tr::lng_ringtones_box_about());
|
||||||
|
|
||||||
box->addSkip(st::ringtonesBoxSkip);
|
box->addSkip(st::ringtonesBoxSkip);
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "lottie/lottie_icon.h"
|
#include "lottie/lottie_icon.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
|
@ -462,9 +463,9 @@ void SessionInfoBox(
|
||||||
|
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
const auto container = box->verticalLayout();
|
const auto container = box->verticalLayout();
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::sessionSubtitleSkip);
|
Ui::AddSkip(container, st::sessionSubtitleSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_sessions_info());
|
Ui::AddSubsectionTitle(container, tr::lng_sessions_info());
|
||||||
|
|
||||||
AddSessionInfoRow(
|
AddSessionInfoRow(
|
||||||
container,
|
container,
|
||||||
|
|
|
@ -18,12 +18,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "mtproto/sender.h"
|
#include "mtproto/sender.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "spellcheck/platform/platform_language.h"
|
#include "spellcheck/platform/platform_language.h"
|
||||||
#include "ui/boxes/choose_language_box.h"
|
#include "ui/boxes/choose_language_box.h"
|
||||||
#include "ui/effects/loading_element.h"
|
#include "ui/effects/loading_element.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/power_saving.h"
|
#include "ui/power_saving.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
@ -127,8 +127,8 @@ void TranslateBox(
|
||||||
const auto &stLabel = st::aboutLabel;
|
const auto &stLabel = st::aboutLabel;
|
||||||
const auto lineHeight = stLabel.style.lineHeight;
|
const auto lineHeight = stLabel.style.lineHeight;
|
||||||
|
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
// Settings::AddSubsectionTitle(
|
// Ui::AddSubsectionTitle(
|
||||||
// container,
|
// container,
|
||||||
// tr::lng_translate_box_original());
|
// tr::lng_translate_box_original());
|
||||||
|
|
||||||
|
@ -181,14 +181,14 @@ void TranslateBox(
|
||||||
show->toggleOn(show->entity()->clicks() | rpl::map_to(false));
|
show->toggleOn(show->entity()->clicks() | rpl::map_to(false));
|
||||||
original->toggleOn(show->entity()->clicks() | rpl::map_to(true));
|
original->toggleOn(show->entity()->clicks() | rpl::map_to(true));
|
||||||
}
|
}
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto padding = st::settingsSubsectionTitlePadding;
|
const auto padding = st::settingsSubsectionTitlePadding;
|
||||||
const auto subtitle = Settings::AddSubsectionTitle(
|
const auto subtitle = Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
state->to.value() | rpl::map(LanguageName));
|
state->to.value() | rpl::map(LanguageName));
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/text/text_variant.h"
|
#include "ui/text/text_variant.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
|
@ -409,11 +410,11 @@ void AddUsernameCheckLabel(
|
||||||
const auto skip = (st::usernameSkip - st.style.font->height) / 4;
|
const auto skip = (st::usernameSkip - st.style.font->height) / 4;
|
||||||
|
|
||||||
auto wrapped = object_ptr<Ui::VerticalLayout>(container);
|
auto wrapped = object_ptr<Ui::VerticalLayout>(container);
|
||||||
Settings::AddSkip(wrapped, skip);
|
Ui::AddSkip(wrapped, skip);
|
||||||
const auto label = wrapped->add(object_ptr<Ui::FlatLabel>(wrapped, st));
|
const auto label = wrapped->add(object_ptr<Ui::FlatLabel>(wrapped, st));
|
||||||
Settings::AddSkip(wrapped, skip);
|
Ui::AddSkip(wrapped, skip);
|
||||||
|
|
||||||
Settings::AddSkip(container, skip);
|
Ui::AddSkip(container, skip);
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::FollowSlideWrap<Ui::VerticalLayout>>(
|
object_ptr<Ui::FollowSlideWrap<Ui::VerticalLayout>>(
|
||||||
container,
|
container,
|
||||||
|
@ -436,5 +437,5 @@ void AddUsernameCheckLabel(
|
||||||
label->setTextColorOverride(color->c);
|
label->setTextColorOverride(color->c);
|
||||||
label->resizeToWidth(w - padding.left() - padding.right());
|
label->resizeToWidth(w - padding.left() - padding.right());
|
||||||
}, label->lifetime());
|
}, label->lifetime());
|
||||||
Settings::AddSkip(container, skip);
|
Ui::AddSkip(container, skip);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/settings_common.h" // AddDivider.
|
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
@ -21,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_calls.h"
|
#include "styles/style_calls.h"
|
||||||
#include "styles/style_info.h"
|
#include "styles/style_info.h"
|
||||||
|
@ -60,7 +60,7 @@ void StartWithBox(
|
||||||
|
|
||||||
box->setTitle(tr::lng_group_call_rtmp_title());
|
box->setTitle(tr::lng_group_call_rtmp_title());
|
||||||
|
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
box->verticalLayout(),
|
box->verticalLayout(),
|
||||||
tr::lng_group_call_rtmp_info());
|
tr::lng_group_call_rtmp_info());
|
||||||
|
|
||||||
|
@ -247,9 +247,9 @@ void StartRtmpProcess::FillRtmpRows(
|
||||||
QGuiApplication::clipboard()->setText(state->url.current());
|
QGuiApplication::clipboard()->setText(state->url.current());
|
||||||
showToast(tr::lng_group_call_rtmp_url_copied(tr::now));
|
showToast(tr::lng_group_call_rtmp_url_copied(tr::now));
|
||||||
}));
|
}));
|
||||||
Settings::AddSkip(container, st::groupCallRtmpCopyButtonTopSkip);
|
Ui::AddSkip(container, st::groupCallRtmpCopyButtonTopSkip);
|
||||||
const auto weak = container->add(std::move(wrap), rowPadding);
|
const auto weak = container->add(std::move(wrap), rowPadding);
|
||||||
Settings::AddSkip(container, st::groupCallRtmpCopyButtonBottomSkip);
|
Ui::AddSkip(container, st::groupCallRtmpCopyButtonBottomSkip);
|
||||||
button->heightValue(
|
button->heightValue(
|
||||||
) | rpl::start_with_next([=](int height) {
|
) | rpl::start_with_next([=](int height) {
|
||||||
weak->resize(weak->width(), height);
|
weak->resize(weak->width(), height);
|
||||||
|
@ -271,7 +271,7 @@ void StartRtmpProcess::FillRtmpRows(
|
||||||
};
|
};
|
||||||
|
|
||||||
// Server URL.
|
// Server URL.
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_group_call_rtmp_url_subtitle(),
|
tr::lng_group_call_rtmp_url_subtitle(),
|
||||||
st::groupCallRtmpSubsectionTitleAddPadding,
|
st::groupCallRtmpSubsectionTitleAddPadding,
|
||||||
|
@ -279,18 +279,18 @@ void StartRtmpProcess::FillRtmpRows(
|
||||||
|
|
||||||
auto urlLabelContent = state->url.value();
|
auto urlLabelContent = state->url.value();
|
||||||
addLabel(std::move(urlLabelContent));
|
addLabel(std::move(urlLabelContent));
|
||||||
Settings::AddSkip(container, st::groupCallRtmpUrlSkip);
|
Ui::AddSkip(container, st::groupCallRtmpUrlSkip);
|
||||||
addButton(false, tr::lng_group_call_rtmp_url_copy());
|
addButton(false, tr::lng_group_call_rtmp_url_copy());
|
||||||
//
|
//
|
||||||
|
|
||||||
if (divider) {
|
if (divider) {
|
||||||
Settings::AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stream Key.
|
// Stream Key.
|
||||||
Settings::AddSkip(container, st::groupCallRtmpKeySubsectionTitleSkip);
|
Ui::AddSkip(container, st::groupCallRtmpKeySubsectionTitleSkip);
|
||||||
|
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_group_call_rtmp_key_subtitle(),
|
tr::lng_group_call_rtmp_key_subtitle(),
|
||||||
st::groupCallRtmpSubsectionTitleAddPadding,
|
st::groupCallRtmpSubsectionTitleAddPadding,
|
||||||
|
|
|
@ -14,12 +14,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "calls/calls_instance.h"
|
#include "calls/calls_instance.h"
|
||||||
#include "ui/widgets/level_meter.h"
|
#include "ui/widgets/level_meter.h"
|
||||||
#include "ui/widgets/continuous_sliders.h"
|
#include "ui/widgets/continuous_sliders.h"
|
||||||
#include "ui/widgets/buttons.h"
|
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/widgets/fields/input_field.h"
|
#include "ui/widgets/fields/input_field.h"
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "boxes/share_box.h"
|
#include "boxes/share_box.h"
|
||||||
#include "history/view/history_view_schedule_box.h"
|
#include "history/view/history_view_schedule_box.h"
|
||||||
|
@ -40,7 +40,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_changes.h"
|
#include "data/data_changes.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
#include "ui/boxes/single_choice_box.h"
|
|
||||||
#include "webrtc/webrtc_audio_input_tester.h"
|
#include "webrtc/webrtc_audio_input_tester.h"
|
||||||
#include "webrtc/webrtc_media_devices.h"
|
#include "webrtc/webrtc_media_devices.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
|
@ -278,7 +277,7 @@ void SettingsBox(
|
||||||
};
|
};
|
||||||
|
|
||||||
if (addCheck) {
|
if (addCheck) {
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
}
|
}
|
||||||
const auto muteJoined = addCheck
|
const auto muteJoined = addCheck
|
||||||
? AddButton(
|
? AddButton(
|
||||||
|
@ -287,7 +286,7 @@ void SettingsBox(
|
||||||
st::groupCallSettingsButton)->toggleOn(rpl::single(joinMuted))
|
st::groupCallSettingsButton)->toggleOn(rpl::single(joinMuted))
|
||||||
: nullptr;
|
: nullptr;
|
||||||
if (addCheck) {
|
if (addCheck) {
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddButtonWithLabel(
|
AddButtonWithLabel(
|
||||||
|
@ -344,9 +343,9 @@ void SettingsBox(
|
||||||
}, was, state->micLevel, kMicTestAnimationDuration);
|
}, was, state->micLevel, kMicTestAnimationDuration);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
//AddDivider(layout);
|
//Ui::AddDivider(layout);
|
||||||
//AddSkip(layout);
|
//Ui::AddSkip(layout);
|
||||||
|
|
||||||
AddButton(
|
AddButton(
|
||||||
layout,
|
layout,
|
||||||
|
@ -577,9 +576,9 @@ void SettingsBox(
|
||||||
base::install_event_filter(box, std::move(boxKeyFilter)));
|
base::install_event_filter(box, std::move(boxKeyFilter)));
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
//AddDivider(layout);
|
//Ui::AddDivider(layout);
|
||||||
//AddSkip(layout);
|
//Ui::AddSkip(layout);
|
||||||
}
|
}
|
||||||
auto shareLink = Fn<void()>();
|
auto shareLink = Fn<void()>();
|
||||||
if (peer->isChannel()
|
if (peer->isChannel()
|
||||||
|
@ -653,9 +652,9 @@ void SettingsBox(
|
||||||
)->addClickHandler(std::move(shareLink));
|
)->addClickHandler(std::move(shareLink));
|
||||||
}
|
}
|
||||||
if (rtmp && !call->rtmpInfo().url.isEmpty()) {
|
if (rtmp && !call->rtmpInfo().url.isEmpty()) {
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
addDivider();
|
addDivider();
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
|
|
||||||
struct State {
|
struct State {
|
||||||
base::unique_qptr<Ui::PopupMenu> menu;
|
base::unique_qptr<Ui::PopupMenu> menu;
|
||||||
|
@ -738,7 +737,7 @@ void SettingsBox(
|
||||||
state->data.fire(call->rtmpInfo());
|
state->data.fire(call->rtmpInfo());
|
||||||
|
|
||||||
addDivider();
|
addDivider();
|
||||||
AddSkip(layout);
|
Ui::AddSkip(layout);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peer->canManageGroupCall()) {
|
if (peer->canManageGroupCall()) {
|
||||||
|
|
|
@ -35,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/discrete_sliders.h"
|
#include "ui/widgets/discrete_sliders.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/themes/window_theme.h"
|
#include "window/themes/window_theme.h"
|
||||||
#include "window/section_widget.h"
|
#include "window/section_widget.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
|
@ -695,9 +696,7 @@ void DraftOptionsBox(
|
||||||
|
|
||||||
if (!item->originalText().empty()) {
|
if (!item->originalText().empty()) {
|
||||||
AddFilledSkip(bottom);
|
AddFilledSkip(bottom);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(bottom, tr::lng_reply_about_quote());
|
||||||
bottom,
|
|
||||||
tr::lng_reply_about_quote());
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
const auto setupLinkActions = [=] {
|
const auto setupLinkActions = [=] {
|
||||||
|
@ -755,9 +754,7 @@ void DraftOptionsBox(
|
||||||
|
|
||||||
if (args.links.size() > 1) {
|
if (args.links.size() > 1) {
|
||||||
AddFilledSkip(bottom);
|
AddFilledSkip(bottom);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(bottom, tr::lng_link_about_choose());
|
||||||
bottom,
|
|
||||||
tr::lng_link_about_choose());
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "payments/payments_checkout_process.h" // Payments::CheckoutProcess
|
#include "payments/payments_checkout_process.h" // Payments::CheckoutProcess
|
||||||
#include "payments/payments_form.h" // Payments::InvoicePremiumGiftCode
|
#include "payments/payments_form.h" // Payments::InvoicePremiumGiftCode
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // AddButton.
|
||||||
#include "settings/settings_premium.h" // Settings::ShowPremium
|
#include "settings/settings_premium.h" // Settings::ShowPremium
|
||||||
#include "ui/boxes/choose_date_time.h"
|
#include "ui/boxes/choose_date_time.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
|
@ -31,6 +31,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/rect.h"
|
#include "ui/rect.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
|
@ -272,7 +273,7 @@ void CreateGiveawayBox(
|
||||||
tr::lng_giveaway_award()));
|
tr::lng_giveaway_award()));
|
||||||
{
|
{
|
||||||
const auto &padding = st::giveawayGiftCodeCoverDividerPadding;
|
const auto &padding = st::giveawayGiftCodeCoverDividerPadding;
|
||||||
Settings::AddSkip(box->verticalLayout(), padding.bottom());
|
Ui::AddSkip(box->verticalLayout(), padding.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto loading = box->addRow(
|
const auto loading = box->addRow(
|
||||||
|
@ -282,8 +283,8 @@ void CreateGiveawayBox(
|
||||||
{
|
{
|
||||||
loading->toggle(true, anim::type::instant);
|
loading->toggle(true, anim::type::instant);
|
||||||
const auto container = loading->entity();
|
const auto container = loading->entity();
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::CenterWrap<Ui::FlatLabel>>(
|
object_ptr<Ui::CenterWrap<Ui::FlatLabel>>(
|
||||||
box,
|
box,
|
||||||
|
@ -291,8 +292,8 @@ void CreateGiveawayBox(
|
||||||
box,
|
box,
|
||||||
tr::lng_contacts_loading(),
|
tr::lng_contacts_loading(),
|
||||||
st::giveawayLoadingLabel)));
|
st::giveawayLoadingLabel)));
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
const auto contentWrap = box->verticalLayout()->add(
|
const auto contentWrap = box->verticalLayout()->add(
|
||||||
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
|
@ -384,9 +385,9 @@ void CreateGiveawayBox(
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto &padding = st::giveawayGiftCodeTypeDividerPadding;
|
const auto &padding = st::giveawayGiftCodeTypeDividerPadding;
|
||||||
Settings::AddSkip(contentWrap->entity(), padding.top());
|
Ui::AddSkip(contentWrap->entity(), padding.top());
|
||||||
Settings::AddDivider(contentWrap->entity());
|
Ui::AddDivider(contentWrap->entity());
|
||||||
Settings::AddSkip(contentWrap->entity(), padding.bottom());
|
Ui::AddSkip(contentWrap->entity(), padding.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto randomWrap = contentWrap->entity()->add(
|
const auto randomWrap = contentWrap->entity()->add(
|
||||||
|
@ -415,7 +416,7 @@ void CreateGiveawayBox(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state->sliderValue = availablePresets.front();
|
state->sliderValue = availablePresets.front();
|
||||||
const auto title = Settings::AddSubsectionTitle(
|
const auto title = Ui::AddSubsectionTitle(
|
||||||
sliderContainer,
|
sliderContainer,
|
||||||
tr::lng_giveaway_quantity_title());
|
tr::lng_giveaway_quantity_title());
|
||||||
const auto rightLabel = Ui::CreateChild<Ui::FlatLabel>(
|
const auto rightLabel = Ui::CreateChild<Ui::FlatLabel>(
|
||||||
|
@ -443,7 +444,7 @@ void CreateGiveawayBox(
|
||||||
}, rightLabel->lifetime());
|
}, rightLabel->lifetime());
|
||||||
|
|
||||||
const auto &padding = st::giveawayGiftCodeSliderPadding;
|
const auto &padding = st::giveawayGiftCodeSliderPadding;
|
||||||
Settings::AddSkip(sliderContainer, padding.top());
|
Ui::AddSkip(sliderContainer, padding.top());
|
||||||
|
|
||||||
class Slider : public Ui::MediaSlider {
|
class Slider : public Ui::MediaSlider {
|
||||||
public:
|
public:
|
||||||
|
@ -459,7 +460,7 @@ void CreateGiveawayBox(
|
||||||
const auto slider = sliderContainer->add(
|
const auto slider = sliderContainer->add(
|
||||||
object_ptr<Slider>(sliderContainer, st::settingsScale),
|
object_ptr<Slider>(sliderContainer, st::settingsScale),
|
||||||
st::boxRowPadding);
|
st::boxRowPadding);
|
||||||
Settings::AddSkip(sliderContainer, padding.bottom());
|
Ui::AddSkip(sliderContainer, padding.bottom());
|
||||||
slider->resize(slider->width(), st::settingsScale.seekSize.height());
|
slider->resize(slider->width(), st::settingsScale.seekSize.height());
|
||||||
slider->setPseudoDiscrete(
|
slider->setPseudoDiscrete(
|
||||||
availablePresets.size(),
|
availablePresets.size(),
|
||||||
|
@ -492,11 +493,11 @@ void CreateGiveawayBox(
|
||||||
}
|
}
|
||||||
}, floatLabel->lifetime());
|
}, floatLabel->lifetime());
|
||||||
|
|
||||||
Settings::AddSkip(sliderContainer);
|
Ui::AddSkip(sliderContainer);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
sliderContainer,
|
sliderContainer,
|
||||||
tr::lng_giveaway_quantity_about());
|
tr::lng_giveaway_quantity_about());
|
||||||
Settings::AddSkip(sliderContainer);
|
Ui::AddSkip(sliderContainer);
|
||||||
|
|
||||||
sliderContainer->resizeToWidth(box->width());
|
sliderContainer->resizeToWidth(box->width());
|
||||||
};
|
};
|
||||||
|
@ -504,7 +505,7 @@ void CreateGiveawayBox(
|
||||||
{
|
{
|
||||||
const auto channelsContainer = randomWrap->entity()->add(
|
const auto channelsContainer = randomWrap->entity()->add(
|
||||||
object_ptr<Ui::VerticalLayout>(randomWrap));
|
object_ptr<Ui::VerticalLayout>(randomWrap));
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
channelsContainer,
|
channelsContainer,
|
||||||
tr::lng_giveaway_channels_title(),
|
tr::lng_giveaway_channels_title(),
|
||||||
st::giveawayGiftCodeChannelsSubsectionPadding);
|
st::giveawayGiftCodeChannelsSubsectionPadding);
|
||||||
|
@ -568,18 +569,18 @@ void CreateGiveawayBox(
|
||||||
});
|
});
|
||||||
|
|
||||||
const auto &padding = st::giveawayGiftCodeChannelsDividerPadding;
|
const auto &padding = st::giveawayGiftCodeChannelsDividerPadding;
|
||||||
Settings::AddSkip(channelsContainer, padding.top());
|
Ui::AddSkip(channelsContainer, padding.top());
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
channelsContainer,
|
channelsContainer,
|
||||||
tr::lng_giveaway_channels_about());
|
tr::lng_giveaway_channels_about());
|
||||||
Settings::AddSkip(channelsContainer, padding.bottom());
|
Ui::AddSkip(channelsContainer, padding.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto membersGroup = std::make_shared<GiveawayGroup>();
|
const auto membersGroup = std::make_shared<GiveawayGroup>();
|
||||||
{
|
{
|
||||||
const auto countriesContainer = randomWrap->entity()->add(
|
const auto countriesContainer = randomWrap->entity()->add(
|
||||||
object_ptr<Ui::VerticalLayout>(randomWrap));
|
object_ptr<Ui::VerticalLayout>(randomWrap));
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
countriesContainer,
|
countriesContainer,
|
||||||
tr::lng_giveaway_users_title());
|
tr::lng_giveaway_users_title());
|
||||||
|
|
||||||
|
@ -643,11 +644,11 @@ void CreateGiveawayBox(
|
||||||
row->addRadio(membersGroup);
|
row->addRadio(membersGroup);
|
||||||
row->setClickedCallback(createCallback(GiveawayType::OnlyNewMembers));
|
row->setClickedCallback(createCallback(GiveawayType::OnlyNewMembers));
|
||||||
|
|
||||||
Settings::AddSkip(countriesContainer);
|
Ui::AddSkip(countriesContainer);
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
countriesContainer,
|
countriesContainer,
|
||||||
tr::lng_giveaway_users_about());
|
tr::lng_giveaway_users_about());
|
||||||
Settings::AddSkip(countriesContainer);
|
Ui::AddSkip(countriesContainer);
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto addTerms = [=](not_null<Ui::VerticalLayout*> c) {
|
const auto addTerms = [=](not_null<Ui::VerticalLayout*> c) {
|
||||||
|
@ -671,7 +672,7 @@ void CreateGiveawayBox(
|
||||||
{
|
{
|
||||||
const auto dateContainer = randomWrap->entity()->add(
|
const auto dateContainer = randomWrap->entity()->add(
|
||||||
object_ptr<Ui::VerticalLayout>(randomWrap));
|
object_ptr<Ui::VerticalLayout>(randomWrap));
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
dateContainer,
|
dateContainer,
|
||||||
tr::lng_giveaway_date_title(),
|
tr::lng_giveaway_date_title(),
|
||||||
st::giveawayGiftCodeChannelsSubsectionPadding);
|
st::giveawayGiftCodeChannelsSubsectionPadding);
|
||||||
|
@ -704,7 +705,7 @@ void CreateGiveawayBox(
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
Settings::AddSkip(dateContainer);
|
Ui::AddSkip(dateContainer);
|
||||||
if (prepaid) {
|
if (prepaid) {
|
||||||
auto terms = object_ptr<Ui::VerticalLayout>(dateContainer);
|
auto terms = object_ptr<Ui::VerticalLayout>(dateContainer);
|
||||||
terms->add(object_ptr<Ui::FlatLabel>(
|
terms->add(object_ptr<Ui::FlatLabel>(
|
||||||
|
@ -713,20 +714,20 @@ void CreateGiveawayBox(
|
||||||
lt_count,
|
lt_count,
|
||||||
state->sliderValue.value() | tr::to_count()),
|
state->sliderValue.value() | tr::to_count()),
|
||||||
st::boxDividerLabel));
|
st::boxDividerLabel));
|
||||||
Settings::AddSkip(terms.data());
|
Ui::AddSkip(terms.data());
|
||||||
Settings::AddSkip(terms.data());
|
Ui::AddSkip(terms.data());
|
||||||
addTerms(terms.data());
|
addTerms(terms.data());
|
||||||
dateContainer->add(object_ptr<Ui::DividerLabel>(
|
dateContainer->add(object_ptr<Ui::DividerLabel>(
|
||||||
dateContainer,
|
dateContainer,
|
||||||
std::move(terms),
|
std::move(terms),
|
||||||
st::settingsDividerLabelPadding));
|
st::settingsDividerLabelPadding));
|
||||||
} else {
|
} else {
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
dateContainer,
|
dateContainer,
|
||||||
tr::lng_giveaway_date_about(
|
tr::lng_giveaway_date_about(
|
||||||
lt_count,
|
lt_count,
|
||||||
state->sliderValue.value() | tr::to_count()));
|
state->sliderValue.value() | tr::to_count()));
|
||||||
Settings::AddSkip(dateContainer);
|
Ui::AddSkip(dateContainer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -740,7 +741,7 @@ void CreateGiveawayBox(
|
||||||
while (listOptions->count()) {
|
while (listOptions->count()) {
|
||||||
delete listOptions->widgetAt(0);
|
delete listOptions->widgetAt(0);
|
||||||
}
|
}
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
listOptions,
|
listOptions,
|
||||||
tr::lng_giveaway_duration_title(
|
tr::lng_giveaway_duration_title(
|
||||||
lt_count,
|
lt_count,
|
||||||
|
@ -753,7 +754,7 @@ void CreateGiveawayBox(
|
||||||
st::giveawayGiftCodeGiftOption,
|
st::giveawayGiftCodeGiftOption,
|
||||||
true);
|
true);
|
||||||
|
|
||||||
Settings::AddSkip(listOptions);
|
Ui::AddSkip(listOptions);
|
||||||
|
|
||||||
auto termsContainer = object_ptr<Ui::VerticalLayout>(listOptions);
|
auto termsContainer = object_ptr<Ui::VerticalLayout>(listOptions);
|
||||||
addTerms(termsContainer.data());
|
addTerms(termsContainer.data());
|
||||||
|
|
|
@ -23,7 +23,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "info/statistics/info_statistics_inner_widget.h" // FillLoading.
|
#include "info/statistics/info_statistics_inner_widget.h" // FillLoading.
|
||||||
#include "info/statistics/info_statistics_list_controllers.h"
|
#include "info/statistics/info_statistics_list_controllers.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "statistics/widgets/chart_header_widget.h"
|
#include "statistics/widgets/chart_header_widget.h"
|
||||||
#include "ui/boxes/boost_box.h"
|
#include "ui/boxes/boost_box.h"
|
||||||
#include "ui/controls/invite_link_label.h"
|
#include "ui/controls/invite_link_label.h"
|
||||||
|
@ -31,6 +30,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/empty_userpic.h"
|
#include "ui/empty_userpic.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/rect.h"
|
#include "ui/rect.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/discrete_sliders.h"
|
#include "ui/widgets/discrete_sliders.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
|
@ -60,9 +60,9 @@ void FillOverview(
|
||||||
const Data::BoostStatus &status) {
|
const Data::BoostStatus &status) {
|
||||||
const auto &stats = status.overview;
|
const auto &stats = status.overview;
|
||||||
|
|
||||||
::Settings::AddSkip(content, st::boostsLayerOverviewMargins.top());
|
Ui::AddSkip(content, st::boostsLayerOverviewMargins.top());
|
||||||
AddHeader(content, tr::lng_stats_overview_title);
|
AddHeader(content, tr::lng_stats_overview_title);
|
||||||
::Settings::AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
const auto diffBetweenHeaders = 0
|
const auto diffBetweenHeaders = 0
|
||||||
+ st::statisticsOverviewValue.style.font->height
|
+ st::statisticsOverviewValue.style.font->height
|
||||||
|
@ -157,7 +157,7 @@ void FillOverview(
|
||||||
topRightLabel->x(),
|
topRightLabel->x(),
|
||||||
bottomLeftLabel->y());
|
bottomLeftLabel->y());
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
::Settings::AddSkip(content, st::boostsLayerOverviewMargins.bottom());
|
Ui::AddSkip(content, st::boostsLayerOverviewMargins.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FillShareLink(
|
void FillShareLink(
|
||||||
|
@ -213,7 +213,7 @@ void FillShareLink(
|
||||||
}, wrap->lifetime());
|
}, wrap->lifetime());
|
||||||
wrap->showChildren();
|
wrap->showChildren();
|
||||||
}
|
}
|
||||||
::Settings::AddSkip(content, st::boostsLinkFieldPadding.bottom());
|
Ui::AddSkip(content, st::boostsLinkFieldPadding.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
void FillGetBoostsButton(
|
void FillGetBoostsButton(
|
||||||
|
@ -225,14 +225,13 @@ void FillGetBoostsButton(
|
||||||
if (!Api::PremiumGiftCodeOptions(peer).giveawayGiftsPurchaseAvailable()) {
|
if (!Api::PremiumGiftCodeOptions(peer).giveawayGiftsPurchaseAvailable()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
::Settings::AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
const auto &st = st::getBoostsButton;
|
const auto &st = st::getBoostsButton;
|
||||||
const auto &icon = st::getBoostsButtonIcon;
|
const auto &icon = st::getBoostsButtonIcon;
|
||||||
const auto button = content->add(
|
const auto button = content->add(object_ptr<Ui::SettingsButton>(
|
||||||
::Settings::CreateButton(
|
content.get(),
|
||||||
content.get(),
|
tr::lng_boosts_get_boosts(),
|
||||||
tr::lng_boosts_get_boosts(),
|
st));
|
||||||
st));
|
|
||||||
button->setClickedCallback([=] {
|
button->setClickedCallback([=] {
|
||||||
show->showBox(Box(
|
show->showBox(Box(
|
||||||
CreateGiveawayBox,
|
CreateGiveawayBox,
|
||||||
|
@ -248,8 +247,8 @@ void FillGetBoostsButton(
|
||||||
st::infoSharedMediaButtonIconPosition.x(),
|
st::infoSharedMediaButtonIconPosition.x(),
|
||||||
(st.height + rect::m::sum::v(st.padding) - icon.height()) / 2,
|
(st.height + rect::m::sum::v(st.padding) - icon.height()) / 2,
|
||||||
})->show();
|
})->show();
|
||||||
::Settings::AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
::Settings::AddDividerText(content, tr::lng_boosts_get_boosts_subtext());
|
Ui::AddDividerText(content, tr::lng_boosts_get_boosts_subtext());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -319,16 +318,16 @@ void InnerWidget::fill() {
|
||||||
|
|
||||||
FillOverview(inner, status);
|
FillOverview(inner, status);
|
||||||
|
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddDivider(inner);
|
Ui::AddDivider(inner);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
|
|
||||||
if (!status.prepaidGiveaway.empty()) {
|
if (!status.prepaidGiveaway.empty()) {
|
||||||
const auto multiplier = Api::PremiumGiftCodeOptions(_peer)
|
const auto multiplier = Api::PremiumGiftCodeOptions(_peer)
|
||||||
.giveawayBoostsPerPremium();
|
.giveawayBoostsPerPremium();
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddHeader(inner, tr::lng_boosts_prepaid_giveaway_title);
|
AddHeader(inner, tr::lng_boosts_prepaid_giveaway_title);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
for (const auto &g : status.prepaidGiveaway) {
|
for (const auto &g : status.prepaidGiveaway) {
|
||||||
using namespace Giveaway;
|
using namespace Giveaway;
|
||||||
const auto button = inner->add(object_ptr<GiveawayTypeRow>(
|
const auto button = inner->add(object_ptr<GiveawayTypeRow>(
|
||||||
|
@ -361,9 +360,9 @@ void InnerWidget::fill() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddDivider(inner);
|
Ui::AddDivider(inner);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto hasBoosts = (status.firstSliceBoosts.multipliedTotal > 0);
|
const auto hasBoosts = (status.firstSliceBoosts.multipliedTotal > 0);
|
||||||
|
@ -406,7 +405,7 @@ void InnerWidget::fill() {
|
||||||
lt_count,
|
lt_count,
|
||||||
status.firstSliceGifts.multipliedTotal);
|
status.firstSliceGifts.multipliedTotal);
|
||||||
if (hasOneTab) {
|
if (hasOneTab) {
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
const auto header = inner->add(
|
const auto header = inner->add(
|
||||||
object_ptr<Statistic::Header>(inner),
|
object_ptr<Statistic::Header>(inner),
|
||||||
st::statisticsLayerMargins
|
st::statisticsLayerMargins
|
||||||
|
@ -478,18 +477,18 @@ void InnerWidget::fill() {
|
||||||
_peer,
|
_peer,
|
||||||
tr::lng_boosts_title());
|
tr::lng_boosts_title());
|
||||||
|
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddDividerText(inner, tr::lng_boosts_list_subtext());
|
Ui::AddDividerText(inner, tr::lng_boosts_list_subtext());
|
||||||
}
|
}
|
||||||
|
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddHeader(inner, tr::lng_boosts_link_title);
|
AddHeader(inner, tr::lng_boosts_link_title);
|
||||||
::Settings::AddSkip(inner, st::boostsLinkSkip);
|
Ui::AddSkip(inner, st::boostsLinkSkip);
|
||||||
FillShareLink(inner, _show, status.link, _peer);
|
FillShareLink(inner, _show, status.link, _peer);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddDividerText(inner, tr::lng_boosts_link_subtext());
|
Ui::AddDividerText(inner, tr::lng_boosts_link_subtext());
|
||||||
|
|
||||||
FillGetBoostsButton(inner, _controller, _show, _peer, reloadOnDone);
|
FillGetBoostsButton(inner, _controller, _show, _peer, reloadOnDone);
|
||||||
|
|
||||||
|
|
|
@ -16,26 +16,21 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_changes.h"
|
#include "data/data_changes.h"
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "data/notify/data_notify_settings.h"
|
#include "data/notify/data_notify_settings.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/widgets/shadow.h"
|
#include "ui/widgets/shadow.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/box_content_divider.h"
|
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/boxes/report_box.h"
|
#include "ui/boxes/report_box.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/text/text_utilities.h" // Ui::Text::ToUpper
|
#include "ui/text/text_utilities.h" // Ui::Text::ToUpper
|
||||||
#include "ui/text/text_variant.h"
|
#include "ui/text/text_variant.h"
|
||||||
#include "history/history_location_manager.h" // LocationClickHandler.
|
#include "history/history_location_manager.h" // LocationClickHandler.
|
||||||
#include "history/view/history_view_context_menu.h" // HistoryView::ShowReportPeerBox
|
#include "history/view/history_view_context_menu.h" // HistoryView::ShowReportPeerBox
|
||||||
#include "boxes/abstract_box.h"
|
|
||||||
#include "boxes/peer_list_box.h"
|
|
||||||
#include "boxes/peer_list_controllers.h"
|
|
||||||
#include "boxes/add_contact_box.h"
|
|
||||||
#include "boxes/peers/add_bot_to_chat_box.h"
|
#include "boxes/peers/add_bot_to_chat_box.h"
|
||||||
#include "boxes/peers/edit_contact_box.h"
|
#include "boxes/peers/edit_contact_box.h"
|
||||||
#include "boxes/report_messages_box.h"
|
#include "boxes/report_messages_box.h"
|
||||||
|
@ -58,7 +53,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/click_handler_types.h"
|
#include "core/click_handler_types.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "api/api_blocked_peers.h"
|
#include "api/api_blocked_peers.h"
|
||||||
#include "styles/style_info.h"
|
#include "styles/style_info.h"
|
||||||
|
@ -798,11 +792,11 @@ void ActionsFiller::addInviteToGroupAction(
|
||||||
_wrap.data(),
|
_wrap.data(),
|
||||||
object_ptr<Ui::VerticalLayout>(_wrap.data())));
|
object_ptr<Ui::VerticalLayout>(_wrap.data())));
|
||||||
about->toggleOn(InviteToChatAbout(user) | rpl::map(notEmpty));
|
about->toggleOn(InviteToChatAbout(user) | rpl::map(notEmpty));
|
||||||
::Settings::AddSkip(about->entity());
|
Ui::AddSkip(about->entity());
|
||||||
::Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
about->entity(),
|
about->entity(),
|
||||||
InviteToChatAbout(user) | rpl::filter(notEmpty));
|
InviteToChatAbout(user) | rpl::filter(notEmpty));
|
||||||
::Settings::AddSkip(about->entity());
|
Ui::AddSkip(about->entity());
|
||||||
about->finishAnimating();
|
about->finishAnimating();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,12 +22,13 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "lottie/lottie_icon.h"
|
#include "lottie/lottie_icon.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // CreateLottieIcon.
|
||||||
#include "statistics/chart_widget.h"
|
#include "statistics/chart_widget.h"
|
||||||
#include "statistics/statistics_common.h"
|
#include "statistics/statistics_common.h"
|
||||||
#include "statistics/widgets/chart_header_widget.h"
|
#include "statistics/widgets/chart_header_widget.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/rect.h"
|
#include "ui/rect.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
|
@ -114,9 +115,9 @@ void FillStatistic(
|
||||||
const auto &padding = st::statisticsChartEntryPadding;
|
const auto &padding = st::statisticsChartEntryPadding;
|
||||||
const auto &m = st::statisticsLayerMargins;
|
const auto &m = st::statisticsLayerMargins;
|
||||||
const auto addSkip = [&](not_null<Ui::VerticalLayout*> c) {
|
const auto addSkip = [&](not_null<Ui::VerticalLayout*> c) {
|
||||||
::Settings::AddSkip(c, padding.bottom());
|
Ui::AddSkip(c, padding.bottom());
|
||||||
::Settings::AddDivider(c);
|
Ui::AddDivider(c);
|
||||||
::Settings::AddSkip(c, padding.top());
|
Ui::AddSkip(c, padding.top());
|
||||||
};
|
};
|
||||||
const auto addChart = [&](
|
const auto addChart = [&](
|
||||||
Data::StatisticalGraph &graphData,
|
Data::StatisticalGraph &graphData,
|
||||||
|
@ -283,9 +284,9 @@ void FillOverview(
|
||||||
const auto &channel = stats.channel;
|
const auto &channel = stats.channel;
|
||||||
const auto &supergroup = stats.supergroup;
|
const auto &supergroup = stats.supergroup;
|
||||||
|
|
||||||
::Settings::AddSkip(content, st::statisticsLayerOverviewMargins.top());
|
Ui::AddSkip(content, st::statisticsLayerOverviewMargins.top());
|
||||||
AddHeader(content, tr::lng_stats_overview_title, stats);
|
AddHeader(content, tr::lng_stats_overview_title, stats);
|
||||||
::Settings::AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
struct Second final {
|
struct Second final {
|
||||||
QColor color;
|
QColor color;
|
||||||
|
@ -457,7 +458,7 @@ void FillOverview(
|
||||||
topRightLabel->x(),
|
topRightLabel->x(),
|
||||||
bottomLeftLabel->y());
|
bottomLeftLabel->y());
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
::Settings::AddSkip(content, st::statisticsLayerOverviewMargins.bottom());
|
Ui::AddSkip(content, st::statisticsLayerOverviewMargins.bottom());
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
@ -503,7 +504,7 @@ void FillLoading(
|
||||||
st::statisticsLoadingSubtext)),
|
st::statisticsLoadingSubtext)),
|
||||||
st::changePhoneDescriptionPadding + st::boxRowPadding);
|
st::changePhoneDescriptionPadding + st::boxRowPadding);
|
||||||
|
|
||||||
::Settings::AddSkip(content, st::settingsBlockedListIconPadding.top());
|
Ui::AddSkip(content, st::settingsBlockedListIconPadding.top());
|
||||||
}
|
}
|
||||||
|
|
||||||
InnerWidget::InnerWidget(
|
InnerWidget::InnerWidget(
|
||||||
|
@ -577,12 +578,12 @@ void InnerWidget::fill() {
|
||||||
};
|
};
|
||||||
if (_state.stats.message) {
|
if (_state.stats.message) {
|
||||||
if (const auto i = _peer->owner().message(_contextId)) {
|
if (const auto i = _peer->owner().message(_contextId)) {
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
const auto preview = inner->add(
|
const auto preview = inner->add(
|
||||||
object_ptr<MessagePreview>(this, i, -1, -1, QImage()));
|
object_ptr<MessagePreview>(this, i, -1, -1, QImage()));
|
||||||
AddContextMenu(preview, _controller, i);
|
AddContextMenu(preview, _controller, i);
|
||||||
::Settings::AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
::Settings::AddDivider(inner);
|
Ui::AddDivider(inner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
FillOverview(inner, _state.stats);
|
FillOverview(inner, _state.stats);
|
||||||
|
@ -597,10 +598,10 @@ void InnerWidget::fill() {
|
||||||
_showRequests.fire({ .info = peer->id });
|
_showRequests.fire({ .info = peer->id });
|
||||||
};
|
};
|
||||||
const auto addSkip = [&](not_null<Ui::VerticalLayout*> c) {
|
const auto addSkip = [&](not_null<Ui::VerticalLayout*> c) {
|
||||||
::Settings::AddSkip(c);
|
Ui::AddSkip(c);
|
||||||
::Settings::AddDivider(c);
|
Ui::AddDivider(c);
|
||||||
::Settings::AddSkip(c);
|
Ui::AddSkip(c);
|
||||||
::Settings::AddSkip(c);
|
Ui::AddSkip(c);
|
||||||
};
|
};
|
||||||
if (!supergroup.topSenders.empty()) {
|
if (!supergroup.topSenders.empty()) {
|
||||||
AddMembersList(
|
AddMembersList(
|
||||||
|
@ -653,7 +654,7 @@ void InnerWidget::fillRecentPosts() {
|
||||||
object_ptr<Ui::VerticalLayout>(container)));
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
const auto content = wrap->entity();
|
const auto content = wrap->entity();
|
||||||
AddHeader(content, tr::lng_stats_recent_messages_title, { stats, {} });
|
AddHeader(content, tr::lng_stats_recent_messages_title, { stats, {} });
|
||||||
::Settings::AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
const auto addMessage = [=](
|
const auto addMessage = [=](
|
||||||
not_null<Ui::VerticalLayout*> messageWrap,
|
not_null<Ui::VerticalLayout*> messageWrap,
|
||||||
|
@ -689,7 +690,7 @@ void InnerWidget::fillRecentPosts() {
|
||||||
button->setClickedCallback([=, fullId = item->fullId()] {
|
button->setClickedCallback([=, fullId = item->fullId()] {
|
||||||
_showRequests.fire({ .messageStatistic = fullId });
|
_showRequests.fire({ .messageStatistic = fullId });
|
||||||
});
|
});
|
||||||
::Settings::AddSkip(messageWrap);
|
Ui::AddSkip(messageWrap);
|
||||||
if (!wrap->toggled()) {
|
if (!wrap->toggled()) {
|
||||||
wrap->toggle(true, anim::type::normal);
|
wrap->toggle(true, anim::type::normal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/empty_userpic.h"
|
#include "ui/empty_userpic.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/rect.h"
|
#include "ui/rect.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
@ -57,11 +58,11 @@ void AddArrow(not_null<Ui::RpWidget*> parent) {
|
||||||
arrow->show();
|
arrow->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddSubsectionTitle(
|
void AddSubtitle(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
rpl::producer<QString> title) {
|
rpl::producer<QString> title) {
|
||||||
const auto &subtitlePadding = st::settingsButton.padding;
|
const auto &subtitlePadding = st::settingsButton.padding;
|
||||||
::Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
std::move(title),
|
std::move(title),
|
||||||
{ 0, -subtitlePadding.top(), 0, -subtitlePadding.bottom() });
|
{ 0, -subtitlePadding.top(), 0, -subtitlePadding.bottom() });
|
||||||
|
@ -636,7 +637,7 @@ void AddPublicForwards(
|
||||||
});
|
});
|
||||||
|
|
||||||
if (const auto total = firstSlice.total; total > 0) {
|
if (const auto total = firstSlice.total; total > 0) {
|
||||||
AddSubsectionTitle(
|
AddSubtitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_stats_overview_message_public_share(
|
tr::lng_stats_overview_message_public_share(
|
||||||
lt_count_decimal,
|
lt_count_decimal,
|
||||||
|
@ -683,7 +684,7 @@ void AddMembersList(
|
||||||
};
|
};
|
||||||
const auto state = container->lifetime().make_state<State>(std::move(d));
|
const auto state = container->lifetime().make_state<State>(std::move(d));
|
||||||
|
|
||||||
AddSubsectionTitle(container, std::move(title));
|
AddSubtitle(container, std::move(title));
|
||||||
|
|
||||||
state->delegate.setContent(container->add(
|
state->delegate.setContent(container->add(
|
||||||
object_ptr<PeerListContent>(container, &state->controller)));
|
object_ptr<PeerListContent>(container, &state->controller)));
|
||||||
|
|
|
@ -15,8 +15,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/widgets/color_editor.h"
|
#include "ui/widgets/color_editor.h"
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/rect.h"
|
#include "ui/rect.h"
|
||||||
#include "styles/style_info_userpic_builder.h"
|
#include "styles/style_info_userpic_builder.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
|
@ -256,9 +256,9 @@ object_ptr<Ui::RpWidget> CreateGradientEditor(
|
||||||
preview->setDocument(document);
|
preview->setDocument(document);
|
||||||
}
|
}
|
||||||
|
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
const auto state = container->lifetime().make_state<State>();
|
const auto state = container->lifetime().make_state<State>();
|
||||||
state->colors = std::move(startColors);
|
state->colors = std::move(startColors);
|
||||||
|
@ -267,9 +267,9 @@ object_ptr<Ui::RpWidget> CreateGradientEditor(
|
||||||
&state->colors));
|
&state->colors));
|
||||||
buttonsContainer->resize(0, st::userpicBuilderEmojiAccentColorSize);
|
buttonsContainer->resize(0, st::userpicBuilderEmojiAccentColorSize);
|
||||||
|
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
Settings::AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
Settings::AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
const auto editor = container->add(object_ptr<ColorEditor>(
|
const auto editor = container->add(object_ptr<ColorEditor>(
|
||||||
container,
|
container,
|
||||||
|
|
|
@ -18,9 +18,10 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_app_config.h"
|
#include "main/main_app_config.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // IconDescriptor.
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
|
@ -64,7 +65,7 @@ object_ptr<Ui::RpWidget> AntiSpamValidator::createButton() const {
|
||||||
rpl::variable<bool> locked;
|
rpl::variable<bool> locked;
|
||||||
rpl::event_stream<bool> toggled;
|
rpl::event_stream<bool> toggled;
|
||||||
};
|
};
|
||||||
Settings::AddSkip(container->entity());
|
Ui::AddSkip(container->entity());
|
||||||
const auto state = container->lifetime().make_state<State>();
|
const auto state = container->lifetime().make_state<State>();
|
||||||
const auto button = container->entity()->add(
|
const auto button = container->entity()->add(
|
||||||
EditPeerInfoBox::CreateButton(
|
EditPeerInfoBox::CreateButton(
|
||||||
|
@ -78,8 +79,8 @@ object_ptr<Ui::RpWidget> AntiSpamValidator::createButton() const {
|
||||||
_channel->antiSpamMode()
|
_channel->antiSpamMode()
|
||||||
) | rpl::then(state->toggled.events()));
|
) | rpl::then(state->toggled.events()));
|
||||||
container->show(anim::type::instant);
|
container->show(anim::type::instant);
|
||||||
Settings::AddSkip(container->entity());
|
Ui::AddSkip(container->entity());
|
||||||
Settings::AddDividerText(
|
Ui::AddDividerText(
|
||||||
container->entity(),
|
container->entity(),
|
||||||
tr::lng_manage_peer_antispam_about());
|
tr::lng_manage_peer_antispam_about());
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "payments/ui/payments_form_summary.h"
|
#include "payments/ui/payments_form_summary.h"
|
||||||
|
|
||||||
#include "payments/ui/payments_panel_delegate.h"
|
#include "payments/ui/payments_panel_delegate.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // AddButtonWithLabel.
|
||||||
#include "ui/widgets/scroll_area.h"
|
#include "ui/widgets/scroll_area.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/wrap/fade_wrap.h"
|
#include "ui/wrap/fade_wrap.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
|
@ -117,7 +118,7 @@ bool FormSummary::showCriticalError(const TextWithEntities &text) {
|
||||||
< st::paymentsPanelSize.height() / 2)) {
|
< st::paymentsPanelSize.height() / 2)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
Settings::AddSkip(_layout.get(), st::paymentsPricesTopSkip);
|
Ui::AddSkip(_layout.get(), st::paymentsPricesTopSkip);
|
||||||
_layout->add(object_ptr<FlatLabel>(
|
_layout->add(object_ptr<FlatLabel>(
|
||||||
_layout.get(),
|
_layout.get(),
|
||||||
rpl::single(text),
|
rpl::single(text),
|
||||||
|
@ -317,15 +318,15 @@ void FormSummary::setupPrices(not_null<VerticalLayout*> layout) {
|
||||||
return right;
|
return right;
|
||||||
};
|
};
|
||||||
|
|
||||||
Settings::AddSkip(layout, st::paymentsPricesTopSkip);
|
Ui::AddSkip(layout, st::paymentsPricesTopSkip);
|
||||||
if (_invoice.receipt) {
|
if (_invoice.receipt) {
|
||||||
addRow(
|
addRow(
|
||||||
tr::lng_payments_date_label(tr::now),
|
tr::lng_payments_date_label(tr::now),
|
||||||
{ langDateTime(base::unixtime::parse(_invoice.receipt.date)) },
|
{ langDateTime(base::unixtime::parse(_invoice.receipt.date)) },
|
||||||
true);
|
true);
|
||||||
Settings::AddSkip(layout, st::paymentsPricesBottomSkip);
|
Ui::AddSkip(layout, st::paymentsPricesBottomSkip);
|
||||||
Settings::AddDivider(layout);
|
Ui::AddDivider(layout);
|
||||||
Settings::AddSkip(layout, st::paymentsPricesBottomSkip);
|
Ui::AddSkip(layout, st::paymentsPricesBottomSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto add = [&](
|
const auto add = [&](
|
||||||
|
@ -367,7 +368,7 @@ void FormSummary::setupPrices(not_null<VerticalLayout*> layout) {
|
||||||
}
|
}
|
||||||
|
|
||||||
add(tr::lng_payments_total_label(tr::now), total, true);
|
add(tr::lng_payments_total_label(tr::now), total, true);
|
||||||
Settings::AddSkip(layout, st::paymentsPricesBottomSkip);
|
Ui::AddSkip(layout, st::paymentsPricesBottomSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormSummary::setupSuggestedTips(not_null<VerticalLayout*> layout) {
|
void FormSummary::setupSuggestedTips(not_null<VerticalLayout*> layout) {
|
||||||
|
@ -479,7 +480,7 @@ void FormSummary::setupSuggestedTips(not_null<VerticalLayout*> layout) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormSummary::setupSections(not_null<VerticalLayout*> layout) {
|
void FormSummary::setupSections(not_null<VerticalLayout*> layout) {
|
||||||
Settings::AddSkip(layout, st::paymentsSectionsTopSkip);
|
Ui::AddSkip(layout, st::paymentsSectionsTopSkip);
|
||||||
|
|
||||||
const auto add = [&](
|
const auto add = [&](
|
||||||
rpl::producer<QString> title,
|
rpl::producer<QString> title,
|
||||||
|
@ -558,7 +559,7 @@ void FormSummary::setupSections(not_null<VerticalLayout*> layout) {
|
||||||
&st::paymentsIconPhone,
|
&st::paymentsIconPhone,
|
||||||
[=] { _delegate->panelEditPhone(); });
|
[=] { _delegate->panelEditPhone(); });
|
||||||
}
|
}
|
||||||
Settings::AddSkip(layout, st::paymentsSectionsTopSkip);
|
Ui::AddSkip(layout, st::paymentsSectionsTopSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FormSummary::setupContent(not_null<VerticalLayout*> layout) {
|
void FormSummary::setupContent(not_null<VerticalLayout*> layout) {
|
||||||
|
@ -569,9 +570,9 @@ void FormSummary::setupContent(not_null<VerticalLayout*> layout) {
|
||||||
|
|
||||||
setupCover(layout);
|
setupCover(layout);
|
||||||
if (_invoice) {
|
if (_invoice) {
|
||||||
Settings::AddDivider(layout);
|
Ui::AddDivider(layout);
|
||||||
setupPrices(layout);
|
setupPrices(layout);
|
||||||
Settings::AddDivider(layout);
|
Ui::AddDivider(layout);
|
||||||
setupSections(layout);
|
setupSections(layout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/fields/password_input.h"
|
#include "ui/widgets/fields/password_input.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -63,7 +64,7 @@ BottomButton CreateBottomDisableButton(
|
||||||
Fn<void()> &&callback) {
|
Fn<void()> &&callback) {
|
||||||
const auto content = Ui::CreateChild<Ui::VerticalLayout>(parent.get());
|
const auto content = Ui::CreateChild<Ui::VerticalLayout>(parent.get());
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
AddButton(
|
AddButton(
|
||||||
content,
|
content,
|
||||||
|
@ -132,7 +133,7 @@ void SetupHeader(
|
||||||
animate(anim::repeat::once);
|
animate(anim::repeat::once);
|
||||||
}, content->lifetime());
|
}, content->lifetime());
|
||||||
}
|
}
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
content->add(
|
content->add(
|
||||||
object_ptr<Ui::CenterWrap<>>(
|
object_ptr<Ui::CenterWrap<>>(
|
||||||
|
@ -248,7 +249,7 @@ not_null<Ui::RoundButton*> AddDoneButton(
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddSkipInsteadOfField(not_null<Ui::VerticalLayout*> content) {
|
void AddSkipInsteadOfField(not_null<Ui::VerticalLayout*> content) {
|
||||||
AddSkip(content, st::settingLocalPasscodeInputField.heightMin);
|
Ui::AddSkip(content, st::settingLocalPasscodeInputField.heightMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddSkipInsteadOfError(not_null<Ui::VerticalLayout*> content) {
|
void AddSkipInsteadOfError(not_null<Ui::VerticalLayout*> content) {
|
||||||
|
@ -257,7 +258,7 @@ void AddSkipInsteadOfError(not_null<Ui::VerticalLayout*> content) {
|
||||||
tr::lng_language_name(tr::now),
|
tr::lng_language_name(tr::now),
|
||||||
st::settingLocalPasscodeError);
|
st::settingLocalPasscodeError);
|
||||||
const auto &padding = st::changePhoneDescriptionPadding;
|
const auto &padding = st::changePhoneDescriptionPadding;
|
||||||
AddSkip(content, dummy->height() + padding.top() + padding.bottom());
|
Ui::AddSkip(content, dummy->height() + padding.top() + padding.bottom());
|
||||||
dummy = nullptr;
|
dummy = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,13 +13,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/cloud_password/settings_cloud_password_common.h"
|
#include "settings/cloud_password/settings_cloud_password_common.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/fields/input_field.h"
|
#include "ui/widgets/fields/input_field.h"
|
||||||
#include "ui/wrap/padding_wrap.h"
|
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
|
|
||||||
|
@ -82,7 +81,7 @@ void Email::setupContent() {
|
||||||
: tr::lng_settings_cloud_password_email_subtitle(),
|
: tr::lng_settings_cloud_password_email_subtitle(),
|
||||||
tr::lng_settings_cloud_password_email_about());
|
tr::lng_settings_cloud_password_email_about());
|
||||||
|
|
||||||
AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
||||||
|
|
||||||
const auto wrap = AddWrappedField(
|
const auto wrap = AddWrappedField(
|
||||||
content,
|
content,
|
||||||
|
|
|
@ -17,6 +17,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/cloud_password/settings_cloud_password_input.h"
|
#include "settings/cloud_password/settings_cloud_password_input.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_start.h"
|
#include "settings/cloud_password/settings_cloud_password_start.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
@ -123,7 +124,7 @@ void EmailConfirm::setupContent() {
|
||||||
? recoverEmailPattern
|
? recoverEmailPattern
|
||||||
: state->unconfirmedPattern)));
|
: state->unconfirmedPattern)));
|
||||||
|
|
||||||
AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
||||||
|
|
||||||
auto objectInput = object_ptr<Ui::SentCodeField>(
|
auto objectInput = object_ptr<Ui::SentCodeField>(
|
||||||
content,
|
content,
|
||||||
|
|
|
@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/cloud_password/settings_cloud_password_common.h"
|
#include "settings/cloud_password/settings_cloud_password_common.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_email.h"
|
#include "settings/cloud_password/settings_cloud_password_email.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
#include "settings/cloud_password/settings_cloud_password_manage.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/fields/input_field.h"
|
#include "ui/widgets/fields/input_field.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
|
@ -71,7 +72,7 @@ void Hint::setupContent() {
|
||||||
tr::lng_settings_cloud_password_hint_subtitle(),
|
tr::lng_settings_cloud_password_hint_subtitle(),
|
||||||
tr::lng_settings_cloud_password_hint_about());
|
tr::lng_settings_cloud_password_hint_about());
|
||||||
|
|
||||||
AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
||||||
|
|
||||||
const auto wrap = AddWrappedField(
|
const auto wrap = AddWrappedField(
|
||||||
content,
|
content,
|
||||||
|
|
|
@ -24,6 +24,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/fields/password_input.h"
|
#include "ui/widgets/fields/password_input.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -184,7 +185,7 @@ void Input::setupContent() {
|
||||||
: tr::lng_settings_cloud_password_password_subtitle(),
|
: tr::lng_settings_cloud_password_password_subtitle(),
|
||||||
tr::lng_cloud_password_about());
|
tr::lng_cloud_password_about());
|
||||||
|
|
||||||
AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
||||||
|
|
||||||
const auto newInput = AddPasswordField(
|
const auto newInput = AddPasswordField(
|
||||||
content,
|
content,
|
||||||
|
@ -322,7 +323,7 @@ void Input::setupContent() {
|
||||||
showBack();
|
showBack();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!newInput->text().isEmpty()) {
|
if (!newInput->text().isEmpty()) {
|
||||||
|
|
|
@ -10,19 +10,18 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "api/api_cloud_password.h"
|
#include "api/api_cloud_password.h"
|
||||||
#include "core/core_cloud_password.h"
|
#include "core/core_cloud_password.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "lottie/lottie_icon.h"
|
|
||||||
#include "settings/cloud_password/settings_cloud_password_common.h"
|
#include "settings/cloud_password/settings_cloud_password_common.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
#include "settings/cloud_password/settings_cloud_password_email_confirm.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_email.h"
|
#include "settings/cloud_password/settings_cloud_password_email.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_hint.h"
|
#include "settings/cloud_password/settings_cloud_password_hint.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_input.h"
|
#include "settings/cloud_password/settings_cloud_password_input.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_start.h"
|
#include "settings/cloud_password/settings_cloud_password_start.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_boxes.h"
|
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
|
@ -129,7 +128,7 @@ void Manage::setupContent() {
|
||||||
TextWithEntities::Simple),
|
TextWithEntities::Simple),
|
||||||
u"cloud_password/intro"_q);
|
u"cloud_password/intro"_q);
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddButton(
|
AddButton(
|
||||||
content,
|
content,
|
||||||
tr::lng_settings_cloud_password_manage_password_change(),
|
tr::lng_settings_cloud_password_manage_password_change(),
|
||||||
|
@ -152,7 +151,7 @@ void Manage::setupContent() {
|
||||||
|
|
||||||
showOtherAndRememberPassword(CloudPasswordEmailId());
|
showOtherAndRememberPassword(CloudPasswordEmailId());
|
||||||
});
|
});
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
using Divider = CloudPassword::OneEdgeBoxContentDivider;
|
using Divider = CloudPassword::OneEdgeBoxContentDivider;
|
||||||
const auto divider = Ui::CreateChild<Divider>(this);
|
const auto divider = Ui::CreateChild<Divider>(this);
|
||||||
|
|
|
@ -10,6 +10,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_common.h"
|
#include "settings/cloud_password/settings_cloud_password_common.h"
|
||||||
#include "settings/cloud_password/settings_cloud_password_input.h"
|
#include "settings/cloud_password/settings_cloud_password_input.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
|
|
|
@ -23,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/boxes/single_choice_box.h"
|
#include "ui/boxes/single_choice_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "boxes/connection_box.h"
|
#include "boxes/connection_box.h"
|
||||||
#include "boxes/about_box.h"
|
#include "boxes/about_box.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
|
@ -683,7 +684,7 @@ void CheckNonEmptyOptions(
|
||||||
container->add(object_ptr<Ui::OverrideMargins>(
|
container->add(object_ptr<Ui::OverrideMargins>(
|
||||||
container,
|
container,
|
||||||
std::move(wrap)));
|
std::move(wrap)));
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/padding_wrap.h"
|
#include "ui/wrap/padding_wrap.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
|
@ -74,7 +75,7 @@ rpl::producer<QString> Blocked::title() {
|
||||||
QPointer<Ui::RpWidget> Blocked::createPinnedToTop(not_null<QWidget*> parent) {
|
QPointer<Ui::RpWidget> Blocked::createPinnedToTop(not_null<QWidget*> parent) {
|
||||||
const auto content = Ui::CreateChild<Ui::VerticalLayout>(parent.get());
|
const auto content = Ui::CreateChild<Ui::VerticalLayout>(parent.get());
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
AddButton(
|
AddButton(
|
||||||
content,
|
content,
|
||||||
|
@ -85,20 +86,20 @@ QPointer<Ui::RpWidget> Blocked::createPinnedToTop(not_null<QWidget*> parent) {
|
||||||
BlockedBoxController::BlockNewPeer(_controller);
|
BlockedBoxController::BlockNewPeer(_controller);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDividerText(content, tr::lng_blocked_list_about());
|
Ui::AddDividerText(content, tr::lng_blocked_list_about());
|
||||||
|
|
||||||
{
|
{
|
||||||
const auto subtitle = content->add(
|
const auto subtitle = content->add(
|
||||||
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
content,
|
content,
|
||||||
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
|
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
|
||||||
AddSkip(subtitle->entity());
|
Ui::AddSkip(subtitle->entity());
|
||||||
auto subtitleText = _countBlocked.value(
|
auto subtitleText = _countBlocked.value(
|
||||||
) | rpl::map([=](int count) {
|
) | rpl::map([=](int count) {
|
||||||
return tr::lng_blocked_list_subtitle(tr::now, lt_count, count);
|
return tr::lng_blocked_list_subtitle(tr::now, lt_count, count);
|
||||||
});
|
});
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
subtitle->entity(),
|
subtitle->entity(),
|
||||||
rpl::duplicate(subtitleText),
|
rpl::duplicate(subtitleText),
|
||||||
st::settingsBlockedListSubtitleAddPadding);
|
st::settingsBlockedListSubtitleAddPadding);
|
||||||
|
@ -201,7 +202,7 @@ void Blocked::setupContent() {
|
||||||
st::changePhoneDescription)),
|
st::changePhoneDescription)),
|
||||||
st::changePhoneDescriptionPadding);
|
st::changePhoneDescriptionPadding);
|
||||||
|
|
||||||
AddSkip(content, st::settingsBlockedListIconPadding.top());
|
Ui::AddSkip(content, st::settingsBlockedListIconPadding.top());
|
||||||
}
|
}
|
||||||
|
|
||||||
// We want minimal height to be the same no matter if subtitle
|
// We want minimal height to be the same no matter if subtitle
|
||||||
|
|
|
@ -16,6 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/boxes/single_choice_box.h"
|
#include "ui/boxes/single_choice_box.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "platform/platform_specific.h"
|
#include "platform/platform_specific.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
|
@ -221,14 +222,14 @@ void Calls::setupContent() {
|
||||||
const auto content = Ui::CreateChild<Ui::VerticalLayout>(this);
|
const auto content = Ui::CreateChild<Ui::VerticalLayout>(this);
|
||||||
|
|
||||||
if (!GetVideoInputList().empty()) {
|
if (!GetVideoInputList().empty()) {
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(content, tr::lng_settings_call_camera());
|
Ui::AddSubsectionTitle(content, tr::lng_settings_call_camera());
|
||||||
AddCameraSubsection(_controller->uiShow(), content, true);
|
AddCameraSubsection(_controller->uiShow(), content, true);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
}
|
}
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(content, tr::lng_settings_call_section_output());
|
Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_output());
|
||||||
AddButtonWithLabel(
|
AddButtonWithLabel(
|
||||||
content,
|
content,
|
||||||
tr::lng_settings_call_output_device(),
|
tr::lng_settings_call_output_device(),
|
||||||
|
@ -246,10 +247,10 @@ void Calls::setupContent() {
|
||||||
})));
|
})));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(content, tr::lng_settings_call_section_input());
|
Ui::AddSubsectionTitle(content, tr::lng_settings_call_section_input());
|
||||||
AddButtonWithLabel(
|
AddButtonWithLabel(
|
||||||
content,
|
content,
|
||||||
tr::lng_settings_call_input_device(),
|
tr::lng_settings_call_input_device(),
|
||||||
|
@ -285,10 +286,10 @@ void Calls::setupContent() {
|
||||||
}, was, _micLevel, kMicTestAnimationDuration);
|
}, was, _micLevel, kMicTestAnimationDuration);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
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(
|
AddButton(
|
||||||
|
@ -318,7 +319,7 @@ void Calls::setupContent() {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
Ui::ResizeFitChild(this, content);
|
Ui::ResizeFitChild(this, content);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/widgets/color_editor.h"
|
#include "ui/widgets/color_editor.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/labels.h"
|
|
||||||
#include "ui/chat/attach/attach_extensions.h"
|
#include "ui/chat/attach/attach_extensions.h"
|
||||||
#include "ui/chat/chat_style.h"
|
#include "ui/chat/chat_style.h"
|
||||||
#include "ui/chat/chat_theme.h"
|
#include "ui/chat/chat_theme.h"
|
||||||
|
@ -36,6 +35,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/image/image.h"
|
#include "ui/image/image.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/ui_utility.h"
|
#include "ui/ui_utility.h"
|
||||||
#include "history/view/history_view_quick_action.h"
|
#include "history/view/history_view_quick_action.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
|
@ -60,14 +60,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "chat_helpers/emoji_sets_manager.h"
|
#include "chat_helpers/emoji_sets_manager.h"
|
||||||
#include "base/platform/base_platform_info.h"
|
#include "base/platform/base_platform_info.h"
|
||||||
#include "platform/platform_specific.h"
|
|
||||||
#include "base/call_delayed.h"
|
#include "base/call_delayed.h"
|
||||||
#include "support/support_common.h"
|
#include "support/support_common.h"
|
||||||
#include "support/support_templates.h"
|
#include "support/support_templates.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "main/main_session_settings.h"
|
#include "main/main_session_settings.h"
|
||||||
#include "mainwidget.h"
|
#include "mainwidget.h"
|
||||||
#include "mainwindow.h"
|
|
||||||
#include "styles/style_chat_helpers.h" // stickersRemove
|
#include "styles/style_chat_helpers.h" // stickersRemove
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -703,10 +701,10 @@ void ChooseFromFile(
|
||||||
void SetupStickersEmoji(
|
void SetupStickersEmoji(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_stickers_emoji());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_stickers_emoji());
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
|
|
||||||
|
@ -826,18 +824,18 @@ void SetupStickersEmoji(
|
||||||
controller->show(Box<Ui::Emoji::ManageSetsBox>(session));
|
controller->show(Box<Ui::Emoji::ManageSetsBox>(session));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupMessages(
|
void SetupMessages(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_messages());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_messages());
|
||||||
|
|
||||||
AddSkip(container, st::settingsSendTypeSkip);
|
Ui::AddSkip(container, st::settingsSendTypeSkip);
|
||||||
|
|
||||||
using SendByType = Ui::InputSubmitSettings;
|
using SendByType = Ui::InputSubmitSettings;
|
||||||
using Quick = HistoryView::DoubleClickQuickAction;
|
using Quick = HistoryView::DoubleClickQuickAction;
|
||||||
|
@ -876,7 +874,7 @@ void SetupMessages(
|
||||||
controller->content()->ctrlEnterSubmitUpdated();
|
controller->content()->ctrlEnterSubmitUpdated();
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
const auto groupQuick = std::make_shared<Ui::RadioenumGroup<Quick>>(
|
const auto groupQuick = std::make_shared<Ui::RadioenumGroup<Quick>>(
|
||||||
Core::App().settings().chatQuickAction());
|
Core::App().settings().chatQuickAction());
|
||||||
|
@ -1001,7 +999,7 @@ void SetupMessages(
|
||||||
show->showBox(Box(ReactionsSettingsBox, controller));
|
show->showBox(Box(ReactionsSettingsBox, controller));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(inner, st::settingsSendTypeSkip);
|
Ui::AddSkip(inner, st::settingsSendTypeSkip);
|
||||||
|
|
||||||
inner->add(
|
inner->add(
|
||||||
object_ptr<Ui::Checkbox>(
|
object_ptr<Ui::Checkbox>(
|
||||||
|
@ -1016,14 +1014,14 @@ void SetupMessages(
|
||||||
Core::App().saveSettingsDelayed();
|
Core::App().saveSettingsDelayed();
|
||||||
}, inner->lifetime());
|
}, inner->lifetime());
|
||||||
|
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupArchive(
|
void SetupArchive(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
PreloadArchiveSettings(&controller->session());
|
PreloadArchiveSettings(&controller->session());
|
||||||
AddButton(
|
AddButton(
|
||||||
|
@ -1082,9 +1080,9 @@ void SetupDataStorage(
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
using namespace rpl::mappers;
|
using namespace rpl::mappers;
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_data_storage());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_data_storage());
|
||||||
|
|
||||||
SetupConnectionType(
|
SetupConnectionType(
|
||||||
&controller->window(),
|
&controller->window(),
|
||||||
|
@ -1159,16 +1157,16 @@ void SetupDataStorage(
|
||||||
path->toggleOn(ask->toggledValue() | rpl::map(!_1));
|
path->toggleOn(ask->toggledValue() | rpl::map(!_1));
|
||||||
#endif // OS_WIN_STORE
|
#endif // OS_WIN_STORE
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupAutoDownload(
|
void SetupAutoDownload(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_media_auto_settings());
|
Ui::AddSubsectionTitle(container, tr::lng_media_auto_settings());
|
||||||
|
|
||||||
using Source = Data::AutoDownload::Source;
|
using Source = Data::AutoDownload::Source;
|
||||||
const auto add = [&](
|
const auto add = [&](
|
||||||
|
@ -1198,16 +1196,16 @@ void SetupAutoDownload(
|
||||||
Source::Channel,
|
Source::Channel,
|
||||||
{ &st::menuIconChannel });
|
{ &st::menuIconChannel });
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupChatBackground(
|
void SetupChatBackground(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_section_background());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_section_background());
|
||||||
|
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<BackgroundRow>(container, controller),
|
object_ptr<BackgroundRow>(container, controller),
|
||||||
|
@ -1223,7 +1221,7 @@ void SetupChatBackground(
|
||||||
std::move(wrap),
|
std::move(wrap),
|
||||||
QMargins(0, skipTop, 0, skipBottom)));
|
QMargins(0, skipTop, 0, skipBottom)));
|
||||||
|
|
||||||
AddSkip(container, st::settingsTileSkip);
|
Ui::AddSkip(container, st::settingsTileSkip);
|
||||||
|
|
||||||
const auto background = Window::Theme::Background();
|
const auto background = Window::Theme::Background();
|
||||||
const auto tile = inner->add(
|
const auto tile = inner->add(
|
||||||
|
@ -1455,7 +1453,7 @@ void SetupDefaultThemes(
|
||||||
apply(*scheme);
|
apply(*scheme);
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupThemeOptions(
|
void SetupThemeOptions(
|
||||||
|
@ -1463,13 +1461,13 @@ void SetupThemeOptions(
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
using namespace Window::Theme;
|
using namespace Window::Theme;
|
||||||
|
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_themes());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_themes());
|
||||||
|
|
||||||
AddSkip(container, st::settingsThemesTopSkip);
|
Ui::AddSkip(container, st::settingsThemesTopSkip);
|
||||||
SetupDefaultThemes(&controller->window(), container);
|
SetupDefaultThemes(&controller->window(), container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupCloudThemes(
|
void SetupCloudThemes(
|
||||||
|
@ -1485,8 +1483,8 @@ void SetupCloudThemes(
|
||||||
)->setDuration(0);
|
)->setDuration(0);
|
||||||
const auto inner = wrap->entity();
|
const auto inner = wrap->entity();
|
||||||
|
|
||||||
AddDivider(inner);
|
Ui::AddDivider(inner);
|
||||||
AddSkip(inner, st::settingsPrivacySkip);
|
Ui::AddSkip(inner, st::settingsPrivacySkip);
|
||||||
|
|
||||||
const auto title = AddSubsectionTitle(
|
const auto title = AddSubsectionTitle(
|
||||||
inner,
|
inner,
|
||||||
|
@ -1506,7 +1504,7 @@ void SetupCloudThemes(
|
||||||
outerWidth);
|
outerWidth);
|
||||||
}, showAll->lifetime());
|
}, showAll->lifetime());
|
||||||
|
|
||||||
AddSkip(inner, st::settingsThemesTopSkip);
|
Ui::AddSkip(inner, st::settingsThemesTopSkip);
|
||||||
|
|
||||||
const auto list = inner->lifetime().make_state<CloudList>(
|
const auto list = inner->lifetime().make_state<CloudList>(
|
||||||
inner,
|
inner,
|
||||||
|
@ -1535,7 +1533,7 @@ void SetupCloudThemes(
|
||||||
)->setDuration(0);
|
)->setDuration(0);
|
||||||
const auto edit = editWrap->entity();
|
const auto edit = editWrap->entity();
|
||||||
|
|
||||||
AddSkip(edit, st::settingsThemesBottomSkip);
|
Ui::AddSkip(edit, st::settingsThemesBottomSkip);
|
||||||
AddButton(
|
AddButton(
|
||||||
edit,
|
edit,
|
||||||
tr::lng_settings_bg_theme_edit(),
|
tr::lng_settings_bg_theme_edit(),
|
||||||
|
@ -1559,7 +1557,7 @@ void SetupCloudThemes(
|
||||||
return (Background()->themeObject().cloud.createdBy == userId);
|
return (Background()->themeObject().cloud.createdBy == userId);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddSkip(inner, 2 * st::settingsSectionSkip);
|
Ui::AddSkip(inner, 2 * st::settingsSectionSkip);
|
||||||
|
|
||||||
wrap->setDuration(0)->toggleOn(list->empty() | rpl::map(!_1));
|
wrap->setDuration(0)->toggleOn(list->empty() | rpl::map(!_1));
|
||||||
}
|
}
|
||||||
|
@ -1567,10 +1565,10 @@ void SetupCloudThemes(
|
||||||
void SetupThemeSettings(
|
void SetupThemeSettings(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
|
|
||||||
AddSubsectionTitle(container, tr::lng_settings_theme_settings());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_theme_settings());
|
||||||
|
|
||||||
AddPeerColorButton(
|
AddPeerColorButton(
|
||||||
container,
|
container,
|
||||||
|
@ -1603,7 +1601,7 @@ void SetupThemeSettings(
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupSupportSwitchSettings(
|
void SetupSupportSwitchSettings(
|
||||||
|
@ -1674,11 +1672,11 @@ void SetupSupportChatsLimitSlice(
|
||||||
void SetupSupport(
|
void SetupSupport(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddSubsectionTitle(container, rpl::single(u"Support settings"_q));
|
Ui::AddSubsectionTitle(container, rpl::single(u"Support settings"_q));
|
||||||
|
|
||||||
AddSkip(container, st::settingsSendTypeSkip);
|
Ui::AddSkip(container, st::settingsSendTypeSkip);
|
||||||
|
|
||||||
const auto skip = st::settingsSendTypeSkip;
|
const auto skip = st::settingsSendTypeSkip;
|
||||||
auto wrap = object_ptr<Ui::VerticalLayout>(container);
|
auto wrap = object_ptr<Ui::VerticalLayout>(container);
|
||||||
|
@ -1691,7 +1689,7 @@ void SetupSupport(
|
||||||
|
|
||||||
SetupSupportSwitchSettings(controller, inner);
|
SetupSupportSwitchSettings(controller, inner);
|
||||||
|
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
inner->add(
|
inner->add(
|
||||||
object_ptr<Ui::Checkbox>(
|
object_ptr<Ui::Checkbox>(
|
||||||
|
@ -1721,15 +1719,15 @@ void SetupSupport(
|
||||||
controller->session().saveSettingsDelayed();
|
controller->session().saveSettingsDelayed();
|
||||||
}, inner->lifetime());
|
}, inner->lifetime());
|
||||||
|
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
AddSubsectionTitle(inner, rpl::single(u"Load chats for a period"_q));
|
Ui::AddSubsectionTitle(inner, rpl::single(u"Load chats for a period"_q));
|
||||||
|
|
||||||
SetupSupportChatsLimitSlice(controller, inner);
|
SetupSupportChatsLimitSlice(controller, inner);
|
||||||
|
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
}
|
}
|
||||||
|
|
||||||
Chat::Chat(QWidget *parent, not_null<Window::SessionController*> controller)
|
Chat::Chat(QWidget *parent, not_null<Window::SessionController*> controller)
|
||||||
|
|
|
@ -99,32 +99,6 @@ QSize Icon::size() const {
|
||||||
return _icon->size();
|
return _icon->size();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddSkip(not_null<Ui::VerticalLayout*> container) {
|
|
||||||
AddSkip(container, st::settingsSectionSkip);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddSkip(not_null<Ui::VerticalLayout*> container, int skip) {
|
|
||||||
container->add(object_ptr<Ui::FixedHeightWidget>(
|
|
||||||
container,
|
|
||||||
skip));
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddDivider(not_null<Ui::VerticalLayout*> container) {
|
|
||||||
container->add(object_ptr<Ui::BoxContentDivider>(container));
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddDividerText(
|
|
||||||
not_null<Ui::VerticalLayout*> container,
|
|
||||||
rpl::producer<QString> text) {
|
|
||||||
container->add(object_ptr<Ui::DividerLabel>(
|
|
||||||
container,
|
|
||||||
object_ptr<Ui::FlatLabel>(
|
|
||||||
container,
|
|
||||||
std::move(text),
|
|
||||||
st::boxDividerLabel),
|
|
||||||
st::settingsDividerLabelPadding));
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddButtonIcon(
|
void AddButtonIcon(
|
||||||
not_null<Ui::AbstractButton*> button,
|
not_null<Ui::AbstractButton*> button,
|
||||||
const style::SettingsButton &st,
|
const style::SettingsButton &st,
|
||||||
|
@ -224,19 +198,6 @@ not_null<Button*> AddButtonWithLabel(
|
||||||
return button;
|
return button;
|
||||||
}
|
}
|
||||||
|
|
||||||
not_null<Ui::FlatLabel*> AddSubsectionTitle(
|
|
||||||
not_null<Ui::VerticalLayout*> container,
|
|
||||||
rpl::producer<QString> text,
|
|
||||||
style::margins addPadding,
|
|
||||||
const style::FlatLabel *st) {
|
|
||||||
return container->add(
|
|
||||||
object_ptr<Ui::FlatLabel>(
|
|
||||||
container,
|
|
||||||
std::move(text),
|
|
||||||
st ? *st : st::settingsSubsectionTitle),
|
|
||||||
st::settingsSubsectionTitlePadding + addPadding);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddDividerTextWithLottie(
|
void AddDividerTextWithLottie(
|
||||||
not_null<Ui::VerticalLayout*> parent,
|
not_null<Ui::VerticalLayout*> parent,
|
||||||
rpl::producer<> showFinished,
|
rpl::producer<> showFinished,
|
||||||
|
|
|
@ -167,12 +167,6 @@ private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void AddSkip(not_null<Ui::VerticalLayout*> container);
|
|
||||||
void AddSkip(not_null<Ui::VerticalLayout*> container, int skip);
|
|
||||||
void AddDivider(not_null<Ui::VerticalLayout*> container);
|
|
||||||
void AddDividerText(
|
|
||||||
not_null<Ui::VerticalLayout*> container,
|
|
||||||
rpl::producer<QString> text);
|
|
||||||
void AddButtonIcon(
|
void AddButtonIcon(
|
||||||
not_null<Ui::AbstractButton*> button,
|
not_null<Ui::AbstractButton*> button,
|
||||||
const style::SettingsButton &st,
|
const style::SettingsButton &st,
|
||||||
|
@ -198,11 +192,6 @@ void CreateRightLabel(
|
||||||
rpl::producer<QString> label,
|
rpl::producer<QString> label,
|
||||||
const style::SettingsButton &st,
|
const style::SettingsButton &st,
|
||||||
rpl::producer<QString> buttonText);
|
rpl::producer<QString> buttonText);
|
||||||
not_null<Ui::FlatLabel*> AddSubsectionTitle(
|
|
||||||
not_null<Ui::VerticalLayout*> container,
|
|
||||||
rpl::producer<QString> text,
|
|
||||||
style::margins addPadding = {},
|
|
||||||
const style::FlatLabel *st = nullptr);
|
|
||||||
void AddDividerTextWithLottie(
|
void AddDividerTextWithLottie(
|
||||||
not_null<Ui::VerticalLayout*> parent,
|
not_null<Ui::VerticalLayout*> parent,
|
||||||
rpl::producer<> showFinished,
|
rpl::producer<> showFinished,
|
||||||
|
|
|
@ -12,6 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/labels.h"
|
#include "ui/widgets/labels.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/gl/gl_detection.h"
|
#include "ui/gl/gl_detection.h"
|
||||||
#include "ui/chat/chat_style_radius.h"
|
#include "ui/chat/chat_style_radius.h"
|
||||||
#include "base/options.h"
|
#include "base/options.h"
|
||||||
|
@ -87,16 +88,16 @@ void AddOption(
|
||||||
|
|
||||||
const auto &description = option.description();
|
const auto &description = option.description();
|
||||||
if (!description.isEmpty()) {
|
if (!description.isEmpty()) {
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDividerText(container, rpl::single(description));
|
Ui::AddDividerText(container, rpl::single(description));
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupExperimental(
|
void SetupExperimental(
|
||||||
not_null<Window::Controller*> window,
|
not_null<Window::Controller*> window,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
@ -112,8 +113,8 @@ void SetupExperimental(
|
||||||
container,
|
container,
|
||||||
object_ptr<Ui::VerticalLayout>(container)));
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
const auto inner = wrap->entity();
|
const auto inner = wrap->entity();
|
||||||
AddDivider(inner);
|
Ui::AddDivider(inner);
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
reset = AddButton(
|
reset = AddButton(
|
||||||
inner,
|
inner,
|
||||||
tr::lng_settings_experimental_restore(),
|
tr::lng_settings_experimental_restore(),
|
||||||
|
@ -122,11 +123,11 @@ void SetupExperimental(
|
||||||
base::options::reset();
|
base::options::reset();
|
||||||
wrap->hide(anim::type::normal);
|
wrap->hide(anim::type::normal);
|
||||||
});
|
});
|
||||||
AddSkip(inner, st::settingsCheckboxesSkip);
|
Ui::AddSkip(inner, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
const auto addToggle = [&](const char name[]) {
|
const auto addToggle = [&](const char name[]) {
|
||||||
AddOption(
|
AddOption(
|
||||||
|
|
|
@ -27,6 +27,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/filter_icons.h"
|
#include "ui/filter_icons.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/box_content_divider.h"
|
#include "ui/widgets/box_content_divider.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
@ -39,7 +40,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_boxes.h"
|
#include "styles/style_boxes.h"
|
||||||
#include "styles/style_chat_helpers.h"
|
#include "styles/style_chat_helpers.h"
|
||||||
#include "styles/style_window.h"
|
|
||||||
|
|
||||||
namespace Settings {
|
namespace Settings {
|
||||||
namespace {
|
namespace {
|
||||||
|
@ -342,8 +342,8 @@ void FilterRowButton::paintEvent(QPaintEvent *e) {
|
||||||
const auto limit = [=] {
|
const auto limit = [=] {
|
||||||
return Data::PremiumLimits(session).dialogFiltersCurrent();
|
return Data::PremiumLimits(session).dialogFiltersCurrent();
|
||||||
};
|
};
|
||||||
AddSkip(container, st::settingsSectionSkip);
|
Ui::AddSkip(container, st::settingsSectionSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_filters_subtitle());
|
Ui::AddSubsectionTitle(container, tr::lng_filters_subtitle());
|
||||||
|
|
||||||
struct State {
|
struct State {
|
||||||
std::vector<FilterRow> rows;
|
std::vector<FilterRow> rows;
|
||||||
|
@ -571,16 +571,16 @@ void FilterRowButton::paintEvent(QPaintEvent *e) {
|
||||||
crl::guard(container, doneCallback),
|
crl::guard(container, doneCallback),
|
||||||
crl::guard(container, saveAnd)));
|
crl::guard(container, saveAnd)));
|
||||||
});
|
});
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
const auto nonEmptyAbout = container->add(
|
const auto nonEmptyAbout = container->add(
|
||||||
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
container,
|
container,
|
||||||
object_ptr<Ui::VerticalLayout>(container))
|
object_ptr<Ui::VerticalLayout>(container))
|
||||||
)->setDuration(0);
|
)->setDuration(0);
|
||||||
const auto aboutRows = nonEmptyAbout->entity();
|
const auto aboutRows = nonEmptyAbout->entity();
|
||||||
AddDivider(aboutRows);
|
Ui::AddDivider(aboutRows);
|
||||||
AddSkip(aboutRows);
|
Ui::AddSkip(aboutRows);
|
||||||
AddSubsectionTitle(aboutRows, tr::lng_filters_recommended());
|
Ui::AddSubsectionTitle(aboutRows, tr::lng_filters_recommended());
|
||||||
|
|
||||||
rpl::single(rpl::empty) | rpl::then(
|
rpl::single(rpl::empty) | rpl::then(
|
||||||
session->data().chatsFilters().suggestedUpdated()
|
session->data().chatsFilters().suggestedUpdated()
|
||||||
|
@ -613,7 +613,7 @@ void FilterRowButton::paintEvent(QPaintEvent *e) {
|
||||||
}, button->lifetime());
|
}, button->lifetime());
|
||||||
}
|
}
|
||||||
aboutRows->resizeToWidth(container->width());
|
aboutRows->resizeToWidth(container->width());
|
||||||
AddSkip(aboutRows, st::settingsSectionSkip);
|
Ui::AddSkip(aboutRows, st::settingsSectionSkip);
|
||||||
}, aboutRows->lifetime());
|
}, aboutRows->lifetime());
|
||||||
|
|
||||||
auto showSuggestions = rpl::combine(
|
auto showSuggestions = rpl::combine(
|
||||||
|
|
|
@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
|
@ -326,8 +327,8 @@ void GlobalTTL::setupContent() {
|
||||||
|
|
||||||
SetupTopContent(content, _showFinished.events());
|
SetupTopContent(content, _showFinished.events());
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddSubsectionTitle(content, tr::lng_settings_ttl_after_subtitle());
|
Ui::AddSubsectionTitle(content, tr::lng_settings_ttl_after_subtitle());
|
||||||
|
|
||||||
content->add(object_ptr<Ui::VerticalLayout>::fromRaw(_buttons));
|
content->add(object_ptr<Ui::VerticalLayout>::fromRaw(_buttons));
|
||||||
|
|
||||||
|
@ -362,7 +363,7 @@ void GlobalTTL::setupContent() {
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
auto footer = object_ptr<Ui::FlatLabel>(
|
auto footer = object_ptr<Ui::FlatLabel>(
|
||||||
content,
|
content,
|
||||||
|
|
|
@ -7,7 +7,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
*/
|
*/
|
||||||
#include "settings/settings_information.h"
|
#include "settings/settings_information.h"
|
||||||
|
|
||||||
#include "editor/photo_editor_layer_widget.h"
|
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/wrap/vertical_layout_reorder.h"
|
#include "ui/wrap/vertical_layout_reorder.h"
|
||||||
|
@ -24,6 +23,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/delayed_activation.h"
|
#include "ui/delayed_activation.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/unread_badge_paint.h"
|
#include "ui/unread_badge_paint.h"
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
|
@ -49,7 +49,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "apiwrap.h"
|
#include "apiwrap.h"
|
||||||
#include "api/api_peer_photo.h"
|
#include "api/api_peer_photo.h"
|
||||||
#include "api/api_user_names.h"
|
#include "api/api_user_names.h"
|
||||||
#include "core/file_utilities.h"
|
|
||||||
#include "base/call_delayed.h"
|
#include "base/call_delayed.h"
|
||||||
#include "base/options.h"
|
#include "base/options.h"
|
||||||
#include "base/unixtime.h"
|
#include "base/unixtime.h"
|
||||||
|
@ -62,7 +61,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_window.h"
|
#include "styles/style_window.h"
|
||||||
|
|
||||||
#include <QtGui/QGuiApplication>
|
#include <QtGui/QGuiApplication>
|
||||||
#include <QtGui/QClipboard>
|
|
||||||
#include <QtCore/QBuffer>
|
#include <QtCore/QBuffer>
|
||||||
|
|
||||||
namespace Settings {
|
namespace Settings {
|
||||||
|
@ -362,7 +360,7 @@ void SetupRows(
|
||||||
not_null<UserData*> self) {
|
not_null<UserData*> self) {
|
||||||
const auto session = &self->session();
|
const auto session = &self->session();
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddRow(
|
AddRow(
|
||||||
container,
|
container,
|
||||||
|
@ -428,8 +426,8 @@ void SetupRows(
|
||||||
},
|
},
|
||||||
{ &st::menuIconUsername });
|
{ &st::menuIconUsername });
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDividerText(container, tr::lng_settings_username_about());
|
Ui::AddDividerText(container, tr::lng_settings_username_about());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupBio(
|
void SetupBio(
|
||||||
|
@ -549,13 +547,13 @@ void SetupBio(
|
||||||
&self->session());
|
&self->session());
|
||||||
updated();
|
updated();
|
||||||
|
|
||||||
AddDividerText(container, tr::lng_settings_about_bio());
|
Ui::AddDividerText(container, tr::lng_settings_about_bio());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupAccountsWrap(
|
void SetupAccountsWrap(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
not_null<Window::SessionController*> controller) {
|
not_null<Window::SessionController*> controller) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
SetupAccounts(container, controller);
|
SetupAccounts(container, controller);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/scroll_area.h"
|
#include "ui/widgets/scroll_area.h"
|
||||||
#include "ui/cached_round_corners.h"
|
#include "ui/cached_round_corners.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "boxes/abstract_box.h"
|
#include "boxes/abstract_box.h"
|
||||||
#include "window/window_controller.h"
|
#include "window/window_controller.h"
|
||||||
|
@ -61,16 +62,16 @@ object_ptr<Ui::RpWidget> CreateIntroSettings(
|
||||||
not_null<Window::Controller*> window) {
|
not_null<Window::Controller*> window) {
|
||||||
auto result = object_ptr<Ui::VerticalLayout>(parent);
|
auto result = object_ptr<Ui::VerticalLayout>(parent);
|
||||||
|
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
SetupLanguageButton(window, result);
|
SetupLanguageButton(window, result);
|
||||||
SetupConnectionType(window, &window->account(), result);
|
SetupConnectionType(window, &window->account(), result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
if (HasUpdate()) {
|
if (HasUpdate()) {
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
SetupUpdate(result);
|
SetupUpdate(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto wrap = object_ptr<Ui::VerticalLayout>(result);
|
auto wrap = object_ptr<Ui::VerticalLayout>(result);
|
||||||
|
@ -81,29 +82,29 @@ object_ptr<Ui::RpWidget> CreateIntroSettings(
|
||||||
window->sessionController(),
|
window->sessionController(),
|
||||||
wrap.data());
|
wrap.data());
|
||||||
if (wrap->count() > 0) {
|
if (wrap->count() > 0) {
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
result->add(object_ptr<Ui::OverrideMargins>(
|
result->add(object_ptr<Ui::OverrideMargins>(
|
||||||
result,
|
result,
|
||||||
std::move(wrap)));
|
std::move(wrap)));
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
SetupInterfaceScale(window, result, false);
|
SetupInterfaceScale(window, result, false);
|
||||||
SetupDefaultThemes(window, result);
|
SetupDefaultThemes(window, result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
|
|
||||||
if (anim::Disabled()) {
|
if (anim::Disabled()) {
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
SetupAnimations(window, result);
|
SetupAnimations(window, result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
AddDivider(result);
|
Ui::AddDivider(result);
|
||||||
AddSkip(result);
|
Ui::AddSkip(result);
|
||||||
SetupFaq(result, false);
|
SetupFaq(result, false);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
@ -18,6 +18,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "settings/cloud_password/settings_cloud_password_common.h"
|
#include "settings/cloud_password/settings_cloud_password_common.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "storage/storage_domain.h"
|
#include "storage/storage_domain.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/boxes/confirm_box.h"
|
#include "ui/boxes/confirm_box.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/fields/password_input.h"
|
#include "ui/widgets/fields/password_input.h"
|
||||||
|
@ -120,7 +121,7 @@ void LocalPasscodeEnter::setupContent() {
|
||||||
[=] { _showBack.fire({}); });
|
[=] { _showBack.fire({}); });
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
content->add(
|
content->add(
|
||||||
object_ptr<Ui::CenterWrap<>>(
|
object_ptr<Ui::CenterWrap<>>(
|
||||||
|
@ -145,10 +146,10 @@ void LocalPasscodeEnter::setupContent() {
|
||||||
};
|
};
|
||||||
|
|
||||||
addDescription(tr::lng_passcode_about1());
|
addDescription(tr::lng_passcode_about1());
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
addDescription(tr::lng_passcode_about2());
|
addDescription(tr::lng_passcode_about2());
|
||||||
|
|
||||||
AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
Ui::AddSkip(content, st::settingLocalPasscodeDescriptionBottomSkip);
|
||||||
|
|
||||||
const auto addField = [&](rpl::producer<QString> &&text) {
|
const auto addField = [&](rpl::producer<QString> &&text) {
|
||||||
const auto &st = st::settingLocalPasscodeInputField;
|
const auto &st = st::settingLocalPasscodeInputField;
|
||||||
|
@ -437,7 +438,7 @@ void LocalPasscodeManage::setupContent() {
|
||||||
content->lifetime(),
|
content->lifetime(),
|
||||||
[=] { _showBack.fire({}); });
|
[=] { _showBack.fire({}); });
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
AddButton(
|
AddButton(
|
||||||
content,
|
content,
|
||||||
|
@ -481,7 +482,7 @@ void LocalPasscodeManage::setupContent() {
|
||||||
) | rpl::start_to_stream(state->autoLockBoxClosing, box->lifetime());
|
) | rpl::start_to_stream(state->autoLockBoxClosing, box->lifetime());
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
using Divider = CloudPassword::OneEdgeBoxContentDivider;
|
using Divider = CloudPassword::OneEdgeBoxContentDivider;
|
||||||
const auto divider = Ui::CreateChild<Divider>(this);
|
const auto divider = Ui::CreateChild<Divider>(this);
|
||||||
|
|
|
@ -33,6 +33,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "info/profile/info_profile_badge.h"
|
#include "info/profile/info_profile_badge.h"
|
||||||
#include "info/profile/info_profile_emoji_status_panel.h"
|
#include "info/profile/info_profile_emoji_status_panel.h"
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
|
@ -298,8 +299,8 @@ void SetupSections(
|
||||||
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) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
const auto addSection = [&](
|
const auto addSection = [&](
|
||||||
rpl::producer<QString> label,
|
rpl::producer<QString> label,
|
||||||
|
@ -317,8 +318,8 @@ void SetupSections(
|
||||||
if (controller->session().supportMode()) {
|
if (controller->session().supportMode()) {
|
||||||
SetupSupport(controller, container);
|
SetupSupport(controller, container);
|
||||||
|
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
} else {
|
} else {
|
||||||
addSection(
|
addSection(
|
||||||
tr::lng_settings_my_account(),
|
tr::lng_settings_my_account(),
|
||||||
|
@ -394,7 +395,7 @@ void SetupSections(
|
||||||
SetupPowerSavingButton(&controller->window(), container);
|
SetupPowerSavingButton(&controller->window(), container);
|
||||||
SetupLanguageButton(&controller->window(), container);
|
SetupLanguageButton(&controller->window(), container);
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupPremium(
|
void SetupPremium(
|
||||||
|
@ -404,8 +405,8 @@ void SetupPremium(
|
||||||
if (!controller->session().premiumPossible()) {
|
if (!controller->session().premiumPossible()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
AddButton(
|
AddButton(
|
||||||
container,
|
container,
|
||||||
|
@ -416,7 +417,7 @@ void SetupPremium(
|
||||||
controller->setPremiumRef("settings");
|
controller->setPremiumRef("settings");
|
||||||
showOther(PremiumId());
|
showOther(PremiumId());
|
||||||
});
|
});
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool HasInterfaceScale() {
|
bool HasInterfaceScale() {
|
||||||
|
@ -570,7 +571,7 @@ void SetupInterfaceScale(
|
||||||
}, button->lifetime());
|
}, button->lifetime());
|
||||||
|
|
||||||
if (!icon) {
|
if (!icon) {
|
||||||
AddSkip(container, st::settingsThumbSkip);
|
Ui::AddSkip(container, st::settingsThumbSkip);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -590,8 +591,8 @@ void SetupFaq(not_null<Ui::VerticalLayout*> container, bool icon) {
|
||||||
void SetupHelp(
|
void SetupHelp(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
SetupFaq(container);
|
SetupFaq(container);
|
||||||
|
|
||||||
|
@ -678,10 +679,10 @@ void Main::setupContent(not_null<Window::SessionController*> controller) {
|
||||||
_showOther.fire_copy(type);
|
_showOther.fire_copy(type);
|
||||||
});
|
});
|
||||||
if (HasInterfaceScale()) {
|
if (HasInterfaceScale()) {
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
SetupInterfaceScale(&controller->window(), content);
|
SetupInterfaceScale(&controller->window(), content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
}
|
}
|
||||||
SetupPremium(controller, content, [=](Type type) {
|
SetupPremium(controller, content, [=](Type type) {
|
||||||
_showOther.fire_copy(type);
|
_showOther.fire_copy(type);
|
||||||
|
|
|
@ -20,6 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/discrete_sliders.h"
|
#include "ui/widgets/discrete_sliders.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/ui_utility.h"
|
#include "ui/ui_utility.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "window/notifications_manager.h"
|
#include "window/notifications_manager.h"
|
||||||
|
@ -880,17 +881,19 @@ NotifyViewCheckboxes SetupNotifyViewOptions(
|
||||||
void SetupAdvancedNotifications(
|
void SetupAdvancedNotifications(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_notifications_position());
|
Ui::AddSubsectionTitle(
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
container,
|
||||||
|
tr::lng_settings_notifications_position());
|
||||||
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
|
|
||||||
const auto position = container->add(
|
const auto position = container->add(
|
||||||
object_ptr<NotificationsCount>(container, controller));
|
object_ptr<NotificationsCount>(container, controller));
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_notifications_count());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_notifications_count());
|
||||||
|
|
||||||
const auto count = container->add(
|
const auto count = container->add(
|
||||||
object_ptr<Ui::SettingsSlider>(container, st::settingsSlider),
|
object_ptr<Ui::SettingsSlider>(container, st::settingsSlider),
|
||||||
|
@ -903,7 +906,7 @@ void SetupAdvancedNotifications(
|
||||||
) | rpl::start_with_next([=](int section) {
|
) | rpl::start_with_next([=](int section) {
|
||||||
position->setCount(section + 1);
|
position->setCount(section + 1);
|
||||||
}, count->lifetime());
|
}, count->lifetime());
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupMultiAccountNotifications(
|
void SetupMultiAccountNotifications(
|
||||||
|
@ -912,7 +915,7 @@ void SetupMultiAccountNotifications(
|
||||||
if (Core::App().domain().accounts().size() < 2) {
|
if (Core::App().domain().accounts().size() < 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
AddSubsectionTitle(container, tr::lng_settings_show_from());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_show_from());
|
||||||
|
|
||||||
const auto fromAll = AddButton(
|
const auto fromAll = AddButton(
|
||||||
container,
|
container,
|
||||||
|
@ -938,9 +941,9 @@ void SetupMultiAccountNotifications(
|
||||||
}
|
}
|
||||||
}, fromAll->lifetime());
|
}, fromAll->lifetime());
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDividerText(container, tr::lng_settings_notify_all_about());
|
Ui::AddDividerText(container, tr::lng_settings_notify_all_about());
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupNotificationsContent(
|
void SetupNotificationsContent(
|
||||||
|
@ -949,7 +952,7 @@ void SetupNotificationsContent(
|
||||||
Fn<void(Type)> showOther) {
|
Fn<void(Type)> showOther) {
|
||||||
using namespace rpl::mappers;
|
using namespace rpl::mappers;
|
||||||
|
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
|
|
||||||
using NotifyView = Core::Settings::NotifyView;
|
using NotifyView = Core::Settings::NotifyView;
|
||||||
SetupMultiAccountNotifications(controller, container);
|
SetupMultiAccountNotifications(controller, container);
|
||||||
|
@ -1010,7 +1013,7 @@ void SetupNotificationsContent(
|
||||||
{ &st::menuIconUnmute },
|
{ &st::menuIconUnmute },
|
||||||
soundAllowed->events_starting_with(allowed()));
|
soundAllowed->events_starting_with(allowed()));
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
const auto checkboxes = SetupNotifyViewOptions(
|
const auto checkboxes = SetupNotifyViewOptions(
|
||||||
controller,
|
controller,
|
||||||
|
@ -1029,8 +1032,8 @@ void SetupNotificationsContent(
|
||||||
|
|
||||||
controller->session().data().notifySettings().loadExceptions();
|
controller->session().data().notifySettings().loadExceptions();
|
||||||
|
|
||||||
AddSkip(container, st::notifyPreviewBottomSkip);
|
Ui::AddSkip(container, st::notifyPreviewBottomSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_notify_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_notify_title());
|
||||||
const auto addType = [&](Data::DefaultNotify type) {
|
const auto addType = [&](Data::DefaultNotify type) {
|
||||||
AddTypeButton(container, controller, type, showOther);
|
AddTypeButton(container, controller, type, showOther);
|
||||||
};
|
};
|
||||||
|
@ -1038,10 +1041,10 @@ void SetupNotificationsContent(
|
||||||
addType(Data::DefaultNotify::Group);
|
addType(Data::DefaultNotify::Group);
|
||||||
addType(Data::DefaultNotify::Broadcast);
|
addType(Data::DefaultNotify::Broadcast);
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_events_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_events_title());
|
||||||
|
|
||||||
auto joinSilent = rpl::single(
|
auto joinSilent = rpl::single(
|
||||||
session->api().contactSignupSilentCurrent().value_or(false)
|
session->api().contactSignupSilentCurrent().value_or(false)
|
||||||
|
@ -1072,10 +1075,10 @@ void SetupNotificationsContent(
|
||||||
Core::App().saveSettingsDelayed();
|
Core::App().saveSettingsDelayed();
|
||||||
}, joined->lifetime());
|
}, joined->lifetime());
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_settings_notifications_calls_title());
|
tr::lng_settings_notifications_calls_title());
|
||||||
const auto authorizations = &session->api().authorizations();
|
const auto authorizations = &session->api().authorizations();
|
||||||
|
@ -1090,10 +1093,10 @@ void SetupNotificationsContent(
|
||||||
authorizations->toggleCallsDisabledHere(!toggled);
|
authorizations->toggleCallsDisabledHere(!toggled);
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_badge_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_badge_title());
|
||||||
|
|
||||||
const auto muted = AddButton(
|
const auto muted = AddButton(
|
||||||
container,
|
container,
|
||||||
|
@ -1120,10 +1123,10 @@ void SetupNotificationsContent(
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::settingsCheckboxesSkip);
|
Ui::AddSkip(container, st::settingsCheckboxesSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_native_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_native_title());
|
||||||
return AddButton(
|
return AddButton(
|
||||||
container,
|
container,
|
||||||
std::move(nativeText),
|
std::move(nativeText),
|
||||||
|
|
|
@ -26,6 +26,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/popup_menu.h"
|
#include "ui/widgets/popup_menu.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
|
@ -378,7 +379,7 @@ void SetupChecks(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
Notify type) {
|
Notify type) {
|
||||||
AddSubsectionTitle(container, Title(type));
|
Ui::AddSubsectionTitle(container, Title(type));
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
const auto settings = &session->data().notifySettings();
|
const auto settings = &session->data().notifySettings();
|
||||||
|
@ -597,12 +598,12 @@ void NotificationsType::setupContent(
|
||||||
not_null<Window::SessionController*> controller) {
|
not_null<Window::SessionController*> controller) {
|
||||||
const auto container = Ui::CreateChild<Ui::VerticalLayout>(this);
|
const auto container = Ui::CreateChild<Ui::VerticalLayout>(this);
|
||||||
|
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
SetupChecks(container, controller, _type);
|
SetupChecks(container, controller, _type);
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
|
|
||||||
SetupExceptions(container, controller, _type);
|
SetupExceptions(container, controller, _type);
|
||||||
|
|
||||||
|
|
|
@ -12,10 +12,11 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "core/application.h"
|
#include "core/application.h"
|
||||||
#include "core/core_settings.h"
|
#include "core/core_settings.h"
|
||||||
#include "lang/lang_keys.h"
|
#include "lang/lang_keys.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h" // AddButton.
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/power_saving.h"
|
#include "ui/power_saving.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
|
@ -40,7 +41,7 @@ void PowerSavingBox(not_null<Ui::GenericBox*> box) {
|
||||||
box->setPinnedToTopContent(
|
box->setPinnedToTopContent(
|
||||||
object_ptr<Ui::FixedHeightWidget>(box, st::lineWidth));
|
object_ptr<Ui::FixedHeightWidget>(box, st::lineWidth));
|
||||||
|
|
||||||
const auto subtitle = AddSubsectionTitle(
|
const auto subtitle = Ui::AddSubsectionTitle(
|
||||||
container,
|
container,
|
||||||
tr::lng_settings_power_subtitle(),
|
tr::lng_settings_power_subtitle(),
|
||||||
st::powerSavingSubtitlePadding);
|
st::powerSavingSubtitlePadding);
|
||||||
|
@ -63,16 +64,16 @@ void PowerSavingBox(not_null<Ui::GenericBox*> box) {
|
||||||
|
|
||||||
auto automatic = (Ui::SettingsButton*)nullptr;
|
auto automatic = (Ui::SettingsButton*)nullptr;
|
||||||
if (batterySaving.has_value()) {
|
if (batterySaving.has_value()) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
automatic = AddButton(
|
automatic = AddButton(
|
||||||
container,
|
container,
|
||||||
tr::lng_settings_power_auto(),
|
tr::lng_settings_power_auto(),
|
||||||
st::powerSavingButtonNoIcon
|
st::powerSavingButtonNoIcon
|
||||||
)->toggleOn(rpl::single(!ignore));
|
)->toggleOn(rpl::single(!ignore));
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDividerText(container, tr::lng_settings_power_auto_about());
|
Ui::AddDividerText(container, tr::lng_settings_power_auto_about());
|
||||||
|
|
||||||
state->forceDisabledMessage = rpl::combine(
|
state->forceDisabledMessage = rpl::combine(
|
||||||
automatic->toggledValue(),
|
automatic->toggledValue(),
|
||||||
|
|
|
@ -30,7 +30,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "main/main_app_config.h"
|
#include "main/main_app_config.h"
|
||||||
#include "main/main_session.h"
|
#include "main/main_session.h"
|
||||||
#include "settings/settings_common.h"
|
#include "settings/settings_common.h"
|
||||||
#include "settings/settings_premium.h"
|
|
||||||
#include "ui/abstract_button.h"
|
#include "ui/abstract_button.h"
|
||||||
#include "ui/basic_click_handlers.h"
|
#include "ui/basic_click_handlers.h"
|
||||||
#include "ui/effects/gradient.h"
|
#include "ui/effects/gradient.h"
|
||||||
|
@ -40,7 +39,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/text/format_values.h"
|
#include "ui/text/format_values.h"
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/text/text_utilities.h"
|
|
||||||
#include "ui/toast/toast.h"
|
#include "ui/toast/toast.h"
|
||||||
#include "ui/widgets/checkbox.h" // Ui::RadiobuttonGroup.
|
#include "ui/widgets/checkbox.h" // Ui::RadiobuttonGroup.
|
||||||
#include "ui/widgets/gradient_round_button.h"
|
#include "ui/widgets/gradient_round_button.h"
|
||||||
|
@ -51,6 +49,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/power_saving.h"
|
#include "ui/power_saving.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_controller.h"
|
#include "window/window_controller.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "base/unixtime.h"
|
#include "base/unixtime.h"
|
||||||
|
@ -872,7 +871,7 @@ void Premium::setupSubscriptionOptions(
|
||||||
object_ptr<Ui::VerticalLayout>(container)));
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
const auto content = options->entity();
|
const auto content = options->entity();
|
||||||
|
|
||||||
AddSkip(content, st::settingsPremiumOptionsPadding.top());
|
Ui::AddSkip(content, st::settingsPremiumOptionsPadding.top());
|
||||||
|
|
||||||
const auto apiPremium = &_controller->session().api().premium();
|
const auto apiPremium = &_controller->session().api().premium();
|
||||||
Ui::Premium::AddGiftOptions(
|
Ui::Premium::AddGiftOptions(
|
||||||
|
@ -882,13 +881,13 @@ void Premium::setupSubscriptionOptions(
|
||||||
st::premiumSubscriptionOption,
|
st::premiumSubscriptionOption,
|
||||||
true);
|
true);
|
||||||
|
|
||||||
AddSkip(content, st::settingsPremiumOptionsPadding.bottom());
|
Ui::AddSkip(content, st::settingsPremiumOptionsPadding.bottom());
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
|
|
||||||
const auto lastSkip = TopTransitionSkip() * (isEmojiStatus ? 1 : 2);
|
const auto lastSkip = TopTransitionSkip() * (isEmojiStatus ? 1 : 2);
|
||||||
|
|
||||||
AddSkip(content, lastSkip - st::settingsSectionSkip);
|
Ui::AddSkip(content, lastSkip - st::settingsSectionSkip);
|
||||||
AddSkip(skip->entity(), lastSkip);
|
Ui::AddSkip(skip->entity(), lastSkip);
|
||||||
|
|
||||||
auto toggleOn = rpl::combine(
|
auto toggleOn = rpl::combine(
|
||||||
Data::AmPremiumValue(&_controller->session()),
|
Data::AmPremiumValue(&_controller->session()),
|
||||||
|
@ -1089,11 +1088,11 @@ void Premium::setupContent() {
|
||||||
{ .icon = icons[i], .backgroundBrush = brush });
|
{ .icon = icons[i], .backgroundBrush = brush });
|
||||||
}
|
}
|
||||||
|
|
||||||
AddSkip(content, descriptionPadding.bottom());
|
Ui::AddSkip(content, descriptionPadding.bottom());
|
||||||
#if 0
|
#if 0
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
AddDivider(content);
|
Ui::AddDivider(content);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
content->add(
|
content->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
@ -1108,7 +1107,9 @@ void Premium::setupContent() {
|
||||||
tr::lng_premium_summary_bottom_about(Ui::Text::RichLangValue),
|
tr::lng_premium_summary_bottom_about(Ui::Text::RichLangValue),
|
||||||
st::aboutLabel),
|
st::aboutLabel),
|
||||||
st::boxRowPadding);
|
st::boxRowPadding);
|
||||||
AddSkip(content, stDefault.padding.top() + stDefault.padding.bottom());
|
Ui::AddSkip(
|
||||||
|
content,
|
||||||
|
stDefault.padding.top() + stDefault.padding.bottom());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Ui::ResizeFitChild(this, content);
|
Ui::ResizeFitChild(this, content);
|
||||||
|
|
|
@ -44,6 +44,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/image/image_prepare.h"
|
#include "ui/image/image_prepare.h"
|
||||||
#include "ui/image/image_prepare.h"
|
#include "ui/image/image_prepare.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/text/format_values.h" // Ui::FormatPhone
|
#include "ui/text/format_values.h" // Ui::FormatPhone
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
|
@ -562,8 +563,10 @@ object_ptr<Ui::RpWidget> PhoneNumberPrivacyController::setupMiddleWidget(
|
||||||
object_ptr<Ui::VerticalLayout>(parent));
|
object_ptr<Ui::VerticalLayout>(parent));
|
||||||
|
|
||||||
const auto container = widget->entity();
|
const auto container = widget->entity();
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddSubsectionTitle(container, tr::lng_edit_privacy_phone_number_find());
|
Ui::AddSubsectionTitle(
|
||||||
|
container,
|
||||||
|
tr::lng_edit_privacy_phone_number_find());
|
||||||
const auto group = std::make_shared<Ui::RadioenumGroup<Option>>();
|
const auto group = std::make_shared<Ui::RadioenumGroup<Option>>();
|
||||||
group->setChangedCallback([=](Option value) {
|
group->setChangedCallback([=](Option value) {
|
||||||
_addedByPhone = value;
|
_addedByPhone = value;
|
||||||
|
@ -581,8 +584,10 @@ object_ptr<Ui::RpWidget> PhoneNumberPrivacyController::setupMiddleWidget(
|
||||||
};
|
};
|
||||||
addOption(Option::Everyone);
|
addOption(Option::Everyone);
|
||||||
addOption(Option::Contacts);
|
addOption(Option::Contacts);
|
||||||
AddSkip(container, st::settingsSectionSkip + st::settingsPrivacySkipTop);
|
Ui::AddSkip(
|
||||||
AddDivider(container);
|
container,
|
||||||
|
st::settingsSectionSkip + st::settingsPrivacySkipTop);
|
||||||
|
Ui::AddDivider(container);
|
||||||
|
|
||||||
using namespace rpl::mappers;
|
using namespace rpl::mappers;
|
||||||
widget->toggleOn(_phoneNumberOption.value(
|
widget->toggleOn(_phoneNumberOption.value(
|
||||||
|
@ -757,8 +762,10 @@ object_ptr<Ui::RpWidget> CallsPrivacyController::setupBelowWidget(
|
||||||
auto result = object_ptr<Ui::VerticalLayout>(parent);
|
auto result = object_ptr<Ui::VerticalLayout>(parent);
|
||||||
const auto content = result.data();
|
const auto content = result.data();
|
||||||
|
|
||||||
AddSkip(content, st::settingsPeerToPeerSkip);
|
Ui::AddSkip(content, st::settingsPeerToPeerSkip);
|
||||||
AddSubsectionTitle(content, tr::lng_settings_calls_peer_to_peer_title());
|
Ui::AddSubsectionTitle(
|
||||||
|
content,
|
||||||
|
tr::lng_settings_calls_peer_to_peer_title());
|
||||||
Settings::AddPrivacyButton(
|
Settings::AddPrivacyButton(
|
||||||
controller,
|
controller,
|
||||||
content,
|
content,
|
||||||
|
@ -767,7 +774,7 @@ object_ptr<Ui::RpWidget> CallsPrivacyController::setupBelowWidget(
|
||||||
UserPrivacy::Key::CallsPeer2Peer,
|
UserPrivacy::Key::CallsPeer2Peer,
|
||||||
[] { return std::make_unique<CallsPeer2PeerPrivacyController>(); },
|
[] { return std::make_unique<CallsPeer2PeerPrivacyController>(); },
|
||||||
&st::settingsButton);
|
&st::settingsButton);
|
||||||
AddSkip(content);
|
Ui::AddSkip(content);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -1081,7 +1088,7 @@ object_ptr<Ui::RpWidget> ProfilePhotoPrivacyController::setupMiddleWidget(
|
||||||
st::inviteLinkUserpics.size,
|
st::inviteLinkUserpics.size,
|
||||||
st::inviteLinkUserpics.size);
|
st::inviteLinkUserpics.size);
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
const auto setUserpicButton = AddButton(
|
const auto setUserpicButton = AddButton(
|
||||||
container,
|
container,
|
||||||
state->setUserpicButtonText.value(),
|
state->setUserpicButtonText.value(),
|
||||||
|
@ -1095,8 +1102,8 @@ object_ptr<Ui::RpWidget> ProfilePhotoPrivacyController::setupMiddleWidget(
|
||||||
parent,
|
parent,
|
||||||
tr::lng_edit_privacy_profile_photo_public_remove(),
|
tr::lng_edit_privacy_profile_photo_public_remove(),
|
||||||
stRemoveButton)));
|
stRemoveButton)));
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
tr::lng_edit_privacy_profile_photo_public_about());
|
tr::lng_edit_privacy_profile_photo_public_about());
|
||||||
|
|
||||||
|
|
|
@ -45,6 +45,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/buttons.h"
|
#include "ui/widgets/buttons.h"
|
||||||
#include "ui/widgets/checkbox.h"
|
#include "ui/widgets/checkbox.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "calls/calls_instance.h"
|
#include "calls/calls_instance.h"
|
||||||
#include "core/core_cloud_password.h"
|
#include "core/core_cloud_password.h"
|
||||||
#include "core/update_checker.h"
|
#include "core/update_checker.h"
|
||||||
|
@ -253,8 +254,8 @@ void SetupPrivacy(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
rpl::producer<> updateTrigger) {
|
rpl::producer<> updateTrigger) {
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_privacy_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_privacy_title());
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
|
|
||||||
|
@ -310,8 +311,8 @@ void SetupPrivacy(
|
||||||
|
|
||||||
session->api().userPrivacy().reload(Api::UserPrivacy::Key::AddedByPhone);
|
session->api().userPrivacy().reload(Api::UserPrivacy::Key::AddedByPhone);
|
||||||
|
|
||||||
AddSkip(container, st::settingsPrivacySecurityPadding);
|
Ui::AddSkip(container, st::settingsPrivacySecurityPadding);
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupLocalPasscode(
|
void SetupLocalPasscode(
|
||||||
|
@ -426,8 +427,8 @@ void SetupSensitiveContent(
|
||||||
object_ptr<Ui::VerticalLayout>(container)));
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
const auto inner = wrap->entity();
|
const auto inner = wrap->entity();
|
||||||
|
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddSubsectionTitle(inner, tr::lng_settings_sensitive_title());
|
Ui::AddSubsectionTitle(inner, tr::lng_settings_sensitive_title());
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
|
|
||||||
|
@ -449,8 +450,8 @@ void SetupSensitiveContent(
|
||||||
session->api().sensitiveContent().update(toggled);
|
session->api().sensitiveContent().update(toggled);
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
|
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddDividerText(inner, tr::lng_settings_sensitive_about());
|
Ui::AddDividerText(inner, tr::lng_settings_sensitive_about());
|
||||||
|
|
||||||
wrap->toggleOn(session->api().sensitiveContent().canChange());
|
wrap->toggleOn(session->api().sensitiveContent().canChange());
|
||||||
}
|
}
|
||||||
|
@ -459,8 +460,8 @@ void SetupSelfDestruction(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
rpl::producer<> updateTrigger) {
|
rpl::producer<> updateTrigger) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_destroy_title());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_destroy_title());
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
|
|
||||||
|
@ -486,7 +487,7 @@ void SetupSelfDestruction(
|
||||||
session->api().selfDestruct().daysAccountTTL()));
|
session->api().selfDestruct().daysAccountTTL()));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ClearPaymentInfoBoxBuilder(
|
void ClearPaymentInfoBoxBuilder(
|
||||||
|
@ -551,8 +552,8 @@ auto ClearPaymentInfoBox(not_null<Main::Session*> session) {
|
||||||
void SetupBotsAndWebsites(
|
void SetupBotsAndWebsites(
|
||||||
not_null<Window::SessionController*> controller,
|
not_null<Window::SessionController*> controller,
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
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(
|
AddButton(
|
||||||
|
@ -563,7 +564,7 @@ void SetupBotsAndWebsites(
|
||||||
controller->show(ClearPaymentInfoBox(session));
|
controller->show(ClearPaymentInfoBox(session));
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupBlockedList(
|
void SetupBlockedList(
|
||||||
|
@ -658,8 +659,8 @@ void SetupSessionsList(
|
||||||
showOther(Sessions::Id());
|
showOther(Sessions::Id());
|
||||||
});
|
});
|
||||||
|
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
AddDividerText(container, tr::lng_settings_sessions_about());
|
Ui::AddDividerText(container, tr::lng_settings_sessions_about());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetupGlobalTTLList(
|
void SetupGlobalTTLList(
|
||||||
|
@ -695,8 +696,8 @@ void SetupSecurity(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
rpl::producer<> updateTrigger,
|
rpl::producer<> updateTrigger,
|
||||||
Fn<void(Type)> showOther) {
|
Fn<void(Type)> showOther) {
|
||||||
AddSkip(container, st::settingsPrivacySkip);
|
Ui::AddSkip(container, st::settingsPrivacySkip);
|
||||||
AddSubsectionTitle(container, tr::lng_settings_security());
|
Ui::AddSubsectionTitle(container, tr::lng_settings_security());
|
||||||
|
|
||||||
SetupCloudPassword(controller, container, showOther);
|
SetupCloudPassword(controller, container, showOther);
|
||||||
SetupGlobalTTLList(
|
SetupGlobalTTLList(
|
||||||
|
@ -848,8 +849,8 @@ void SetupArchiveAndMute(
|
||||||
object_ptr<Ui::VerticalLayout>(container)));
|
object_ptr<Ui::VerticalLayout>(container)));
|
||||||
const auto inner = wrap->entity();
|
const auto inner = wrap->entity();
|
||||||
|
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddSubsectionTitle(inner, tr::lng_settings_new_unknown());
|
Ui::AddSubsectionTitle(inner, tr::lng_settings_new_unknown());
|
||||||
|
|
||||||
const auto session = &controller->session();
|
const auto session = &controller->session();
|
||||||
|
|
||||||
|
@ -868,8 +869,8 @@ void SetupArchiveAndMute(
|
||||||
privacy->updateArchiveAndMute(toggled);
|
privacy->updateArchiveAndMute(toggled);
|
||||||
}, container->lifetime());
|
}, container->lifetime());
|
||||||
|
|
||||||
AddSkip(inner);
|
Ui::AddSkip(inner);
|
||||||
AddDividerText(inner, tr::lng_settings_auto_archive_about());
|
Ui::AddDividerText(inner, tr::lng_settings_auto_archive_about());
|
||||||
|
|
||||||
auto shown = rpl::single(
|
auto shown = rpl::single(
|
||||||
false
|
false
|
||||||
|
|
|
@ -22,6 +22,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/layers/generic_box.h"
|
#include "ui/layers/generic_box.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "window/window_session_controller.h"
|
#include "window/window_session_controller.h"
|
||||||
#include "styles/style_info.h"
|
#include "styles/style_info.h"
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
|
@ -154,9 +155,9 @@ void InfoBox(
|
||||||
|
|
||||||
using namespace Settings;
|
using namespace Settings;
|
||||||
const auto container = box->verticalLayout();
|
const auto container = box->verticalLayout();
|
||||||
AddDivider(container);
|
Ui::AddDivider(container);
|
||||||
AddSkip(container, st::sessionSubtitleSkip);
|
Ui::AddSkip(container, st::sessionSubtitleSkip);
|
||||||
AddSubsectionTitle(container, tr::lng_sessions_info());
|
Ui::AddSubsectionTitle(container, tr::lng_sessions_info());
|
||||||
|
|
||||||
AddSessionInfoRow(
|
AddSessionInfoRow(
|
||||||
container,
|
container,
|
||||||
|
@ -174,9 +175,9 @@ void InfoBox(
|
||||||
data.location,
|
data.location,
|
||||||
st::menuIconAddress);
|
st::menuIconAddress);
|
||||||
|
|
||||||
AddSkip(container, st::sessionValueSkip);
|
Ui::AddSkip(container, st::sessionValueSkip);
|
||||||
if (!data.location.isEmpty()) {
|
if (!data.location.isEmpty()) {
|
||||||
AddDividerText(container, tr::lng_sessions_location_about());
|
Ui::AddDividerText(container, tr::lng_sessions_location_about());
|
||||||
}
|
}
|
||||||
|
|
||||||
box->addButton(tr::lng_about_done(), [=] { box->closeBox(); });
|
box->addButton(tr::lng_about_done(), [=] { box->closeBox(); });
|
||||||
|
@ -609,8 +610,8 @@ void Content::Inner::setupContent() {
|
||||||
tr::lng_settings_disconnect_all(),
|
tr::lng_settings_disconnect_all(),
|
||||||
st::infoBlockButton,
|
st::infoBlockButton,
|
||||||
{ .icon = &st::infoIconBlock }));
|
{ .icon = &st::infoIconBlock }));
|
||||||
AddSkip(terminateInner);
|
Ui::AddSkip(terminateInner);
|
||||||
AddDividerText(
|
Ui::AddDividerText(
|
||||||
terminateInner,
|
terminateInner,
|
||||||
tr::lng_settings_logged_in_description());
|
tr::lng_settings_logged_in_description());
|
||||||
|
|
||||||
|
@ -619,10 +620,10 @@ void Content::Inner::setupContent() {
|
||||||
content,
|
content,
|
||||||
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
|
object_ptr<Ui::VerticalLayout>(content)))->setDuration(0);
|
||||||
const auto listInner = listWrap->entity();
|
const auto listInner = listWrap->entity();
|
||||||
AddSkip(listInner, st::sessionSubtitleSkip);
|
Ui::AddSkip(listInner, st::sessionSubtitleSkip);
|
||||||
AddSubsectionTitle(listInner, tr::lng_settings_logged_in_title());
|
Ui::AddSubsectionTitle(listInner, tr::lng_settings_logged_in_title());
|
||||||
_list = ListController::Add(listInner, session);
|
_list = ListController::Add(listInner, session);
|
||||||
AddSkip(listInner);
|
Ui::AddSkip(listInner);
|
||||||
|
|
||||||
const auto skip = st::noContactsHeight / 2;
|
const auto skip = st::noContactsHeight / 2;
|
||||||
const auto placeholder = content->add(
|
const auto placeholder = content->add(
|
||||||
|
@ -772,7 +773,7 @@ rpl::producer<QString> Websites::title() {
|
||||||
|
|
||||||
void Websites::setupContent(not_null<Window::SessionController*> controller) {
|
void Websites::setupContent(not_null<Window::SessionController*> controller) {
|
||||||
const auto container = Ui::CreateChild<Ui::VerticalLayout>(this);
|
const auto container = Ui::CreateChild<Ui::VerticalLayout>(this);
|
||||||
AddSkip(container);
|
Ui::AddSkip(container);
|
||||||
const auto content = container->add(
|
const auto content = container->add(
|
||||||
object_ptr<Content>(container, controller));
|
object_ptr<Content>(container, controller));
|
||||||
content->setupContent();
|
content->setupContent();
|
||||||
|
|
58
Telegram/SourceFiles/ui/vertical_list.cpp
Normal file
58
Telegram/SourceFiles/ui/vertical_list.cpp
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
|
|
||||||
|
#include "ui/widgets/box_content_divider.h"
|
||||||
|
#include "ui/widgets/labels.h"
|
||||||
|
#include "ui/wrap/padding_wrap.h"
|
||||||
|
#include "ui/wrap/vertical_layout.h"
|
||||||
|
#include "styles/style_layers.h"
|
||||||
|
#include "styles/style_settings.h"
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
|
||||||
|
void AddSkip(not_null<Ui::VerticalLayout*> container) {
|
||||||
|
AddSkip(container, st::settingsSectionSkip);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddSkip(not_null<Ui::VerticalLayout*> container, int skip) {
|
||||||
|
container->add(object_ptr<Ui::FixedHeightWidget>(
|
||||||
|
container,
|
||||||
|
skip));
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddDivider(not_null<Ui::VerticalLayout*> container) {
|
||||||
|
container->add(object_ptr<Ui::BoxContentDivider>(container));
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddDividerText(
|
||||||
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
rpl::producer<QString> text) {
|
||||||
|
container->add(object_ptr<Ui::DividerLabel>(
|
||||||
|
container,
|
||||||
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
container,
|
||||||
|
std::move(text),
|
||||||
|
st::boxDividerLabel),
|
||||||
|
st::settingsDividerLabelPadding));
|
||||||
|
}
|
||||||
|
|
||||||
|
not_null<Ui::FlatLabel*> AddSubsectionTitle(
|
||||||
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
rpl::producer<QString> text,
|
||||||
|
style::margins addPadding,
|
||||||
|
const style::FlatLabel *st) {
|
||||||
|
return container->add(
|
||||||
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
container,
|
||||||
|
std::move(text),
|
||||||
|
st ? *st : st::settingsSubsectionTitle),
|
||||||
|
st::settingsSubsectionTitlePadding + addPadding);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace Ui
|
31
Telegram/SourceFiles/ui/vertical_list.h
Normal file
31
Telegram/SourceFiles/ui/vertical_list.h
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
/*
|
||||||
|
This file is part of Telegram Desktop,
|
||||||
|
the official desktop application for the Telegram messaging service.
|
||||||
|
|
||||||
|
For license and copyright information please follow this link:
|
||||||
|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
namespace style {
|
||||||
|
struct FlatLabel;
|
||||||
|
} // namespace style
|
||||||
|
|
||||||
|
namespace Ui {
|
||||||
|
|
||||||
|
class FlatLabel;
|
||||||
|
class VerticalLayout;
|
||||||
|
|
||||||
|
void AddSkip(not_null<Ui::VerticalLayout*> container);
|
||||||
|
void AddSkip(not_null<Ui::VerticalLayout*> container, int skip);
|
||||||
|
void AddDivider(not_null<Ui::VerticalLayout*> container);
|
||||||
|
void AddDividerText(
|
||||||
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
rpl::producer<QString> text);
|
||||||
|
not_null<Ui::FlatLabel*> AddSubsectionTitle(
|
||||||
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
rpl::producer<QString> text,
|
||||||
|
style::margins addPadding = {},
|
||||||
|
const style::FlatLabel *st = nullptr);
|
||||||
|
|
||||||
|
} // namespace Ui
|
|
@ -22,21 +22,18 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "ui/widgets/shadow.h"
|
#include "ui/widgets/shadow.h"
|
||||||
#include "ui/wrap/slide_wrap.h"
|
#include "ui/wrap/slide_wrap.h"
|
||||||
#include "ui/wrap/vertical_layout.h"
|
#include "ui/wrap/vertical_layout.h"
|
||||||
#include "ui/wrap/vertical_layout_reorder.h"
|
|
||||||
#include "ui/text/format_values.h" // Ui::FormatPhone
|
|
||||||
#include "ui/text/text_utilities.h"
|
#include "ui/text/text_utilities.h"
|
||||||
#include "ui/text/text_options.h"
|
#include "ui/text/text_options.h"
|
||||||
#include "ui/painter.h"
|
#include "ui/painter.h"
|
||||||
#include "ui/empty_userpic.h"
|
#include "ui/empty_userpic.h"
|
||||||
|
#include "ui/vertical_list.h"
|
||||||
#include "ui/unread_badge_paint.h"
|
#include "ui/unread_badge_paint.h"
|
||||||
#include "base/call_delayed.h"
|
|
||||||
#include "inline_bots/bot_attach_web_view.h"
|
#include "inline_bots/bot_attach_web_view.h"
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "storage/localstorage.h"
|
#include "storage/localstorage.h"
|
||||||
#include "storage/storage_account.h"
|
#include "storage/storage_account.h"
|
||||||
#include "support/support_templates.h"
|
#include "support/support_templates.h"
|
||||||
#include "settings/settings_advanced.h"
|
#include "settings/settings_advanced.h"
|
||||||
#include "settings/settings_common.h"
|
|
||||||
#include "settings/settings_calls.h"
|
#include "settings/settings_calls.h"
|
||||||
#include "settings/settings_information.h"
|
#include "settings/settings_information.h"
|
||||||
#include "info/profile/info_profile_badge.h"
|
#include "info/profile/info_profile_badge.h"
|
||||||
|
@ -57,7 +54,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "main/main_session_settings.h"
|
#include "main/main_session_settings.h"
|
||||||
#include "main/main_account.h"
|
#include "main/main_account.h"
|
||||||
#include "main/main_domain.h"
|
#include "main/main_domain.h"
|
||||||
#include "mtproto/mtp_instance.h"
|
|
||||||
#include "mtproto/mtproto_config.h"
|
#include "mtproto/mtproto_config.h"
|
||||||
#include "data/data_document_media.h"
|
#include "data/data_document_media.h"
|
||||||
#include "data/data_folder.h"
|
#include "data/data_folder.h"
|
||||||
|
@ -69,9 +65,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "styles/style_chat.h" // popupMenuExpandedSeparator
|
#include "styles/style_chat.h" // popupMenuExpandedSeparator
|
||||||
#include "styles/style_window.h"
|
#include "styles/style_window.h"
|
||||||
#include "styles/style_widgets.h"
|
#include "styles/style_widgets.h"
|
||||||
#include "styles/style_dialogs.h"
|
|
||||||
#include "styles/style_settings.h"
|
#include "styles/style_settings.h"
|
||||||
#include "styles/style_boxes.h"
|
|
||||||
#include "styles/style_info.h" // infoTopBarMenu
|
#include "styles/style_info.h" // infoTopBarMenu
|
||||||
#include "styles/style_layers.h"
|
#include "styles/style_layers.h"
|
||||||
#include "styles/style_menu_icons.h"
|
#include "styles/style_menu_icons.h"
|
||||||
|
@ -127,16 +121,16 @@ void ShowCallsBox(not_null<Window::SessionController*> window) {
|
||||||
groupCalls->hide(anim::type::instant);
|
groupCalls->hide(anim::type::instant);
|
||||||
groupCalls->toggleOn(state->groupCallsController.shownValue());
|
groupCalls->toggleOn(state->groupCallsController.shownValue());
|
||||||
|
|
||||||
Settings::AddSubsectionTitle(
|
Ui::AddSubsectionTitle(
|
||||||
groupCalls->entity(),
|
groupCalls->entity(),
|
||||||
tr::lng_call_box_groupcalls_subtitle());
|
tr::lng_call_box_groupcalls_subtitle());
|
||||||
state->groupCallsDelegate.setContent(groupCalls->entity()->add(
|
state->groupCallsDelegate.setContent(groupCalls->entity()->add(
|
||||||
object_ptr<PeerListContent>(box, &state->groupCallsController),
|
object_ptr<PeerListContent>(box, &state->groupCallsController),
|
||||||
{}));
|
{}));
|
||||||
state->groupCallsController.setDelegate(&state->groupCallsDelegate);
|
state->groupCallsController.setDelegate(&state->groupCallsDelegate);
|
||||||
Settings::AddSkip(groupCalls->entity());
|
Ui::AddSkip(groupCalls->entity());
|
||||||
Settings::AddDivider(groupCalls->entity());
|
Ui::AddDivider(groupCalls->entity());
|
||||||
Settings::AddSkip(groupCalls->entity());
|
Ui::AddSkip(groupCalls->entity());
|
||||||
|
|
||||||
const auto content = box->addRow(
|
const auto content = box->addRow(
|
||||||
object_ptr<PeerListContent>(box, &state->callsController),
|
object_ptr<PeerListContent>(box, &state->callsController),
|
||||||
|
@ -234,15 +228,15 @@ void SetupMenuBots(
|
||||||
}
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const auto button = Settings::AddButton(
|
const auto button = wrap->add(object_ptr<Ui::SettingsButton>(
|
||||||
wrap,
|
wrap,
|
||||||
rpl::single(bot.name),
|
rpl::single(bot.name),
|
||||||
st::mainMenuButton);
|
st::mainMenuButton));
|
||||||
const auto menu = button->lifetime().make_state<
|
const auto menu = button->lifetime().make_state<
|
||||||
base::unique_qptr<Ui::PopupMenu>
|
base::unique_qptr<Ui::PopupMenu>
|
||||||
>();
|
>();
|
||||||
const auto icon = Ui::CreateChild<InlineBots::MenuBotIcon>(
|
const auto icon = Ui::CreateChild<InlineBots::MenuBotIcon>(
|
||||||
button.get(),
|
button,
|
||||||
bot.media);
|
bot.media);
|
||||||
button->heightValue(
|
button->heightValue(
|
||||||
) | rpl::start_with_next([=](int height) {
|
) | rpl::start_with_next([=](int height) {
|
||||||
|
@ -276,7 +270,7 @@ void SetupMenuBots(
|
||||||
|
|
||||||
const auto badge = bots->showMainMenuNewBadge(bot)
|
const auto badge = bots->showMainMenuNewBadge(bot)
|
||||||
? Ui::CreateChild<Ui::PaddingWrap<Ui::FlatLabel>>(
|
? Ui::CreateChild<Ui::PaddingWrap<Ui::FlatLabel>>(
|
||||||
button.get(),
|
button,
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
button,
|
button,
|
||||||
tr::lng_bot_side_menu_new(),
|
tr::lng_bot_side_menu_new(),
|
||||||
|
|
|
@ -368,6 +368,8 @@ PRIVATE
|
||||||
ui/grouped_layout.h
|
ui/grouped_layout.h
|
||||||
ui/power_saving.cpp
|
ui/power_saving.cpp
|
||||||
ui/power_saving.h
|
ui/power_saving.h
|
||||||
|
ui/vertical_list.cpp
|
||||||
|
ui/vertical_list.h
|
||||||
ui/unread_badge_paint.cpp
|
ui/unread_badge_paint.cpp
|
||||||
ui/unread_badge_paint.h
|
ui/unread_badge_paint.h
|
||||||
ui/userpic_view.cpp
|
ui/userpic_view.cpp
|
||||||
|
|
Loading…
Add table
Reference in a new issue