Make invites always stick to the top

This also removes an ugly hack, that was needed before.
This commit is contained in:
Nicolas Werner 2019-12-13 20:49:27 +01:00
parent a73ed771fa
commit ba25771c08
2 changed files with 8 additions and 13 deletions

View file

@ -15,6 +15,8 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <limits>
#include <QApplication>
#include <QBuffer>
#include <QObject>
@ -191,6 +193,9 @@ RoomList::sync(const std::map<QString, RoomInfo> &info)
{
for (const auto &room : info)
updateRoom(room.first, room.second);
if (!info.empty())
sortRoomsByLastMessage();
}
void
@ -270,7 +275,9 @@ RoomList::sortRoomsByLastMessage()
continue;
// Not a room message.
if (room->lastMessageInfo().userid.isEmpty())
if (room->isInvite())
times.emplace(std::numeric_limits<uint64_t>::max(), room);
else if (room->lastMessageInfo().userid.isEmpty())
times.emplace(0, room);
else
times.emplace(room->lastMessageInfo().datetime.toMSecsSinceEpoch(), room);