mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-14 13:17:08 +02:00
Close chat/media if thrown out by admin.
This commit is contained in:
parent
4fb03e532c
commit
a3b8397361
3 changed files with 23 additions and 3 deletions
|
@ -165,6 +165,7 @@ void ChannelData::setFlags(ChannelDataFlags which) {
|
|||
const auto taken = ((diff & Flag::Forum) && !(which & Flag::Forum))
|
||||
? mgInfo->takeForumData()
|
||||
: nullptr;
|
||||
const auto wasIn = amIn();
|
||||
if ((diff & Flag::Forum) && (which & Flag::Forum)) {
|
||||
mgInfo->ensureForum(this);
|
||||
}
|
||||
|
@ -174,6 +175,14 @@ void ChannelData::setFlags(ChannelDataFlags which) {
|
|||
session().changes().peerUpdated(chat, UpdateFlag::Migration);
|
||||
session().changes().peerUpdated(this, UpdateFlag::Migration);
|
||||
}
|
||||
|
||||
if (wasIn && !amIn()) {
|
||||
crl::on_main(&session(), [=] {
|
||||
if (!amIn()) {
|
||||
Core::App().closeChatFromWindows(this);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (diff & (Flag::Forum | Flag::CallNotEmpty | Flag::SimilarExpanded)) {
|
||||
if (const auto history = this->owner().historyLoaded(this)) {
|
||||
|
|
|
@ -7,6 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
*/
|
||||
#include "data/data_chat.h"
|
||||
|
||||
#include "core/application.h"
|
||||
#include "data/data_user.h"
|
||||
#include "data/data_channel.h"
|
||||
#include "data/data_session.h"
|
||||
|
@ -132,6 +133,18 @@ void ChatData::invalidateParticipants() {
|
|||
UpdateFlag::Members | UpdateFlag::Admins);
|
||||
}
|
||||
|
||||
void ChatData::setFlags(ChatDataFlags which) {
|
||||
const auto wasIn = amIn();
|
||||
_flags.set(which);
|
||||
if (wasIn && !amIn()) {
|
||||
crl::on_main(&session(), [=] {
|
||||
if (!amIn()) {
|
||||
Core::App().closeChatFromWindows(this);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void ChatData::setInviteLink(const QString &newInviteLink) {
|
||||
_inviteLink = newInviteLink;
|
||||
}
|
||||
|
|
|
@ -42,9 +42,7 @@ public:
|
|||
return (count > 0 || amIn()) && participants.empty();
|
||||
}
|
||||
|
||||
void setFlags(ChatDataFlags which) {
|
||||
_flags.set(which);
|
||||
}
|
||||
void setFlags(ChatDataFlags which);
|
||||
void addFlags(ChatDataFlags which) {
|
||||
_flags.add(which);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue