Make room leaving more robust
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user