From 75f5e2bef2ab942f89d5d025ecd45ee4d18e3d57 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 10 Mar 2017 15:27:40 +0100 Subject: Deprecate QString::null It's a Qt 3 compatibility vehicle, and as such inherits the now-alien property to distinguish empty and null strings. Particularly worrisome is the following asymmetry: QString("") == QString::null // false QString("") == QString(QString::null) // true Instead of fixing this behavior, recognize that people might use it as a weird way to call isNull(), albeit one that once was idiomatic, and simply deprecate everything that deals with QString::null. [ChangeLog][QtCore][QString] QString::null is now deprecated. When used to construct a QString, use QString() instead. When used to compare to a QString, replace with QString::isNull(). Change-Id: I9f7e84a92522c75666da15f49324c500ae93af42 Reviewed-by: Thiago Macieira Reviewed-by: Anton Kudryavtsev --- src/corelib/tools/qstring.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/corelib/tools/qstring.cpp') diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index d76eb11073..50893536af 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -779,7 +779,9 @@ inline char qToLower(char ch) } +#if QT_DEPRECATED_SINCE(5, 9) const QString::Null QString::null = { }; +#endif /*! \macro QT_RESTRICTED_CAST_FROM_ASCII -- cgit v1.2.3 From 949bce97d04f350ee2918b7d0280d2b89e11d4bc Mon Sep 17 00:00:00 2001 From: Anton Kudryavtsev Date: Fri, 17 Mar 2017 21:05:54 +0300 Subject: QString: de-deplicate code of leftRef, rightRef, midRef Re-use methods of QStringRef. Change-Id: I5ff719c08c54246e9cafd4f9aa0823ff6df8433b Reviewed-by: Marc Mutz Reviewed-by: Thiago Macieira --- src/corelib/tools/qstring.cpp | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) (limited to 'src/corelib/tools/qstring.cpp') diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index 50893536af..48f3d64c4a 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -9621,9 +9621,7 @@ QStringRef QStringRef::left(int n) const */ QStringRef QString::leftRef(int n) const { - if (uint(n) >= uint(d->size)) - n = d->size; - return QStringRef(this, 0, n); + return QStringRef(this).left(n); } /*! @@ -9660,9 +9658,7 @@ QStringRef QStringRef::right(int n) const */ QStringRef QString::rightRef(int n) const { - if (uint(n) >= uint(d->size)) - n = d->size; - return QStringRef(this, d->size - n, n); + return QStringRef(this).right(n); } /*! @@ -9721,19 +9717,7 @@ QStringRef QStringRef::mid(int pos, int n) const */ QStringRef QString::midRef(int position, int n) const { - using namespace QtPrivate; - switch (QContainerImplHelper::mid(d->size, &position, &n)) { - case QContainerImplHelper::Null: - return QStringRef(); - case QContainerImplHelper::Empty: - return QStringRef(this, 0, 0); - case QContainerImplHelper::Full: - return QStringRef(this, 0, d->size); - case QContainerImplHelper::Subset: - return QStringRef(this, position, n); - } - Q_UNREACHABLE(); - return QStringRef(); + return QStringRef(this).mid(position, n); } /*! -- cgit v1.2.3