Archived
1
Fork 0
This repository has been archived on 2025-04-12. You can view files and clone it, but cannot push or open issues or pull requests.
trinity/src/roomlistsortmodel.cpp

36 lines
1.3 KiB
C++
Raw Normal View History

2021-07-21 16:08:15 -04:00
#include "roomlistsortmodel.h"
#include "room.h"
#include "roomlistmodel.h"
#include "membermodel.h"
2021-07-21 16:08:15 -04:00
bool RoomListSortModel::lessThan(const QModelIndex& left, const QModelIndex& right) const {
const QString sectionLeft = sourceModel()->data(left, RoomListModel::SectionRole).toString();
const QString sectionRight = sourceModel()->data(right, RoomListModel::SectionRole).toString();
if(sectionRight == "Direct Chats")
return false;
if(sectionLeft == "Direct Chats")
return true;
return false;
}
bool MemberListSortModel::lessThan(const QModelIndex& left, const QModelIndex& right) const {
const QString sectionLeft = sourceModel()->data(left, MemberModel::SectionRole).toString();
const QString sectionRight = sourceModel()->data(right, MemberModel::SectionRole).toString();
if(sectionLeft == "Admin" && sectionRight == "Moderator")
return true;
else if(sectionLeft == "Moderator" && sectionRight == "User")
return true;
else if(sectionLeft == "Admin" && sectionRight == "User")
return true;
if(sectionLeft == sectionRight)
return sourceModel()->data(left, MemberModel::DisplayNameRole).toString() < sourceModel()->data(right, MemberModel::DisplayNameRole).toString();
return false;
}