diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2018-12-07 11:52:59 +0100 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2019-03-08 17:07:38 +0000 |
commit | a769ab62cbcf957d049c8da74f898527dd27b328 (patch) | |
tree | a1f3607ae1472ad39fb1e8662f3781c4e669deeb /src/corelib/tools/qcollator.cpp | |
parent | e89fbd8c3aa50a24e5fc02ab710ccca67fce98e2 (diff) |
Extend QCollator to support QStringView
This enables some simplification of the existing implementations.
Refined wording of the documentation in the process.
[ChangeLog][QtCore][QCollator] Added support for QStringView.
Change-Id: Idffaae8d109173d47c7be076828f4b58dc334957
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/tools/qcollator.cpp')
-rw-r--r-- | src/corelib/tools/qcollator.cpp | 39 |
1 files changed, 32 insertions, 7 deletions
diff --git a/src/corelib/tools/qcollator.cpp b/src/corelib/tools/qcollator.cpp index 76dcf35833..f2c9c61c99 100644 --- a/src/corelib/tools/qcollator.cpp +++ b/src/corelib/tools/qcollator.cpp @@ -278,35 +278,60 @@ bool QCollator::ignorePunctuation() const } /*! - \fn int QCollator::compare(const QString &s1, const QString &s2) const + \since 5.13 + \fn bool QCollator::operator()(QStringView s1, QStringView s2) const + \internal +*/ + +/*! + \since 5.13 + \fn int QCollator::compare(QStringView s1, QStringView s2) const Compares \a s1 with \a s2. Returns an integer less than, equal to, or greater than zero - depending on whether \a s1 is smaller, equal or larger than \a s2. + depending on whether \a s1 sorts before, with or after \a s2. */ - +#if QT_STRINGVIEW_LEVEL < 2 /*! \fn bool QCollator::operator()(const QString &s1, const QString &s2) const \internal */ /*! - \fn int QCollator::compare(const QStringRef &s1, const QStringRef &s2) const \overload Compares \a s1 with \a s2. Returns an integer less than, equal to, or greater than zero - depending on whether \a s1 is smaller, equal or larger than \a s2. + depending on whether \a s1 sorts before, with or after \a s2. */ +int QCollator::compare(const QString &s1, const QString &s2) const +{ + return compare(QStringView(s1), QStringView(s2)); +} + +/*! + \overload + + Compares \a s1 with \a s2. Returns an integer less than, equal to, or greater than zero + depending on whether \a s1 sorts before, with or after \a s2. + */ +int QCollator::compare(const QStringRef &s1, const QStringRef &s2) const +{ + return compare(QStringView(s1), QStringView(s2)); +} /*! - \fn int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) const \overload Compares \a s1 with \a s2. \a len1 and \a len2 specify the length of the QChar arrays pointer to by \a s1 and \a s2. Returns an integer less than, equal to, or greater than zero - depending on whether \a s1 is smaller, equal or larger than \a s2. + depending on whether \a s1 sorts before, with or after \a s2. */ +int QCollator::compare(const QChar *s1, int len1, const QChar *s2, int len2) const +{ + return compare(QStringView(s1, len1), QStringView(s2, len2)); +} +#endif // QT_STRINGVIEW_LEVEL < 2 /*! \fn QCollatorSortKey QCollator::sortKey(const QString &string) const |