diff --git a/src/attica/atticaprovider.cpp b/src/attica/atticaprovider.cpp --- a/src/attica/atticaprovider.cpp +++ b/src/attica/atticaprovider.cpp @@ -19,6 +19,7 @@ #include "question.h" +#include #include #include @@ -134,6 +135,12 @@ categoryMetadataList << categoryMetadata; } } + std::sort(categoryMetadataList.begin(), categoryMetadataList.end(), [](const AtticaProvider::CategoryMetadata &i, const AtticaProvider::CategoryMetadata &j) -> bool { + const QString a(i.displayName.isEmpty() ? i.name : i.displayName); + const QString b(j.displayName.isEmpty() ? j.name : j.displayName); + + return (QCollator().compare(a, b) < 0); + }); bool correct = false; for(auto it = mCategoryMap.cbegin(), itEnd = mCategoryMap.cend(); it!=itEnd; ++it) {