diff --git a/src/RoomList.cpp b/src/RoomList.cpp index 09250387..981b1f11 100644 --- a/src/RoomList.cpp +++ b/src/RoomList.cpp @@ -160,7 +160,12 @@ RoomList::initialize(const QMap &info) rooms_.clear(); + // prevent flickering and save time sorting over and over again setUpdatesEnabled(false); + disconnect(settings.data(), + &UserSettings::roomSortingChanged, + this, + &RoomList::sortRoomsByLastMessage); for (auto it = info.begin(); it != info.end(); it++) { if (it.value().is_invite) @@ -172,6 +177,10 @@ RoomList::initialize(const QMap &info) for (auto it = info.begin(); it != info.end(); it++) updateRoomDescription(it.key(), it.value().msgInfo); + connect(settings.data(), + &UserSettings::roomSortingChanged, + this, + &RoomList::sortRoomsByLastMessage); setUpdatesEnabled(true); if (rooms_.empty())