hide empty groups in FriendList

This commit is contained in:
csoler 2019-09-15 20:53:12 +02:00
parent ed4440dcaa
commit 3108a53a7f
No known key found for this signature in database
GPG Key ID: 7BCA522266C0804C

View File

@ -128,10 +128,25 @@ public:
bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override
{
if(!m_showOfflineNodes && !sourceModel()->index(source_row,0,source_parent).data(RsFriendListModel::OnlineRole).toBool())
// do not show empty groups
QModelIndex index = sourceModel()->index(source_row,0,source_parent);
if(index.data(RsFriendListModel::TypeRole) == RsFriendListModel::ENTRY_TYPE_GROUP)
{
RsGroupInfo group_info ;
static_cast<RsFriendListModel*>(sourceModel())->getGroupData(index,group_info);
if(group_info.peerIds.empty())
return false;
}
// Filter offline friends
if(!m_showOfflineNodes && !index.data(RsFriendListModel::OnlineRole).toBool())
return false;
return sourceModel()->index(source_row,0,source_parent).data(RsFriendListModel::FilterRole).toString() == RsFriendListModel::FilterString ;
return index.data(RsFriendListModel::FilterRole).toString() == RsFriendListModel::FilterString ;
}
void sort( int column, Qt::SortOrder order = Qt::AscendingOrder ) override