Exemplo n.º 1
0
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);
}