Do heavy things less often on room change event

This commit is contained in:
Andreas Gattringer
2024-07-13 12:14:59 +02:00
parent 709711c3ca
commit b211f46e3e
2 changed files with 11 additions and 5 deletions

View File

@@ -215,10 +215,13 @@ void MessageEventModel::setRoom(NeoChatRoom *room)
}
refreshEventRoles(eventId, {Qt::DisplayRole});
});
connect(m_currentRoom, &Room::changed, this, [this]() {
for (auto it = m_currentRoom->messageEvents().rbegin(); it != m_currentRoom->messageEvents().rend(); ++it) {
auto event = it->event();
refreshEventRoles(event->id(), {ReadMarkersRole, ReadMarkersStringRole, ExcessReadMarkersRole});
connect(m_currentRoom, &Room::changed, this, [this](Room::Changes changes) {
if (changes & (Room::Change::PartiallyReadStats | Room::Change::UnreadStats | Room::Change::Other | Room::Change::Members)) {
// this is slow
for (auto it = m_currentRoom->messageEvents().rbegin(); it != m_currentRoom->messageEvents().rend(); ++it) {
auto event = it->event();
refreshEventRoles(event->id(), {ReadMarkersRole, ReadMarkersStringRole, ExcessReadMarkersRole});
}
}
});
connect(m_currentRoom->connection(), &Connection::ignoredUsersListChanged, this, [this] {