Make room leaving more robust

This commit is contained in:
Tobias Fella
2024-08-21 15:20:10 +02:00
parent 46916b34d4
commit e41cca9be0

View File

@@ -303,10 +303,16 @@ void NeoChatRoom::acceptInvitation()
void NeoChatRoom::forget()
{
if (const auto &predecessor = dynamic_cast<NeoChatRoom *>(this->predecessor(JoinState::Join))) {
predecessor->forget();
QStringList roomIds{id()};
NeoChatRoom *predecessor = this;
while (predecessor = dynamic_cast<NeoChatRoom *>(predecessor->predecessor(JoinState::Join)), predecessor && !roomIds.contains(predecessor->id())) {
roomIds += predecessor->id();
}
for (const auto &id : roomIds) {
connection()->forgetRoom(id);
}
connection()->forgetRoom(id());
}
void NeoChatRoom::sendTypingNotification(bool isTyping)