HaikuDepot: Make string and icon+string columns sortable.
This commit is contained in:
@@ -293,17 +293,25 @@ PackageColumn::DrawField(BField* field, BRect rect, BView* parent)
|
|||||||
int
|
int
|
||||||
PackageColumn::CompareFields(BField* field1, BField* field2)
|
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* ratingField1 = dynamic_cast<RatingField*>(field1);
|
||||||
RatingField* ratingField2 = dynamic_cast<RatingField*>(field2);
|
RatingField* ratingField2 = dynamic_cast<RatingField*>(field2);
|
||||||
if (ratingField1 == NULL || ratingField2 == NULL)
|
if (ratingField1 != NULL && ratingField2 != NULL) {
|
||||||
return Inherited::CompareFields(field1, field2);
|
if (ratingField1->Rating() > ratingField2->Rating())
|
||||||
|
return -1;
|
||||||
|
else if (ratingField1->Rating() < ratingField2->Rating())
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (ratingField1->Rating() > ratingField2->Rating())
|
return Inherited::CompareFields(field1, field2);
|
||||||
return -1;
|
|
||||||
else if (ratingField1->Rating() < ratingField2->Rating())
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user