Sort rooms by last event, not unread count.
This commit is contained in:
@@ -163,6 +163,7 @@ QVariant RoomListModel::data(const QModelIndex& index, int role) const {
|
||||
if (role == UnreadCountRole) return room->unreadCount();
|
||||
if (role == HighlightCountRole) return room->highlightCount();
|
||||
if (role == LastEventRole) return room->lastEvent();
|
||||
if (role == LastActiveTimeRole) return room->lastActiveTime();
|
||||
if (role == CurrentRoomRole) return QVariant::fromValue(room);
|
||||
return QVariant();
|
||||
}
|
||||
@@ -196,6 +197,7 @@ QHash<int, QByteArray> RoomListModel::roleNames() const {
|
||||
roles[UnreadCountRole] = "unreadCount";
|
||||
roles[HighlightCountRole] = "highlightCount";
|
||||
roles[LastEventRole] = "lastEvent";
|
||||
roles[LastActiveTimeRole] = "lastActiveTime";
|
||||
roles[CurrentRoomRole] = "currentRoom";
|
||||
return roles;
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
|
||||
#include "connection.h"
|
||||
#include "events/roomevent.h"
|
||||
#include "spectralroom.h"
|
||||
#include "room.h"
|
||||
#include "spectralroom.h"
|
||||
|
||||
#include <QtCore/QAbstractListModel>
|
||||
|
||||
@@ -37,6 +37,7 @@ class RoomListModel : public QAbstractListModel {
|
||||
UnreadCountRole,
|
||||
HighlightCountRole,
|
||||
LastEventRole,
|
||||
LastActiveTimeRole,
|
||||
CurrentRoomRole,
|
||||
};
|
||||
|
||||
|
||||
@@ -140,3 +140,8 @@ void SpectralRoom::sendReply(QString userId, QString eventId,
|
||||
"</blockquote></mx-reply>" + sendContent}};
|
||||
postJson("m.room.message", json);
|
||||
}
|
||||
|
||||
QDateTime SpectralRoom::lastActiveTime() {
|
||||
if (timelineSize() == 0) return QDateTime();
|
||||
return messageEvents().rbegin()->get()->timestamp();
|
||||
}
|
||||
|
||||
@@ -35,6 +35,8 @@ class SpectralRoom : public Room {
|
||||
QString lastEvent();
|
||||
bool isEventHighlighted(const QMatrixClient::RoomEvent* e) const;
|
||||
|
||||
QDateTime lastActiveTime();
|
||||
|
||||
private:
|
||||
QString m_cachedInput;
|
||||
QSet<const QMatrixClient::RoomEvent*> highlights;
|
||||
@@ -59,7 +61,8 @@ class SpectralRoom : public Room {
|
||||
void acceptInvitation();
|
||||
void forget();
|
||||
void sendTypingNotification(bool isTyping);
|
||||
void sendReply(QString userId, QString eventId, QString replyContent, QString sendContent);
|
||||
void sendReply(QString userId, QString eventId, QString replyContent,
|
||||
QString sendContent);
|
||||
};
|
||||
|
||||
#endif // SpectralRoom_H
|
||||
|
||||
Reference in New Issue
Block a user