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() void NeoChatRoom::forget()
{ {
if (const auto &predecessor = dynamic_cast<NeoChatRoom *>(this->predecessor(JoinState::Join))) { QStringList roomIds{id()};
predecessor->forget();
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) void NeoChatRoom::sendTypingNotification(bool isTyping)