Exemple #1
0
int
Model::CompareFolderNamesFirst(const Model *compareModel) const
{
	if (compareModel == NULL)
		return -1;

	const Model *resolvedCompareModel = compareModel->ResolveIfLink();
	const Model *resolvedMe = ResolveIfLink();

	if (resolvedMe->IsVolume()) {
		if (!resolvedCompareModel->IsVolume())
			return -1;
	} else if (resolvedCompareModel->IsVolume())
		return 1;

	if (resolvedMe->IsDirectory()) {
		if (!resolvedCompareModel->IsDirectory())
			return -1;
	} else if (resolvedCompareModel->IsDirectory())
		return 1;

	return strcasecmp(Name(), compareModel->Name());
}
Exemple #2
0
int
Model::CompareFolderNamesFirst(const Model* compareModel) const
{
	if (compareModel == NULL)
		return -1;

	const Model* resolvedCompareModel = compareModel->ResolveIfLink();
	const Model* resolvedMe = ResolveIfLink();

	bool meIsDirOrVolume = resolvedMe->IsDirectory() || resolvedMe->IsVolume()
		|| resolvedMe->IsVirtualDirectory();
	bool otherIsDirOrVolume = resolvedCompareModel->IsDirectory()
		|| resolvedCompareModel->IsVolume()
		|| resolvedCompareModel->IsVirtualDirectory();

	if (meIsDirOrVolume) {
		if (!otherIsDirOrVolume)
			return -1;
	} else if (otherIsDirOrVolume)
		return 1;

	return NaturalCompare(Name(), compareModel->Name());
}