Replaced float labels with text in dividers in EditAdminBox.
This commit is contained in:
parent
edf1417bbb
commit
521f991167
2 changed files with 50 additions and 38 deletions
|
@ -356,17 +356,47 @@ void EditAdminBox::prepare() {
|
||||||
) | rpl::then(std::move(
|
) | rpl::then(std::move(
|
||||||
changes
|
changes
|
||||||
));
|
));
|
||||||
_aboutAddAdmins = inner->add(
|
|
||||||
object_ptr<Ui::FlatLabel>(inner, st::boxDividerLabel),
|
const auto hasRank = canSave() && (chat || channel->isMegagroup());
|
||||||
st::rightsAboutMargin);
|
|
||||||
rpl::duplicate(
|
{
|
||||||
selectedFlags
|
const auto aboutAddAdminsInner = inner->add(
|
||||||
) | rpl::map(
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
(_1 & Flag::AddAdmins) != 0
|
inner,
|
||||||
) | rpl::distinct_until_changed(
|
object_ptr<Ui::VerticalLayout>(inner)));
|
||||||
) | rpl::start_with_next([=](bool checked) {
|
const auto emptyAboutAddAdminsInner = inner->add(
|
||||||
refreshAboutAddAdminsText(checked);
|
object_ptr<Ui::SlideWrap<Ui::VerticalLayout>>(
|
||||||
}, lifetime());
|
inner,
|
||||||
|
object_ptr<Ui::VerticalLayout>(inner)));
|
||||||
|
aboutAddAdminsInner->toggle(false, anim::type::instant);
|
||||||
|
emptyAboutAddAdminsInner->toggle(false, anim::type::instant);
|
||||||
|
Ui::AddSkip(emptyAboutAddAdminsInner->entity());
|
||||||
|
if (hasRank) {
|
||||||
|
Ui::AddDivider(emptyAboutAddAdminsInner->entity());
|
||||||
|
Ui::AddSkip(emptyAboutAddAdminsInner->entity());
|
||||||
|
}
|
||||||
|
Ui::AddSkip(aboutAddAdminsInner->entity());
|
||||||
|
Ui::AddDividerText(
|
||||||
|
aboutAddAdminsInner->entity(),
|
||||||
|
rpl::duplicate(
|
||||||
|
selectedFlags
|
||||||
|
) | rpl::map(
|
||||||
|
(_1 & Flag::AddAdmins) != 0
|
||||||
|
) | rpl::distinct_until_changed(
|
||||||
|
) | rpl::map([=](bool canAddAdmins) {
|
||||||
|
const auto empty = (amCreator() && user()->isSelf());
|
||||||
|
aboutAddAdminsInner->toggle(!empty, anim::type::instant);
|
||||||
|
emptyAboutAddAdminsInner->toggle(empty, anim::type::instant);
|
||||||
|
if (empty) {
|
||||||
|
return rpl::single(QString());
|
||||||
|
} else if (!canSave()) {
|
||||||
|
return tr::lng_rights_about_admin_cant_edit();
|
||||||
|
} else if (canAddAdmins) {
|
||||||
|
return tr::lng_rights_about_add_admins_yes();
|
||||||
|
}
|
||||||
|
return tr::lng_rights_about_add_admins_no();
|
||||||
|
}) | rpl::flatten_latest());
|
||||||
|
}
|
||||||
|
|
||||||
if (canTransferOwnership()) {
|
if (canTransferOwnership()) {
|
||||||
const auto allFlags = AdminRightsForOwnershipTransfer(options);
|
const auto allFlags = AdminRightsForOwnershipTransfer(options);
|
||||||
|
@ -381,9 +411,7 @@ void EditAdminBox::prepare() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (canSave()) {
|
if (canSave()) {
|
||||||
_rank = (chat || channel->isMegagroup())
|
_rank = hasRank ? addRankInput(inner).get() : nullptr;
|
||||||
? addRankInput(inner).get()
|
|
||||||
: nullptr;
|
|
||||||
_finishSave = [=, value = getChecked] {
|
_finishSave = [=, value = getChecked] {
|
||||||
const auto newFlags = (value() | ChatAdminRight::Other)
|
const auto newFlags = (value() | ChatAdminRight::Other)
|
||||||
& ((!channel || channel->amCreator())
|
& ((!channel || channel->amCreator())
|
||||||
|
@ -449,7 +477,7 @@ void EditAdminBox::refreshButtons() {
|
||||||
|
|
||||||
not_null<Ui::InputField*> EditAdminBox::addRankInput(
|
not_null<Ui::InputField*> EditAdminBox::addRankInput(
|
||||||
not_null<Ui::VerticalLayout*> container) {
|
not_null<Ui::VerticalLayout*> container) {
|
||||||
Ui::AddDivider(container);
|
// Ui::AddDivider(container);
|
||||||
|
|
||||||
container->add(
|
container->add(
|
||||||
object_ptr<Ui::FlatLabel>(
|
object_ptr<Ui::FlatLabel>(
|
||||||
|
@ -486,14 +514,13 @@ not_null<Ui::InputField*> EditAdminBox::addRankInput(
|
||||||
}
|
}
|
||||||
}, result->lifetime());
|
}, result->lifetime());
|
||||||
|
|
||||||
container->add(
|
Ui::AddSkip(container);
|
||||||
object_ptr<Ui::FlatLabel>(
|
Ui::AddDividerText(
|
||||||
container,
|
container,
|
||||||
tr::lng_rights_edit_admin_rank_about(
|
tr::lng_rights_edit_admin_rank_about(
|
||||||
lt_title,
|
lt_title,
|
||||||
(isOwner ? tr::lng_owner_badge : tr::lng_admin_badge)()),
|
(isOwner ? tr::lng_owner_badge : tr::lng_admin_badge)()));
|
||||||
st::boxDividerLabel),
|
Ui::AddSkip(container);
|
||||||
st::rightsAboutMargin);
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -687,19 +714,6 @@ void EditAdminBox::sendTransferRequestFrom(
|
||||||
})).handleFloodErrors().send();
|
})).handleFloodErrors().send();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EditAdminBox::refreshAboutAddAdminsText(bool canAddAdmins) {
|
|
||||||
_aboutAddAdmins->setText([&] {
|
|
||||||
if (amCreator() && user()->isSelf()) {
|
|
||||||
return QString();
|
|
||||||
} else if (!canSave()) {
|
|
||||||
return tr::lng_rights_about_admin_cant_edit(tr::now);
|
|
||||||
} else if (canAddAdmins) {
|
|
||||||
return tr::lng_rights_about_add_admins_yes(tr::now);
|
|
||||||
}
|
|
||||||
return tr::lng_rights_about_add_admins_no(tr::now);
|
|
||||||
}());
|
|
||||||
}
|
|
||||||
|
|
||||||
EditRestrictedBox::EditRestrictedBox(
|
EditRestrictedBox::EditRestrictedBox(
|
||||||
QWidget*,
|
QWidget*,
|
||||||
not_null<PeerData*> peer,
|
not_null<PeerData*> peer,
|
||||||
|
|
|
@ -110,7 +110,6 @@ private:
|
||||||
}
|
}
|
||||||
void finishAddAdmin();
|
void finishAddAdmin();
|
||||||
void refreshButtons();
|
void refreshButtons();
|
||||||
void refreshAboutAddAdminsText(bool canAddAdmins);
|
|
||||||
bool canTransferOwnership() const;
|
bool canTransferOwnership() const;
|
||||||
not_null<Ui::SlideWrap<Ui::RpWidget>*> setupTransferButton(
|
not_null<Ui::SlideWrap<Ui::RpWidget>*> setupTransferButton(
|
||||||
not_null<Ui::VerticalLayout*> container,
|
not_null<Ui::VerticalLayout*> container,
|
||||||
|
@ -127,7 +126,6 @@ private:
|
||||||
Ui::Checkbox *_addAsAdmin = nullptr;
|
Ui::Checkbox *_addAsAdmin = nullptr;
|
||||||
Ui::SlideWrap<Ui::VerticalLayout> *_adminControlsWrap = nullptr;
|
Ui::SlideWrap<Ui::VerticalLayout> *_adminControlsWrap = nullptr;
|
||||||
Ui::InputField *_rank = nullptr;
|
Ui::InputField *_rank = nullptr;
|
||||||
QPointer<Ui::FlatLabel> _aboutAddAdmins;
|
|
||||||
mtpRequestId _checkTransferRequestId = 0;
|
mtpRequestId _checkTransferRequestId = 0;
|
||||||
mtpRequestId _transferRequestId = 0;
|
mtpRequestId _transferRequestId = 0;
|
||||||
Fn<void()> _save, _finishSave;
|
Fn<void()> _save, _finishSave;
|
||||||
|
|
Loading…
Reference in a new issue