Added delete prevent in SendFilesBox when it has single item.

This commit is contained in:
23rd 2020-11-05 16:51:26 +03:00 committed by John Preston
parent 039cad21a5
commit fad7996e63

View file

@ -533,6 +533,9 @@ void SendFilesBox::pushBlock(int from, int till) {
block.takeWidget(),
QMargins(0, _inner->count() ? st::sendMediaRowSkip : 0, 0, 0));
const auto preventDelete =
widget->lifetime().make_state<rpl::event_stream<int>>();
block.itemDeleteRequest(
) | rpl::filter([=] {
return !_removingIndex;
@ -543,12 +546,19 @@ void SendFilesBox::pushBlock(int from, int till) {
if (index < 0 || index >= _list.files.size()) {
return;
}
// Prevent item delete if it is the only one.
if (_list.files.size() == 1) {
preventDelete->fire_copy(0);
return;
}
_list.files.erase(_list.files.begin() + index);
refreshAllAfterChanges(from);
});
}, widget->lifetime());
block.itemReplaceRequest(
rpl::merge(
block.itemReplaceRequest(),
preventDelete->events()
) | rpl::start_with_next([=](int index) {
const auto replace = [=](Ui::PreparedList list) {
if (list.files.empty()) {