diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2020-11-09 15:49:28 +0100 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2020-11-11 01:00:39 +0100 |
commit | bbadd1b5c1c7000bf4004ba34b3194864e688982 (patch) | |
tree | 20f2721193818611de99dbd31c453a69cd039b3b | |
parent | 059ca16aa0d3e8b89702df3e95bb32d7071bd957 (diff) |
Add QByteArray::insert(qsizetype, const QByteArray &)
For consistency with append and prepend we should have an overload for
insert() as well. This also enables insert() to be used with
QStringBuilder, i.e. qba.insert(2, qba2 + "abc").
Because simply adding a const QByteArray & overload causes ambiguity
with QByteArrayView we also add a const char * overload.
Add some extra test-cases. Two for QByteArrayView since it's not
directly tested anymore. One for inserting self directly.
Change-Id: Ieb43a6a7d1afbb498bc89c690908d7f0faa94687
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/corelib/text/qbytearray.cpp | 18 | ||||
-rw-r--r-- | src/corelib/text/qbytearray.h | 4 | ||||
-rw-r--r-- | tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp | 12 |
3 files changed, 34 insertions, 0 deletions
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index f4ade684a0..14789c8a2c 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -1955,6 +1955,24 @@ QByteArray &QByteArray::insert(qsizetype i, QByteArrayView data) } /*! + \fn QByteArray &QByteArray::insert(qsizetype i, const QByteArray &data) + Inserts \a data at index position \a i and returns a + reference to this byte array. + + \sa append(), prepend(), replace(), remove() +*/ + +/*! + \fn QByteArray &QByteArray::insert(qsizetype i, const char *s) + Inserts \a s at index position \a i and returns a + reference to this byte array. + + The function is equivalent to \c{insert(i, QByteArrayView(s))} + + \sa append(), prepend(), replace(), remove() +*/ + +/*! \fn QByteArray &QByteArray::insert(qsizetype i, const char *data, qsizetype len) \overload \since 4.6 diff --git a/src/corelib/text/qbytearray.h b/src/corelib/text/qbytearray.h index 95b607e9dc..9f646aaa62 100644 --- a/src/corelib/text/qbytearray.h +++ b/src/corelib/text/qbytearray.h @@ -298,6 +298,10 @@ public: { return insert(size(), a); } QByteArray &insert(qsizetype i, QByteArrayView data); + inline QByteArray &insert(qsizetype i, const char *s) + { return insert(i, QByteArrayView(s)); } + inline QByteArray &insert(qsizetype i, const QByteArray &data) + { return insert(i, QByteArrayView(data)); } QByteArray &insert(qsizetype i, qsizetype count, char c); QByteArray &insert(qsizetype i, char c) { return insert(i, QByteArrayView(&c, 1)); } diff --git a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp index cf70a7bbaa..7f9bff844f 100644 --- a/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/text/qbytearray/tst_qbytearray.cpp @@ -946,6 +946,18 @@ void tst_QByteArray::insert() ba = "ab"; QCOMPARE(ba.insert(1, "\0X\0", 3), QByteArray::fromRawData("a\0X\0b", 5)); QCOMPARE(ba.size(), 5); + + ba = "Hello World"; + QCOMPARE(ba.insert(5, QByteArrayView(",")), QByteArray("Hello, World")); + QCOMPARE(ba.size(), 12); + + ba = "one"; + QCOMPARE(ba.insert(1, ba), QByteArray("oonene")); + QCOMPARE(ba.size(), 6); + + ba = "one"; + QCOMPARE(ba.insert(1, QByteArrayView(ba)), QByteArray("oonene")); + QCOMPARE(ba.size(), 6); } void tst_QByteArray::insertExtended_data() |