mirror of
https://github.com/YACReader/yacreader
synced 2025-11-20 01:22:44 -05:00
Do not create a new QCollator every time we compare a string
This commit is contained in:
@ -2,12 +2,25 @@
|
||||
|
||||
#include <QCollator>
|
||||
|
||||
int naturalCompare(const QString &s1, const QString &s2, Qt::CaseSensitivity caseSensitivity)
|
||||
{
|
||||
static QCollator collatorCI = [] {
|
||||
QCollator c;
|
||||
c.setCaseSensitivity(caseSensitivity);
|
||||
c.setNumericMode(true);
|
||||
c.setIgnorePunctuation(false);
|
||||
c.setCaseSensitivity(Qt::CaseInsensitive);
|
||||
return c;
|
||||
}();
|
||||
|
||||
static QCollator collatorCS = [] {
|
||||
QCollator c;
|
||||
c.setNumericMode(true);
|
||||
c.setIgnorePunctuation(false);
|
||||
c.setCaseSensitivity(Qt::CaseSensitive);
|
||||
return c;
|
||||
}();
|
||||
|
||||
int naturalCompare(const QString &s1, const QString &s2, Qt::CaseSensitivity caseSensitivity)
|
||||
{
|
||||
QCollator &c = (caseSensitivity == Qt::CaseSensitive) ? collatorCS : collatorCI;
|
||||
return c.compare(s1, s2);
|
||||
}
|
||||
bool naturalSortLessThanCS(const QString &left, const QString &right)
|
||||
|
||||
Reference in New Issue
Block a user