diff --git a/src/apps/haiku-depot/PackageListView.cpp b/src/apps/haiku-depot/PackageListView.cpp index 669da327de..f1a2050fab 100644 --- a/src/apps/haiku-depot/PackageListView.cpp +++ b/src/apps/haiku-depot/PackageListView.cpp @@ -293,17 +293,25 @@ PackageColumn::DrawField(BField* field, BRect rect, BView* parent) int PackageColumn::CompareFields(BField* field1, BField* field2) { + BStringField* stringField1 = dynamic_cast(field1); + BStringField* stringField2 = dynamic_cast(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(field1); RatingField* ratingField2 = dynamic_cast(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); }