diff --git a/Telegram/SourceFiles/boxes/boxes.style b/Telegram/SourceFiles/boxes/boxes.style index b977c1c60..7fb0f669a 100644 --- a/Telegram/SourceFiles/boxes/boxes.style +++ b/Telegram/SourceFiles/boxes/boxes.style @@ -597,8 +597,6 @@ rightsHeaderLabel: FlatLabel(boxLabel) { } textFg: windowActiveTextFg; } -rightsUntilMargin: margins(0px, 8px, 0px, 20px); -rightsRankMargin: margins(0px, 7px, 0px, 20px); groupStickersRemove: defaultMultiSelectSearchCancel; groupStickersRemovePosition: point(6px, 6px); diff --git a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp index 301da7031..9c68881a1 100644 --- a/Telegram/SourceFiles/boxes/moderate_messages_box.cpp +++ b/Telegram/SourceFiles/boxes/moderate_messages_box.cpp @@ -436,14 +436,16 @@ void CreateModerateMessagesBox( return result; }(); - auto [checkboxes, getRestrictions, changes] = CreateEditRestrictions( - box, + Ui::AddSubsectionTitle( + inner, rpl::conditional( rpl::single(isSingle), tr::lng_restrict_users_part_single_header(), tr::lng_restrict_users_part_header( lt_count, - rpl::single(participants.size()) | tr::to_count())), + rpl::single(participants.size()) | tr::to_count()))); + auto [checkboxes, getRestrictions, changes] = CreateEditRestrictions( + box, prepareFlags, disabledMessages, { .isForum = peer->isForum() }); diff --git a/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp index 39389d1d5..23c7602f3 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_participant_box.cpp @@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "lang/lang_keys.h" #include "ui/controls/userpic_button.h" +#include "ui/vertical_list.h" #include "ui/wrap/vertical_layout.h" #include "ui/wrap/padding_wrap.h" #include "ui/wrap/slide_wrap.h" @@ -63,6 +64,10 @@ public: template Widget *addControl(object_ptr widget, QMargins margin); + [[nodiscard]] not_null verticalLayout() const { + return _rows; + } + protected: int resizeGetHeight(int newWidth) override; void paintEvent(QPaintEvent *e) override; @@ -164,6 +169,10 @@ EditParticipantBox::EditParticipantBox( , _hasAdminRights(hasAdminRights) { } +not_null EditParticipantBox::verticalLayout() const { + return _inner->verticalLayout(); +} + void EditParticipantBox::prepare() { _inner = setInnerWidget(object_ptr( this, @@ -279,9 +288,8 @@ void EditAdminBox::prepare() { object_ptr(this))); const auto inner = _adminControlsWrap->entity(); - inner->add( - object_ptr(inner), - st::rightsDividerMargin); + Ui::AddDivider(inner); + Ui::AddSkip(inner); const auto chat = peer()->asChat(); const auto channel = peer()->asChannel(); @@ -335,9 +343,9 @@ void EditAdminBox::prepare() { .isForum = peer()->isForum(), .anyoneCanAddMembers = anyoneCanAddMembers, }; + Ui::AddSubsectionTitle(inner, tr::lng_rights_edit_admin_header()); auto [checkboxes, getChecked, changes] = CreateEditAdminRights( inner, - tr::lng_rights_edit_admin_header(), prepareFlags, disabledMessages, options); @@ -441,9 +449,7 @@ void EditAdminBox::refreshButtons() { not_null EditAdminBox::addRankInput( not_null container) { - container->add( - object_ptr(container), - st::rightsRankMargin); + Ui::AddDivider(container); container->add( object_ptr( @@ -712,9 +718,8 @@ void EditRestrictedBox::prepare() { setTitle(tr::lng_rights_user_restrictions()); - addControl( - object_ptr(this), - st::rightsDividerMargin); + Ui::AddDivider(verticalLayout()); + Ui::AddSkip(verticalLayout()); const auto chat = peer()->asChat(); const auto channel = peer()->asChannel(); @@ -749,16 +754,20 @@ void EditRestrictedBox::prepare() { return result; }(); + Ui::AddSubsectionTitle( + verticalLayout(), + tr::lng_rights_user_restrictions_header()); auto [checkboxes, getRestrictions, changes] = CreateEditRestrictions( this, - tr::lng_rights_user_restrictions_header(), prepareFlags, disabledMessages, { .isForum = peer()->isForum() }); addControl(std::move(checkboxes), QMargins()); _until = prepareRights.until; - addControl(object_ptr(this), st::rightsUntilMargin); + addControl( + object_ptr(this, st::defaultVerticalListSkip)); + Ui::AddDivider(verticalLayout()); addControl( object_ptr( this, diff --git a/Telegram/SourceFiles/boxes/peers/edit_participant_box.h b/Telegram/SourceFiles/boxes/peers/edit_participant_box.h index 69424cbdc..6d9afe25a 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_participant_box.h +++ b/Telegram/SourceFiles/boxes/peers/edit_participant_box.h @@ -36,6 +36,8 @@ public: not_null user, bool hasAdminRights); + [[nodiscard]] not_null verticalLayout() const; + protected: void prepare() override; diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp index 3cb0265ba..4d6dbc3ec 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp @@ -19,6 +19,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "ui/wrap/vertical_layout.h" #include "ui/layers/generic_box.h" #include "ui/painter.h" +#include "ui/vertical_list.h" #include "ui/widgets/labels.h" #include "ui/widgets/checkbox.h" #include "ui/widgets/buttons.h" @@ -583,14 +584,6 @@ template ApplyDependencies(state->checkViews, dependencies, view); }; - if (descriptor.header) { - container->add( - object_ptr( - container, - std::move(descriptor.header), - st::rightsHeaderLabel), - st::rightsHeaderMargin); - } const auto addCheckbox = [&]( not_null verticalLayout, bool isInner, @@ -1146,9 +1139,11 @@ void ShowEditPeerPermissionsBox( return result; }(); + Ui::AddSubsectionTitle( + inner, + tr::lng_rights_default_restrictions_header()); auto [checkboxes, getRestrictions, changes] = CreateEditRestrictions( inner, - tr::lng_rights_default_restrictions_header(), restrictions, disabledMessages, { .isForum = peer->isForum() }); @@ -1312,7 +1307,6 @@ std::vector AdminRightLabels( EditFlagsControl CreateEditRestrictions( QWidget *parent, - rpl::producer header, ChatRestrictions restrictions, base::flat_map disabledMessages, Data::RestrictionsSetOptions options) { @@ -1321,7 +1315,6 @@ EditFlagsControl CreateEditRestrictions( widget.data(), NegateRestrictions(restrictions), { - .header = std::move(header), .labels = NestedRestrictionLabelsList(options), .disabledMessages = std::move(disabledMessages), }); @@ -1338,7 +1331,6 @@ EditFlagsControl CreateEditRestrictions( EditFlagsControl CreateEditAdminRights( QWidget *parent, - rpl::producer header, ChatAdminRights rights, base::flat_map disabledMessages, Data::AdminRightsSetOptions options) { @@ -1347,7 +1339,6 @@ EditFlagsControl CreateEditAdminRights( widget.data(), rights, { - .header = std::move(header), .labels = NestedAdminRightLabels(options), .disabledMessages = std::move(disabledMessages), }); diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.h b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.h index b7e63e2e2..ce45f4e68 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.h +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.h @@ -73,7 +73,6 @@ struct NestedEditFlagsLabels { template struct EditFlagsDescriptor { - rpl::producer header; std::vector> labels; base::flat_map disabledMessages; const style::SettingsButton *st = nullptr; @@ -90,7 +89,6 @@ using AdminRightLabel = EditFlagsLabel; [[nodiscard]] auto CreateEditRestrictions( QWidget *parent, - rpl::producer header, ChatRestrictions restrictions, base::flat_map disabledMessages, Data::RestrictionsSetOptions options) @@ -98,7 +96,6 @@ using AdminRightLabel = EditFlagsLabel; [[nodiscard]] auto CreateEditAdminRights( QWidget *parent, - rpl::producer header, ChatAdminRights rights, base::flat_map disabledMessages, Data::AdminRightsSetOptions options)