summaryrefslogtreecommitdiffstats
path: root/src/corelib/text
Commit message (Collapse)AuthorAgeFilesLines
* Remove deprecated methodsLars Knoll2020-06-122-210/+1
| | | | | | | | Those aren't part of Qt 6 anymore. Change-Id: I9ea7de07d89156e8d0fb6ae9deeb24e0de5fa429 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QByteDataBuffer: Remove the ctor and dtorMårten Nordheim2020-06-121-11/+2
| | | | | | | | | | Remove the ctor as it was not doing anything special and the implicitly generated one will do what we need anyway. And calling clear before destructing wasn't useful, so just remove the dtor in general. Change-Id: I9ed722d4db3ea220d32082d4cb38c10a9af34d5e Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Rename new slice() method sliced()Marc Mutz2020-06-116-22/+22
| | | | | | | | | | | | | | The recently-added slice() method has the problem that it's a noun as well as a verb in the imperative. Like std::vector::empty, which is both an adjective and a verb in the imperative, this may cause confusion as to what the function does. Using the passive voice form of slice(), sliced(), removes the confusion. While it can be read as an adjective, too, that doesn't change the meaning compared to the verb form. Change-Id: If0aa01acb6cf5dd5eafa8226e3ea7f7a0c9da4f1 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Remove more QStringRef overloads that aren't requiredLars Knoll2020-06-114-242/+0
| | | | | | | | The QStringView versions will do the job just fine :) Task-number: QTBUG-84319 Change-Id: I376b310deb27683fd98bbcc55e0f56014cacecc3 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
* Remove most overloads taking a QStringRef from the QString APILars Knoll2020-06-112-141/+22
| | | | | | | | | | Add QStringView overloads where they were missing. This keeps things almost 100% source compatible. Task-number: QTBUG-84319 Change-Id: Ica8ee773b2ce655e9597097786117959e34b236e Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* QString: remove remnants of old multiArg()Marc Mutz2020-06-112-63/+0
| | | | | Change-Id: I3bc5bab491ce74daa37f320ea5d4324f9827e870 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Port QLocale::quoteString from QStringRef to QStringViewLars Knoll2020-06-115-15/+14
| | | | | | | Task-number: QTBUG-84319 Change-Id: I29726ebfda7a5f51a0a6ee29e905b0b904256c8d Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Doc: Improve documentation for QLocale::FormatTypeKai Koehne2020-06-102-21/+33
| | | | | | | | | | | | | | | | LongFormat and ShortFormat are not limited to day and month names. Different locales might also use numbers for months instead of strings, so the example is a bit misleading. Instead of extending the enum description even more there's now examples in the dateFormat(), timeFormat(), dateTimeFormat() functions. Task-number: QTBUG-83841 Pick-to: 5.15 Change-Id: Icea2cbce7e9505d706a2171e7d1f4486abdb20be Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QLatin1String: add toString()Marc Mutz2020-06-102-0/+18
| | | | | | | | | For symmetry with other views. [ChangeLog][QtCore][QLatin1String] Added toString(). Change-Id: I4a0677e2dbd009e8da097f4cb0dbb27a6baf5469 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Ensure left/right/mid behave in a compatible wayLars Knoll2020-06-095-68/+99
| | | | | | | | | | | | | | | | | | | | QString and QStringRef did bounds checking for left/right/mid, whereas QStringView was asserting on out of bounds. Relax the behavior for QStringView and do bounds checking on pos/n as well. This removes a source of potentially hidden errors when porting from QStringRef (or QString) to QStringView. Unfortunately, one difference remains, where QByteArray::left/right() behaves differently (and somewhat more sane) than QString and QStringRef. We're keeping the difference here, as it has been around for many years. Mark left/right/mid as obsolete and to be replaced with the new first/last/slice methods. Change-Id: I18c203799ba78c928a4610a6038089f27696c22e Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Implement first/last/from and slice() for string-like classesLars Knoll2020-06-086-3/+173
| | | | | | | | | | | | These methods are scheduled as a replacement for left/right/mid() in Qt 6 with a consistent, narrow contract that does not allow out of bounds indices, and therefore does permit faster implementations. Change-Id: Iabf22e8d4f3fef3c5e69a17f103e6cddebe420b1 Reviewed-by: Alex Blasche <alexander.blasche@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove winrtOliver Wolff2020-06-063-140/+0
| | | | | | | | | Macros and the await helper function from qfunctions_winrt(_p).h are needed in other Qt modules which use UWP APIs on desktop windows. Task-number: QTBUG-84434 Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* QString/View: add tokenize() member functionsMarc Mutz2020-06-063-1/+74
| | | | | | | | | [ChangeLog][QtCore][QString, QStringView, QLatin1String] Added tokenize(). Change-Id: I5fbeab0ac1809ff2974e565129b61a6bdfb398bc Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Clean up docs of qbytearray.cpp's C-string functionsEdward Welbourne2020-06-051-20/+12
| | | | | | | | | | | | | | | Details of MSVC version became irrelevant some time ago; the code now just tests for MSVC. In any case, the reader doesn't need to know how the function is implemented, as long as it does what it claims to do. We do not, in fact, use a random number source when generating the return value for comparisons involving only one nullptr; we quite consistently treat the nullptr as less than the other string. Make explicit that this is true even if the other is empty. Change-Id: Ifd9b00fdf8e814fcf933a05821201670fecfd646 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Include qstringtokenizer.h from qstring.hMarc Mutz2020-06-051-0/+1
| | | | | | | | It's a bit annoying that you have to include <QStringTokenizer> to use the tokenize() methods. The separation is a historic artefact, just fix it. Change-Id: Ied4cc0c8dd2bb6735bf29fbb26fdbf47d07db264 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Clean out string/character mentions from QByteArray docsEdward Welbourne2020-06-051-290/+276
| | | | | | | | | | | | | | | | | | | | | | In some places QByteArray does interpret bytes as characters and a sequence of them as a text string; everywhere else, however, it now refers to them as bytes. Add a section to the class doc explaining how char* pointers are interpreted; the handling of '\0'-termination is surely familiar to most readers, but making it explicit provides contrast for the explanation of there being no such special treatment of '\0' bytes when a stard address and length are given. Also mention in the class doc that interaction with QString is done via UTF-8 encoding and can be avoided by defining a macro. Shorten, in light of that, the description of that encoding where it appears in affected methods. In the process, clean up lots of phrasings. Change-Id: Ic97dce4a20752e277eeab35a06737322b2074692 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix references to section in QByteArray class doc after title changeEdward Welbourne2020-06-051-10/+6
| | | | | | | | | This amends commit 9dd8e655cdd26eeaae30645b7fe013d9a696547f to fix the various references to section {8-bit Character Conversions}, which is now renamed {Character Case}. Change-Id: I1f777ab359c616a1b12f05a12b1cd7397f3ccb18 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Prune two un-needed #include files from qbytearray.cppEdward Welbourne2020-06-051-2/+0
| | | | | | | | The QByteArray code doesn't use QLocale or QString. Change-Id: I60966ecad35fdaaef9930ba2746bf732fa9f3cd7 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Create QLocale's default store if missing when setDefault() is calledEdward Welbourne2020-06-051-2/+10
| | | | | | | | | | | | | | | | | | | A check to prevent crash-on-exit if QLocale::setDefault() was called after the default store was torn down had the side-effect of causing setDefault() to not record data if it was called before the first access to the default store caused it to come into being. Change the check to test that the default store has been destroyed and, if not, create it if it doesn't exist yet. This refines commit 4d6572aac0eb1f75f3c810ce8e92635b956d29fc (as modified by commit 11c5c078c7743050a115a4dcc31f52caaa378e35). Fixes: QTBUG-83016 Fixes: QTBUG-83415 Pick-to: 5.15 Change-Id: Icbce9bd9c75d0258d403e2f90957561b5a18bdf3 Reviewed-by: Andrei Golubev <andrei.golubev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Limit QByteArray's 8-bit support to ASCIIEdward Welbourne2020-06-042-154/+129
| | | | | | | | | | | | | | | | | | | | | Previously it handled Latin-1, which made it incompatible with UTF-8, which is now our preferred 8-bit encoding. For Qt6 it is limited to ASCII. Adjusted tests to match. QLatin1String::compare() turned out to be relying on qstrnicmp()'s Latin-1 handling. Removed some spurious Q_UNLIKELY()s and tidied up code a little in the process. [ChangeLog][QtCore][Important Behavior Changes] Encoding-dependent features of QByteArrray are now limited to ASCII, where previously they worked for the whole of Latin-1. This affects case-insensitive comparison, notably including qstricmp() and qstrnicmp(), and case-transforming functions. Fixes: QTBUG-84323 Change-Id: I2925d9908f8654599195a2860847b17083911b41 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Overhaul documentation of QByteArray numeric conversionsEdward Welbourne2020-06-041-74/+96
| | | | | | | | | | | | | | | | | | | | | | A few pet peeves, a bunch of missing details and some phrasing I like better. Telling folk you're using "base 10" in fact communicates no information; it *assumes* a base that folk shall read that text with and tells them they are indeed using that. If they happen to be reading with a different assumption than you, they'll duly see you confirming their expectation. If you mean "base ten", say so. Values "between 2 and 36" may nor may not include the bounds, depending on weird cultural cues and contextual complications. Be explicit about octal being base 8 and hexadecimal being base 16; most readers shall know, but best to be clear. Be explicit about the digits used for bases beyond ten. Mention that QLocale is the way to do locale-sensitive conversions. Change-Id: I4efcec6242644f37a48ff6391b96ed5b371d5be8 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* QByteArray: clean up docs of trimmed() and simplified()Edward Welbourne2020-06-041-15/+17
| | | | | | | | | Make the set of spacing characters explicit (rather than "includes" hinting that there might be more) and makes explicit that this is an ASCII operation. Change-Id: I61b543bcb450ee82bcce980ecb469901e287b46f Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Rename snippet files to match the carved up corelib/tools/Edward Welbourne2020-06-049-138/+138
| | | | | | | | | | | This is a folllow-up to commits 548513a4bd050d3df0a85fed6e2d1a00ce06d2ab and a9aa206b7b8ac4e69f8c46233b4080e00e845ff5, renaming the snippets files referenced by the files moved out of corelib/tools/ to match the new locations of the files using them. Change-Id: I59f5d3c217ef835e9244387cc769e7212de9d8f5 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Long live QStringTokenizer!Marc Mutz2020-06-033-0/+797
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is designed as C++20-style generator / lazy sequence, and the new return value of QString{,View}::tokenize(). It thus is more similar to a hand-coded loop around indexOf() than QString::split(), which returns a container (the filling of which allocates memory). The template arguments of QStringTokenizer intricately depend on the arguments with which it is constructed, so QStringTokenizer cannot be used directly without C++17 CTAD. To work around this issue, add a factory function, qTokenize(). LATER: - ~Optimize QLatin1String needles (avoid repeated L1->UTF16 conversion)~ (out of scope for QStringTokenizer, should be solved in the respective indexOf()) - Keep per-instantiation state: * Boyer-Moore table [ChangeLog][QtCore][QStringTokenizer] New class. [ChangeLog][QtCore][qTokenize] New function. Change-Id: I7a7a02e9175cdd3887778f29f2f91933329be759 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Doc: fix some typos in QRegularExpression documentationSamuel Gaist2020-06-031-8/+8
| | | | | | Pick-to: 5.15 Change-Id: Ibf96fc775b08df4de0b20d499d8779204ff7df30 Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add QStringView::split() methodsLars Knoll2020-06-012-7/+68
| | | | | | | | | | | | | Since QString::split() is not going away in Qt 6, we should aim to provide API symmetry here, and ease porting existing code from QString(Ref) to use QStringView. This is easier than having to port everything to use tokenize() at the same time. tokenize() will however lead to better performance and thus should be preferred. Change-Id: I1eb43300a90167c6e9389ab56f416f2bf7edf506 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Refactor splitString to use QStringViewLars Knoll2020-06-011-12/+11
| | | | | | | Instead of a QChar * and a length. Change-Id: Ic07e92fe0889e57c19ce7c1bf6902f3a598fad05 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Port QRegularExpression to QStringView, drop QStringRefGiuseppe D'Angelo2020-05-312-176/+108
| | | | | | | | | | | | | | | | | | | | | | The idea is pretty simple -- add QRegularExpression matching over QStringView. When matching over a QString, keep the string alive (by taking a copy), and set the view onto that string. Otherwise, just use the view provided by the user (who is then responsible for ensuring the data stays valid while matching). Do just minor refactorings to support this use case in a cleaner fashion. In QRegularExpressionMatch drop the QStringRef-returning methods, as they cannot work any more -- in the general case there won't be a QString to build a QStringRef from. [ChangeLog][QtCore][QRegularExpression] All the APIs dealing with QStringRef have been ported to QStringView, following QStringRef deprecation in Qt 6.0. Change-Id: Ic367991d9583cc108c045e4387c9b7288c8f1ffd Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add QStringView::constData()Lars Knoll2020-05-302-0/+12
| | | | | | | | | | This is doing the same as data(), but the method is widely being used in Qt (e.g. in QString), so this will make it easier to change the type of a variable from QString(Ref) to QStringView in a source compatible way. Change-Id: Ic49bef688d3ce3c550336edf90130aa5cac8b497 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add support for count() to QStringViewLars Knoll2020-05-304-11/+46
| | | | | | | Make the API more symmetric with regards to both QString and QStringRef. Change-Id: Ia67c53ba708f6c33874d1a127de8e2857ad9b5b8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Add toInt() and friends to QStringViewLars Knoll2020-05-294-0/+258
| | | | | | | | | Make the API more symmetric with regards to both QString and QStringRef. Having this available helps making QStringView more of a drop-in replacement for QStringRef. QStringRef is planned to get removed in Qt 6. Change-Id: Ife036c0b55970078f42e1335442ff9ee5f4a2f0d Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix a typo and an odd phrasingEdward Welbourne2020-05-291-7/+6
| | | | | | | | | | | One initializes data "byte by byte" not "byte per byte", at least in any dialect I'm familiar with. A byte array can be "created from raw data" but if it was "from a" thing it'd have to be a datum of some sort. Change-Id: Id9706b191f08f03418b9ea6f481797d93a278dff Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* Add missing number/setNum() overloadsLars Knoll2020-05-282-0/+46
| | | | | | | | QString has the overloads taking a long/ulong. QByteArray also has toLong/ULong(), so add these to make the API symmetric. Change-Id: I6d1f98ca95fabd32b012f1c3df603dc54e187ec3 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Don't change the implementation of a method depending on QT_USE_QSTRINGUILDERLars Knoll2020-05-261-23/+13
| | | | | | | | | | | | | | | | | | | | | | | This is rather evil and caused crashes in static builds, when library and application where compiler with different settings of the QT_USE_QSTRINGBUILDER flag. The reason is that the implementation of QStringDecoder::operator() was different (and returning different data) with or without the setting. The compiler would thus create two very different versions of this method in different .o files. When linking the app, one of the implementations would be chosen, leading to crashes in places where the other one was expected. Fix this by only providing the QStringBuilder enabled version of the methods. They return a temporary object that's converatable to a QString/QByteArray anyway. Make sure that qdoc shows a simple signature. As a drive by fix a compile error in a code path that didn't get hit so far. Change-Id: I312fa564d0bc6b464f2b4466de1d53841f7b7b0f Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Change QString::toIntegral_helper to use QStringViewLars Knoll2020-05-252-26/+25
| | | | | | | This implicitly makes it use qsizetype for the length. Change-Id: Ib39a5a8dd71e48b45179079f7c7fe5e4edbdb5eb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Adjust resize() behavior of QString and QByteArray to match Qt 5Lars Knoll2020-05-212-25/+7
| | | | | | | | | | | | | resize() to a smaller size does not reallocate in Qt 5 if the container is not shared. Match this here. As a drive-by also fix resize calls on raw data strings to ensure they are null terminated after the resize. Change-Id: Ic4d8830e86ed3f247020d7ece3217cebd344ae96 Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QString: throughly port internals to char16_tMarc Mutz2020-05-194-108/+76
| | | | | | | | | | This includes allocating QString data as char16_t instead of ushort. This isn't the end of the port, but an important milestone: the traditional foldChar() functions are now all unused. Change-Id: I766bebc2d70b6972e2045d3474c7f5770f4676d9 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Cleanup qUncompressLars Knoll2020-05-171-21/+8
| | | | | | | | Cleanup the code in qUncompress and make use of QArrayDataPointer to keep track of memory. Change-Id: I2c11f0468813698d2b7c25acd0f8786a289739a0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Don't access QArrayData::sharedNull() from QByteArray anymoreLars Knoll2020-05-171-4/+2
| | | | | | Change-Id: I1292f8d2d62fa96ae4c6aa91c7c95c1f3a18570f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QChar: make fullConvertCase()'s result type more usableMarc Mutz2020-05-172-15/+22
| | | | | | | | Move it into the function, give it an explicit size and make it iterable and indicate to QStringView that it's a compatible container. Change-Id: I483d9225ac73ad93f2037489f2d32473c377e8b7 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QString: remove more functions overloaded on charMarc Mutz2020-05-152-38/+0
| | | | | | | | | | | | | | These functions mess in bad ways with the overload set (they, fatally, attract char16_t, e.g.). The no-ascii warning now comes from the QChar(char) constructor, so it's not lost. [ChangeLog][QtCore][QString] Also removed op=(char), op+(char, QString), op+(QString, char). Change-Id: I1471c9ddb4c6869aff6e527516e2c78b80b7d7d3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* QString: fix an aliasing issue in remove(QString)Marc Mutz2020-05-151-1/+9
| | | | | | | | | | | Even in Qt 5, remove() can be passed an alias to *this. In Qt 6, with the advent of substring sharing, this will become even more pronounced. Use the same fix as was already used in QString::insert(). Pick-to: 5.15 Change-Id: I1a0d3d99fd7dff6e727661646d2cbfdc94df2682 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QString: fix quadratic behavior in QString::remove(QString)Marc Mutz2020-05-141-10/+24
| | | | | | | | | | | | | | | Calling linear-complexity remove(int, int) in a loop is O(N²). Fix by implementing a remove_if()-like algorithm which ensures each character is written at most once, which is linear. [ChangeLog][QtCore][QString] Fixed quadratic worst-case complexity of remove(QString). The function now has linear complexity in all cases. Pick-to: 5.15 Change-Id: I12f70fbc83fb5da4a9aae4bd02f525d7657cc940 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* QStringView: add converting constructor from array-like containersGiuseppe D'Angelo2020-05-141-35/+38
| | | | | | | | | | | | | | | | | Centralize, rather than keeping adding constructors from any array-like container. A more robust implementation, likely following the converting constructor for std::span ([span.cons]), is out of scope for C++17 and will require C++20's ranges and concepts. [ChangeLog][QtCore][QStringView] QStringView can now be constructed from any contiguous container, as long as they hold string-like data. For instance, it's now possible to create a QStringView object from a std::vector<char16_t>, a QVarLengthArray<ushort> and so on. Change-Id: I7043eb194f617e98bd1f8af1237777a93a6c5e75 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Enforce that statically allocated array-like containers have 0 capacityGiuseppe D'Angelo2020-05-142-0/+6
| | | | | | | | | | | | | | | | It has been the case for both QStringLiteral and QByteArrayLiteral since Qt 5.0, and Q_ARRAY_LITERAL since Qt 6.0. Since it's definitely surprising, add a note in the docs, which is "somehow" consistent with the interpretation of capacity as the biggest possible size before we reallocate. Since it's 0, any manipulation of the size will cause a reallocation. (Alternatively: the capacity() is for how many elements memory was requested from the free store. No memory was allocated, so 0...) Task-number: QTBUG-84069 Change-Id: I5c7d21a22d1bd8b8d9b71143e33d537ca0224acd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QRegExp from QVariantLars Knoll2020-05-142-2/+17
| | | | | | | | | | | | | | | | Add an operator QVariant() to QRegExp to keep things at source compatible as possible. Add a hack to QVariant::load/save() to recognize the old typeid for QRegExp and stream them correctly as long as the streaming operators for QRegExp are registered. Also move the datastream test for QRegExp to tst_qregexp, and adjust it to the qvariant changes. Change-Id: I120b38a7541b43ec07a21b17f7f35c55f071eb75 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Remove QRegExp support from QString and StringListLars Knoll2020-05-147-592/+13
| | | | | | | | | | Replacement methods do now exist in QRegExp, or for QRegularExpression when porting to it. Remove all autotests associated with the old methods. Change-Id: I3ff1e0da4b53adb64d5a48a30aecd8b960f5e633 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move methods using QRegExp in QString(List) over to QRegExpLars Knoll2020-05-144-223/+443
| | | | | | | | The prepares for the removal of those methods from QString and QStringList. The new methods in QRegExp are left as a porting help. Change-Id: Ieffa33a79caf53b83029e9b070c4eb5cadca1418 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* QStringMatcher: port internals to QStringView and char16_tMarc Mutz2020-05-142-24/+30
| | | | | | Change-Id: If540b094d003ad373d3c581e1de8c526ad4c7d73 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Streamline the code in the conversion to and from utf8Lars Knoll2020-05-141-90/+82
| | | | | | | | | | | | | Move pre/and post condition handling out of the main loop to make that one as fast as possible. Remove special handling of a corner case when the input length is zero, where the utf8 decoder did something else than all other decoders. Change-Id: I94992767ea15405b38f7953adadaa6ff98b20b6f Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>