Simplify natural sort classes interface

Now the comparison function/class should be constructed before usage.
This change also make it easier to plug in into various containers which
will require a compare function type (such as std::set).
This commit is contained in:
Chocobo1 2021-04-05 13:02:28 +08:00
parent 5045fa6dcd
commit a64bb1a990
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
24 changed files with 235 additions and 177 deletions

View file

@ -41,15 +41,6 @@ class QStringRef;
namespace Utils::String
{
QString fromDouble(double n, int precision);
int naturalCompare(const QString &left, const QString &right, const Qt::CaseSensitivity caseSensitivity);
template <Qt::CaseSensitivity caseSensitivity>
bool naturalLessThan(const QString &left, const QString &right)
{
return (naturalCompare(left, right, caseSensitivity) < 0);
}
QString wildcardToRegexPattern(const QString &pattern);
template <typename T>
@ -72,6 +63,8 @@ namespace Utils::String
QString join(const QVector<QStringRef> &strings, const QString &separator);
QString fromDouble(double n, int precision);
template <typename T, typename std::enable_if_t<std::is_enum_v<T>, int> = 0>
QString fromEnum(const T &value)
{