diff --git a/src/base/utils/string.cpp b/src/base/utils/string.cpp index d01799fe0..ccd35940c 100644 --- a/src/base/utils/string.cpp +++ b/src/base/utils/string.cpp @@ -27,24 +27,31 @@ * exception statement from your version. */ +#include "string.h" + +#include + #include -#include +#include #include -#include -#include "string.h" +#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) +#include +#endif -QString Utils::String::fromStdString(const std::string &str) +class NaturalCompare { - return QString::fromUtf8(str.c_str()); -} +public: + NaturalCompare(); + bool operator()(const QString &left, const QString &right); + bool lessThan(const QString &left, const QString &right); -std::string Utils::String::toStdString(const QString &str) -{ - QByteArray utf8 = str.toUtf8(); - return std::string(utf8.constData(), utf8.length()); -} +private: +#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) + QCollator m_collator; +#endif +}; -Utils::String::NaturalCompare::NaturalCompare() +NaturalCompare::NaturalCompare() { #if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) #if defined(Q_OS_WIN) @@ -57,7 +64,7 @@ Utils::String::NaturalCompare::NaturalCompare() #endif } -bool Utils::String::NaturalCompare::operator()(const QString &left, const QString &right) +bool NaturalCompare::operator()(const QString &left, const QString &right) { // case-insensitive comparison #if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) @@ -72,7 +79,7 @@ bool Utils::String::NaturalCompare::operator()(const QString &left, const QStrin #endif } -bool Utils::String::NaturalCompare::lessThan(const QString &left, const QString &right) +bool NaturalCompare::lessThan(const QString &left, const QString &right) { // Return value `false` indicates `right` should go before `left`, otherwise, after // case-insensitive comparison @@ -123,6 +130,17 @@ bool Utils::String::NaturalCompare::lessThan(const QString &left, const QString return false; } +QString Utils::String::fromStdString(const std::string &str) +{ + return QString::fromUtf8(str.c_str()); +} + +std::string Utils::String::toStdString(const QString &str) +{ + QByteArray utf8 = str.toUtf8(); + return std::string(utf8.constData(), utf8.length()); +} + bool Utils::String::naturalCompare(const QString &left, const QString &right) { // provide a single `NaturalCompare` instance for easy use diff --git a/src/base/utils/string.h b/src/base/utils/string.h index e379beadd..9a3c66843 100644 --- a/src/base/utils/string.h +++ b/src/base/utils/string.h @@ -31,13 +31,9 @@ #define UTILS_STRING_H #include -#include -#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) -#include -#endif -class QString; class QByteArray; +class QString; namespace Utils { @@ -51,18 +47,6 @@ namespace Utils // Taken from https://crackstation.net/hashing-security.htm bool slowEquals(const QByteArray &a, const QByteArray &b); - class NaturalCompare - { - public: - NaturalCompare(); - bool operator()(const QString &left, const QString &right); - bool lessThan(const QString &left, const QString &right); -#if (QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)) - private: - QCollator m_collator; -#endif - }; - bool naturalCompare(const QString &left, const QString &right); } }