Add ability to completely delete legacy group.

This commit is contained in:
John Preston 2021-01-21 08:20:29 +04:00
parent 19455d44db
commit 1774b21e88
4 changed files with 14 additions and 5 deletions

View File

@ -601,9 +601,7 @@ void DeleteMessagesBox::prepare() {
deleteText = _wipeHistoryPeer->isUser()
? tr::lng_box_delete()
: tr::lng_box_leave();
deleteStyle = &(peer->isChannel()
? st::defaultBoxButton
: st::attentionBoxButton);
deleteStyle = &st::attentionBoxButton;
}
if (auto revoke = revokeText(peer)) {
_revoke.create(this, revoke->checkbox, false, st::defaultBoxCheckbox);
@ -702,6 +700,8 @@ auto DeleteMessagesBox::revokeText(not_null<PeerData*> peer) const
tr::now,
lt_user,
user->firstName);
} else if (_wipeHistoryJustClear) {
return std::nullopt;
} else {
result.checkbox = tr::lng_delete_for_everyone_check(tr::now);
}

View File

@ -748,7 +748,7 @@ void ManageInviteLinksBox(
const auto deleteAll = Ui::CreateChild<Ui::LinkButton>(
container.get(),
tr::lng_group_invite_context_delete_all(tr::now),
st::boxLinkButton);
st::defaultLinkButton);
rpl::combine(
header->topValue(),
container->widthValue()

View File

@ -9,6 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "data/data_session.h"
#include "data/data_channel.h"
#include "data/data_chat.h"
#include "data/data_folder.h"
#include "data/data_scheduled_messages.h"
#include "main/main_session.h"
@ -599,11 +600,17 @@ void Histories::deleteAllMessages(
)).done([=](const MTPBool &result) {
finish();
}).fail(fail).send();
} else if (revoke && peer->isChat() && peer->asChat()->amCreator()) {
return session().api().request(MTPmessages_DeleteChat(
peer->asChat()->inputChat
)).done([=](const MTPBool &result) {
finish();
}).fail(fail).send();
} else {
using Flag = MTPmessages_DeleteHistory::Flag;
const auto flags = Flag(0)
| (justClear ? Flag::f_just_clear : Flag(0))
| ((peer->isUser() && revoke) ? Flag::f_revoke : Flag(0));
| (revoke ? Flag::f_revoke : Flag(0));
return session().api().request(MTPmessages_DeleteHistory(
MTP_flags(flags),
peer->input,

View File

@ -825,6 +825,8 @@ bool PeerData::canRevokeFullHistory() const {
&& (!user->isBot() || user->isSupport())
&& session().serverConfig().revokePrivateInbox
&& (session().serverConfig().revokePrivateTimeLimit == 0x7FFFFFFF);
} else if (const auto chat = asChat()) {
return chat->amCreator();
}
return false;
}