diff --git a/src/kitemviews/private/kbaloorolesprovider.cpp b/src/kitemviews/private/kbaloorolesprovider.cpp index 16e3935ca9..d6c15afcdb 100644 --- a/src/kitemviews/private/kbaloorolesprovider.cpp +++ b/src/kitemviews/private/kbaloorolesprovider.cpp @@ -29,6 +29,7 @@ #include #include +#include struct KBalooRolesProviderSingleton { @@ -159,7 +160,11 @@ KBalooRolesProvider::KBalooRolesProvider() : QString KBalooRolesProvider::tagsFromValues(const QStringList& values) const { - return values.join(QStringLiteral(", ")); + QStringList alphabeticalOrderTags = values; + QCollator coll; + coll.setNumericMode(true); + std::sort(alphabeticalOrderTags.begin(), alphabeticalOrderTags.end(), [&](const QString& s1, const QString& s2){ return coll.compare(s1, s2) < 0; }); + return alphabeticalOrderTags.join(QStringLiteral(", ")); } QString KBalooRolesProvider::orientationFromValue(int value) const diff --git a/src/kitemviews/private/kbaloorolesprovider.h b/src/kitemviews/private/kbaloorolesprovider.h index a9bd2e8ef3..65b59793cd 100644 --- a/src/kitemviews/private/kbaloorolesprovider.h +++ b/src/kitemviews/private/kbaloorolesprovider.h @@ -62,6 +62,7 @@ protected: private: /** * @return User visible string for the given tag-values. + * The tag-values are sorted in alphabetical order. */ QString tagsFromValues(const QStringList& values) const;