- MsgId leftUnreadMsgId = sourceModel()->data(source_left, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
- MsgId rightUnreadMsgId = sourceModel()->data(source_right, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
- return leftUnreadMsgId > rightUnreadMsgId; // newer messages are treated to be "less"
+bool BufferHotListFilter::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const
+{
+ int leftActivity = sourceModel()->data(source_left, NetworkModel::BufferActivityRole).toInt();
+ int rightActivity = sourceModel()->data(source_right, NetworkModel::BufferActivityRole).toInt();
+ if (leftActivity != rightActivity)
+ return leftActivity < rightActivity;
+
+ MsgId leftUnreadMsgId = sourceModel()->data(source_left, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
+ MsgId rightUnreadMsgId = sourceModel()->data(source_right, NetworkModel::BufferFirstUnreadMsgIdRole).value<MsgId>();
+ return leftUnreadMsgId > rightUnreadMsgId; // newer messages are treated to be "less"