diff --git a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp index 992c5a233..edf2f2737 100644 --- a/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp +++ b/Telegram/SourceFiles/boxes/peers/edit_peer_permissions_box.cpp @@ -212,14 +212,11 @@ template < typename DisabledMessagePairs, typename FlagLabelPairs> [[nodiscard]] EditFlagsControl CreateEditFlags( - QWidget *parent, + not_null container, rpl::producer header, Flags checked, const DisabledMessagePairs &disabledMessagePairs, const FlagLabelPairs &flagLabelPairs) { - auto widget = object_ptr(parent); - const auto container = widget.data(); - const auto checkboxes = container->lifetime( ).make_state>>(); @@ -274,7 +271,7 @@ template < if (locked.has_value()) { if (checked != toggled) { Ui::ShowMultilineToast({ - .parentOverride = parent, + .parentOverride = container, .text = { *locked }, }); control->setChecked(toggled); @@ -298,7 +295,7 @@ template < } return { - std::move(widget), + nullptr, value, changes->events() | rpl::map(value) }; @@ -737,12 +734,14 @@ EditFlagsControl CreateEditRestrictions( ChatRestrictions restrictions, std::map disabledMessages, Data::RestrictionsSetOptions options) { + auto widget = object_ptr(parent); auto result = CreateEditFlags( - parent, + widget.data(), header, NegateRestrictions(restrictions), disabledMessages, RestrictionLabels(options)); + result.widget = std::move(widget); result.value = [original = std::move(result.value)]{ return NegateRestrictions(original()); }; @@ -759,12 +758,15 @@ EditFlagsControl CreateEditAdminRights( ChatAdminRights rights, std::map disabledMessages, Data::AdminRightsSetOptions options) { - return CreateEditFlags( - parent, + auto widget = object_ptr(parent); + auto result = CreateEditFlags( + widget.data(), header, rights, disabledMessages, AdminRightLabels(options)); + result.widget = std::move(widget); + return result; } ChatAdminRights DisabledByDefaultRestrictions(not_null peer) {