aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2021-10-25 21:43:00 +0200
committerPetr Mrázek <peterix@gmail.com>2021-10-25 21:43:00 +0200
commit85ecbad46755d42e3e0682dfe24e587ee3157565 (patch)
treeba41075aa69e989b981c61d7fa2510ca5b4f7210 /launcher
parent040af580701afa286b93a87e8bde42373add2bd5 (diff)
downloadPrismLauncher-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.cpp6
-rw-r--r--launcher/InstanceProxyModel.h3
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;
};