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>
|
#include <QCollator>
|
||||||
|
|
||||||
int naturalCompare(const QString &s1, const QString &s2, Qt::CaseSensitivity caseSensitivity)
|
static QCollator collatorCI = [] {
|
||||||
{
|
|
||||||
QCollator c;
|
QCollator c;
|
||||||
c.setCaseSensitivity(caseSensitivity);
|
|
||||||
c.setNumericMode(true);
|
c.setNumericMode(true);
|
||||||
c.setIgnorePunctuation(false);
|
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);
|
return c.compare(s1, s2);
|
||||||
}
|
}
|
||||||
bool naturalSortLessThanCS(const QString &left, const QString &right)
|
bool naturalSortLessThanCS(const QString &left, const QString &right)
|
||||||
|
|||||||
Reference in New Issue
Block a user