mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 11:00:48 +03:00
Make invites always stick to the top
This also removes an ugly hack, that was needed before.
This commit is contained in:
parent
a73ed771fa
commit
ba25771c08
2 changed files with 8 additions and 13 deletions
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue