diff options
author | Petr Mrázek <peterix@gmail.com> | 2021-10-25 21:43:00 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2021-10-25 21:43:00 +0200 |
commit | 85ecbad46755d42e3e0682dfe24e587ee3157565 (patch) | |
tree | ba41075aa69e989b981c61d7fa2510ca5b4f7210 /launcher | |
parent | 040af580701afa286b93a87e8bde42373add2bd5 (diff) | |
download | PrismLauncher-85ecbad46755d42e3e0682dfe24e587ee3157565.tar.gz PrismLauncher-85ecbad46755d42e3e0682dfe24e587ee3157565.tar.bz2 PrismLauncher-85ecbad46755d42e3e0682dfe24e587ee3157565.zip |
GH-3490 sort instances by name is now aware of numbers
Diffstat (limited to 'launcher')
-rw-r--r-- | launcher/InstanceProxyModel.cpp | 6 | ||||
-rw-r--r-- | launcher/InstanceProxyModel.h | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/launcher/InstanceProxyModel.cpp b/launcher/InstanceProxyModel.cpp index 0311c239..9ee38a65 100644 --- a/launcher/InstanceProxyModel.cpp +++ b/launcher/InstanceProxyModel.cpp @@ -5,6 +5,10 @@ InstanceProxyModel::InstanceProxyModel(QObject *parent) : GroupedProxyModel(parent) { + m_naturalSort.setNumericMode(true); + m_naturalSort.setCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive); + // FIXME: use loaded translation as source of locale instead, hook this up to translation changes + m_naturalSort.setLocale(QLocale::system()); } QVariant InstanceProxyModel::data(const QModelIndex & index, int role) const @@ -29,6 +33,6 @@ bool InstanceProxyModel::subSortLessThan(const QModelIndex &left, } else { - return QString::localeAwareCompare(pdataLeft->name(), pdataRight->name()) < 0; + return m_naturalSort.compare(pdataLeft->name(), pdataRight->name()) < 0; } } diff --git a/launcher/InstanceProxyModel.h b/launcher/InstanceProxyModel.h index fab6f834..baf2794b 100644 --- a/launcher/InstanceProxyModel.h +++ b/launcher/InstanceProxyModel.h @@ -1,6 +1,7 @@ #pragma once #include "groupview/GroupedProxyModel.h" +#include <QCollator> /** * A proxy model that is responsible for sorting instances into groups @@ -13,4 +14,6 @@ public: protected: virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const override; +private: + QCollator m_naturalSort; }; |