mirror of https://github.com/qt/qtbase.git
QStringRef: add chop()
chop() was missing in the API. Change-Id: I15af86c8f218cf159b8ce19bbeb2ffa6201f98cf Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
parent
a13398d0f0
commit
e91c412391
|
@ -5009,7 +5009,7 @@ void QString::truncate(int pos)
|
|||
If you want to remove characters from the \e beginning of the
|
||||
string, use remove() instead.
|
||||
|
||||
\sa truncate(), resize(), remove()
|
||||
\sa truncate(), resize(), remove(), QStringRef::chop()
|
||||
*/
|
||||
void QString::chop(int n)
|
||||
{
|
||||
|
@ -9659,6 +9659,18 @@ QStringRef QString::midRef(int position, int n) const
|
|||
\sa QString::truncate()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\fn void QStringRef::chop(int n)
|
||||
\since 5.8
|
||||
|
||||
Removes \a n characters from the end of the string.
|
||||
|
||||
If \a n is greater than or equal to size(), the result is an
|
||||
empty string; if \a n is negative, it is equivalent to passing zero.
|
||||
|
||||
\sa QString::chop(), truncate()
|
||||
*/
|
||||
|
||||
/*!
|
||||
\since 4.8
|
||||
|
||||
|
|
|
@ -1438,6 +1438,12 @@ public:
|
|||
QStringRef mid(int pos, int n = -1) const Q_REQUIRED_RESULT;
|
||||
|
||||
void truncate(int pos) Q_DECL_NOTHROW { m_size = qBound(0, pos, m_size); }
|
||||
void chop(int n) Q_DECL_NOTHROW {
|
||||
if (n >= m_size)
|
||||
m_size = 0;
|
||||
else if (n > 0)
|
||||
m_size -= n;
|
||||
}
|
||||
|
||||
bool startsWith(const QString &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
bool startsWith(QLatin1String s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
|
|
|
@ -81,6 +81,7 @@ private slots:
|
|||
void integer_conversion();
|
||||
void trimmed();
|
||||
void truncate();
|
||||
void chop();
|
||||
void left();
|
||||
void right();
|
||||
void mid();
|
||||
|
@ -1904,6 +1905,48 @@ void tst_QStringRef::truncate()
|
|||
}
|
||||
}
|
||||
|
||||
void tst_QStringRef::chop()
|
||||
{
|
||||
const QString originalString = QStringLiteral("OriginalString~");
|
||||
const QStringRef cref(&originalString);
|
||||
{
|
||||
const int n = 1;
|
||||
QStringRef ref = cref;
|
||||
QString str = originalString;
|
||||
ref.chop(n);
|
||||
str.chop(n);
|
||||
QCOMPARE(ref.toString(), QLatin1String("OriginalString"));
|
||||
QCOMPARE(ref.toString(), str);
|
||||
}
|
||||
{
|
||||
const int n = -1;
|
||||
QStringRef ref = cref;
|
||||
QString str = originalString;
|
||||
ref.chop(n);
|
||||
str.chop(n);
|
||||
QCOMPARE(ref.toString(), originalString);
|
||||
QCOMPARE(ref.toString(), str);
|
||||
}
|
||||
{
|
||||
const int n = 0;
|
||||
QStringRef ref = cref;
|
||||
QString str = originalString;
|
||||
ref.chop(n);
|
||||
str.chop(n);
|
||||
QCOMPARE(ref.toString(), originalString);
|
||||
QCOMPARE(ref.toString(), str);
|
||||
}
|
||||
{
|
||||
const int n = 1000;
|
||||
QStringRef ref = cref;
|
||||
QString str = originalString;
|
||||
ref.chop(n);
|
||||
str.chop(n);
|
||||
QCOMPARE(ref.toString(), str);
|
||||
QVERIFY(ref.isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
void tst_QStringRef::left()
|
||||
{
|
||||
QString originalString = "OrginalString~";
|
||||
|
|
Loading…
Reference in New Issue