Skip to content
Snippets Groups Projects
Commit ba25771c authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Make invites always stick to the top

This also removes an ugly hack, that was needed before.
parent a73ed771
No related branches found
No related tags found
No related merge requests found
......@@ -107,18 +107,6 @@ RoomInfoListItem::RoomInfoListItem(QString room_id, RoomInfo info, QWidget *pare
, unreadHighlightedMsgCount_(0)
{
init(parent);
QString emptyEventId;
// HACK
// We use fake message info with an old date to pin
// the invite events to the top.
//
// State events in invited rooms don't contain timestamp info,
// so we can't use them for sorting.
if (roomType_ == RoomType::Invited)
lastMsgInfo_ = {
emptyEventId, "-", "-", "-", QDateTime::currentDateTime().addYears(10)};
}
void
......
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment