bool ContactListSpecialGroup::compare(const ContactListItem* other) const { const ContactListGroup* group = dynamic_cast<const ContactListGroup*>(other); if (group) { QMap<ContactListGroup::SpecialType, int> rank; rank[SpecialType_General] = 0; rank[SpecialType_None] = 1; rank[SpecialType_MUCPrivateChats] = 2; rank[SpecialType_Transports] = 3; rank[SpecialType_NotInList] = 4; Q_ASSERT(rank.contains(specialGroupType())); Q_ASSERT(rank.contains(group->specialGroupType())); return rank[specialGroupType()] < rank[group->specialGroupType()]; } return ContactListGroup::compare(other); }
bool ContactListSpecialGroup::compare(const ContactListItem* other) const { const ContactListGroup* group = dynamic_cast<const ContactListGroup*>(other); if (group) { if (!group->isSpecial()) return false; const ContactListSpecialGroup* specialGroup = dynamic_cast<const ContactListSpecialGroup*>(other); Q_ASSERT(specialGroup); QMap<ContactListGroup::SpecialType, int> rank; rank[SpecialType_MUCPrivateChats] = 0; rank[SpecialType_Transports] = 1; rank[SpecialType_NotInList] = 2; Q_ASSERT(rank.contains(specialGroupType())); Q_ASSERT(rank.contains(specialGroup->specialGroupType())); return rank[specialGroupType()] > rank[specialGroup->specialGroupType()]; } return ContactListGroup::compare(other); }