HaikuDepot: Make string and icon+string columns sortable.

This commit is contained in:
Stephan Aßmus
2013-08-08 09:21:07 +02:00
parent b928a72b88
commit 0c82a69de4
+16 -8
View File
@@ -293,17 +293,25 @@ PackageColumn::DrawField(BField* field, BRect rect, BView* parent)
int
PackageColumn::CompareFields(BField* field1, BField* field2)
{
BStringField* stringField1 = dynamic_cast<BStringField*>(field1);
BStringField* stringField2 = dynamic_cast<BStringField*>(field2);
if (stringField1 != NULL && stringField2 != NULL) {
// TODO: Locale aware string compare... not too important if
// package names are not translated.
return strcmp(stringField1->String(), stringField2->String());
}
RatingField* ratingField1 = dynamic_cast<RatingField*>(field1);
RatingField* ratingField2 = dynamic_cast<RatingField*>(field2);
if (ratingField1 == NULL || ratingField2 == NULL)
return Inherited::CompareFields(field1, field2);
if (ratingField1 != NULL && ratingField2 != NULL) {
if (ratingField1->Rating() > ratingField2->Rating())
return -1;
else if (ratingField1->Rating() < ratingField2->Rating())
return 1;
return 0;
}
if (ratingField1->Rating() > ratingField2->Rating())
return -1;
else if (ratingField1->Rating() < ratingField2->Rating())
return 1;
return 0;
return Inherited::CompareFields(field1, field2);
}