From 6d5d467bcf20e05cc12168f49cf4055c678ef091 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Feb 2020 17:33:13 +0100 Subject: Doc: Replace 'In alternative' with 'Alternatively' Amends b19220d17fa66de5ded41690ffff263ee2af5c63 Change-Id: Ic6869ce77440b43b30248f1130dabe8cc1b231e9 Reviewed-by: Leena Miettinen --- src/corelib/text/qbytearray.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index 27e0d56225..f0c903737f 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -5145,7 +5145,7 @@ void warn(WarningType w, EmittingClass c) \snippet code/src_corelib_tools_qbytearray.cpp 44ter - In alternative, it is possible to access the conversion status + Alternatively, it is possible to access the conversion status and the decoded data directly: \snippet code/src_corelib_tools_qbytearray.cpp 44quater -- cgit v1.2.3 From da059d0382a8b4ceb33dc668385e1935951c475b Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Feb 2020 16:53:35 +0100 Subject: Doc: Fix punctation in QPdfWriter::addFileAttachment Change-Id: Ic00ffd88ecbaa88409bf968f6794fad6f53a2f0e Reviewed-by: Shawn Rutledge --- src/gui/painting/qpdfwriter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/painting/qpdfwriter.cpp b/src/gui/painting/qpdfwriter.cpp index 4f70fe6ad2..32f2194da3 100644 --- a/src/gui/painting/qpdfwriter.cpp +++ b/src/gui/painting/qpdfwriter.cpp @@ -300,7 +300,7 @@ QByteArray QPdfWriter::documentXmpMetadata() const /*! \since 5.15 - Adds \a fileName attachment to the PDF with (optional) \a mimeType + Adds \a fileName attachment to the PDF with (optional) \a mimeType. \a data contains the raw file data to embed into the PDF file. */ -- cgit v1.2.3 From e939d34a9f9114bf2e5142cbd8d5ea341bbce34d Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Feb 2020 14:23:56 +0100 Subject: Doc: Fix wording of operator=!(QMetaType, QMetaType() Change-Id: I02ca10f968acb42a6e0d793cad78d7d0baa7f472 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qmetatype.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 71eec11e01..993e86d73e 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -528,7 +528,7 @@ struct DefinedTypesFilter { \relates QMetaType \overload - Returns \c true if the QMetaType \a a represents a difference type + Returns \c true if the QMetaType \a a represents a different type than the QMetaType \a b, otherwise returns \c false. */ -- cgit v1.2.3 From 4e51dc440faaaaccd24a47e3247b50354d2fb3bd Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Feb 2020 15:17:33 +0100 Subject: Doc: Fix documentation for deprecated methods in QJsonDocument \deprecated has to stand on its own - qdoc will ignore anything on the right side of it. Change-Id: Ib698aa66826d6430bbafd926a9c64febd5463c5c Reviewed-by: Ulf Hermann --- src/corelib/serialization/qjsondocument.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/corelib/serialization/qjsondocument.cpp b/src/corelib/serialization/qjsondocument.cpp index 0be0fc020d..338b752f13 100644 --- a/src/corelib/serialization/qjsondocument.cpp +++ b/src/corelib/serialization/qjsondocument.cpp @@ -239,6 +239,8 @@ QJsonDocument &QJsonDocument::operator =(const QJsonDocument &other) #if QT_CONFIG(binaryjson) && QT_DEPRECATED_SINCE(5, 15) /*! + \deprecated + Creates a QJsonDocument that uses the first \a size bytes from \a data. It assumes \a data contains a binary encoded JSON document. The created document does not take ownership of \a data. The data is @@ -253,7 +255,7 @@ QJsonDocument &QJsonDocument::operator =(const QJsonDocument &other) Returns a QJsonDocument representing the data. - \deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards + \note Deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards compatibility. It is undocumented and restrictive in the maximum size of JSON documents that can be encoded. Qt JSON types can be converted to Qt CBOR types, which can in turn be serialized into the CBOR binary format and vice versa. The @@ -285,13 +287,15 @@ QJsonDocument QJsonDocument::fromRawData(const char *data, int size, DataValidat } /*! + \deprecated + Returns the raw binary representation of the data \a size will contain the size of the returned data. This method is useful to e.g. stream the JSON document in its binary form to a file. - \deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards + \note Deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards compatibility. It is undocumented and restrictive in the maximum size of JSON documents that can be encoded. Qt JSON types can be converted to Qt CBOR types, which can in turn be serialized into the CBOR binary format and vice versa. The @@ -325,13 +329,14 @@ const char *QJsonDocument::rawData(int *size) const } /*! + \deprecated Creates a QJsonDocument from \a data. \a validation decides whether the data is checked for validity before being used. By default the data is validated. If the \a data is not valid, the method returns a null document. - \deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards + \note Deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards compatibility. It is undocumented and restrictive in the maximum size of JSON documents that can be encoded. Qt JSON types can be converted to Qt CBOR types, which can in turn be serialized into the CBOR binary format and vice versa. The @@ -364,6 +369,7 @@ QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidati } /*! + \deprecated Returns a binary representation of the document. The binary representation is also the native format used internally in Qt, @@ -373,7 +379,7 @@ QJsonDocument QJsonDocument::fromBinaryData(const QByteArray &data, DataValidati or computers. fromBinaryData() can be used to convert it back into a JSON document. - \deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards + \note Deprecated in Qt 5.15. The binary JSON encoding is only retained for backwards compatibility. It is undocumented and restrictive in the maximum size of JSON documents that can be encoded. Qt JSON types can be converted to Qt CBOR types, which can in turn be serialized into the CBOR binary format and vice versa. The -- cgit v1.2.3 From e1b6c67bcdcb6dffdaf7b5d3d0d429b6dd60baf4 Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 26 Feb 2020 14:21:26 +0100 Subject: Doc: Fix punctuation for QMetaType::QMetaType() Change-Id: I99d78ae475844f3d145952fd789c5753979745f7 Reviewed-by: Olivier Goffart (Woboq GmbH) --- src/corelib/kernel/qmetatype.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qmetatype.cpp b/src/corelib/kernel/qmetatype.cpp index 993e86d73e..662283f737 100644 --- a/src/corelib/kernel/qmetatype.cpp +++ b/src/corelib/kernel/qmetatype.cpp @@ -2255,7 +2255,7 @@ QMetaType QMetaType::typeInfo(const int type) Constructs a QMetaType object that contains all information about type \a typeId. - \note: The default parameter was added in Qt 5.15 + \note The default parameter was added in Qt 5.15. */ QMetaType::QMetaType(const int typeId) : m_typeId(typeId) -- cgit v1.2.3 From 8de66e1f244ee500b7df79ecbeaa32d889dc7d27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Arve=20S=C3=A6ther?= Date: Tue, 25 Feb 2020 15:29:24 +0100 Subject: Remove a "### Qt 6" that I forgot to remove MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit amends commit 5e83a2eed2dc42a732bd9154bebe8dcb34cd6bb5 Change-Id: I792d5d71d8c5a8b034d334de31dcd9bacfc53fa9 Reviewed-by: Tor Arne Vestbø --- src/widgets/dialogs/qinputdialog.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/widgets/dialogs/qinputdialog.h b/src/widgets/dialogs/qinputdialog.h index ca893172f9..6e2d6eebf3 100644 --- a/src/widgets/dialogs/qinputdialog.h +++ b/src/widgets/dialogs/qinputdialog.h @@ -189,7 +189,6 @@ public: int decimals = 1, bool *ok = nullptr, Qt::WindowFlags flags = Qt::WindowFlags(), double step = 1); #else - // ### Qt 6: merge overloads static double getDouble(QWidget *parent, const QString &title, const QString &label, double value, double minValue, double maxValue, int decimals, bool *ok, Qt::WindowFlags flags, double step); -- cgit v1.2.3 From c158f881b30a28ab28ede0df538cbf1af4326c76 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Tue, 25 Feb 2020 16:49:05 +0100 Subject: Docs: Use Qt::SplitBehavior in preference to QString::SplitBehavior The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Applied suitable wrapping round various char and string literals, since docs are meant to show best practice. Change-Id: Ie061905fad26f9b4dda3eedba4612704f0a19126 Reviewed-by: Lars Knoll --- examples/corelib/tools/customtype/message.cpp | 2 +- examples/sql/masterdetail/dialog.cpp | 2 +- examples/widgets/draganddrop/draggabletext/dragwidget.cpp | 2 +- examples/widgets/draganddrop/fridgemagnets/dragwidget.cpp | 4 ++-- examples/widgets/graphicsview/flowlayout/window.cpp | 2 +- examples/widgets/itemviews/chart/mainwindow.cpp | 2 +- examples/widgets/itemviews/editabletreemodel/treemodel.cpp | 3 ++- examples/widgets/itemviews/simpletreemodel/treemodel.cpp | 3 ++- .../widgets/tutorials/addressbook/part7/addressbook.cpp | 2 +- src/corelib/doc/snippets/qstring/main.cpp | 14 +++++++------- src/widgets/doc/snippets/dockwidgets/mainwindow.cpp | 2 +- 11 files changed, 20 insertions(+), 18 deletions(-) diff --git a/examples/corelib/tools/customtype/message.cpp b/examples/corelib/tools/customtype/message.cpp index e83697cb74..489ec24a4d 100644 --- a/examples/corelib/tools/customtype/message.cpp +++ b/examples/corelib/tools/customtype/message.cpp @@ -61,7 +61,7 @@ Message::Message(const QString &body, const QStringList &headers) QDebug operator<<(QDebug dbg, const Message &message) { const QString body = message.body(); - QVector pieces = body.splitRef("\r\n", QString::SkipEmptyParts); + QVector pieces = body.splitRef(QLatin1String("\r\n"), Qt::SkipEmptyParts); if (pieces.isEmpty()) dbg.nospace() << "Message()"; else if (pieces.size() == 1) diff --git a/examples/sql/masterdetail/dialog.cpp b/examples/sql/masterdetail/dialog.cpp index bb1812eace..3267352b07 100644 --- a/examples/sql/masterdetail/dialog.cpp +++ b/examples/sql/masterdetail/dialog.cpp @@ -86,7 +86,7 @@ void Dialog::submit() int albumId = addNewAlbum(title, artistId); QStringList tracks; - tracks = tracksEditor->text().split(',', QString::SkipEmptyParts); + tracks = tracksEditor->text().split(QLatin1Char(','), Qt::SkipEmptyParts); addTracks(albumId, tracks); increaseAlbumCount(indexOfArtist(artist)); diff --git a/examples/widgets/draganddrop/draggabletext/dragwidget.cpp b/examples/widgets/draganddrop/draggabletext/dragwidget.cpp index 2135ba2ef9..4a430ebf56 100644 --- a/examples/widgets/draganddrop/draggabletext/dragwidget.cpp +++ b/examples/widgets/draganddrop/draggabletext/dragwidget.cpp @@ -113,7 +113,7 @@ void DragWidget::dropEvent(QDropEvent *event) if (event->mimeData()->hasText()) { const QMimeData *mime = event->mimeData(); QStringList pieces = mime->text().split(QRegularExpression(QStringLiteral("\\s+")), - QString::SkipEmptyParts); + Qt::SkipEmptyParts); QPoint position = event->pos(); QPoint hotSpot; diff --git a/examples/widgets/draganddrop/fridgemagnets/dragwidget.cpp b/examples/widgets/draganddrop/fridgemagnets/dragwidget.cpp index 4fbc6d3fd9..a02b1cb42a 100644 --- a/examples/widgets/draganddrop/fridgemagnets/dragwidget.cpp +++ b/examples/widgets/draganddrop/fridgemagnets/dragwidget.cpp @@ -163,8 +163,8 @@ void DragWidget::dropEvent(QDropEvent *event) } //! [11] //! [12] } else if (event->mimeData()->hasText()) { - QStringList pieces = event->mimeData()->text().split(QRegularExpression(QStringLiteral("\\s+")), - QString::SkipEmptyParts); + QStringList pieces = event->mimeData()->text().split( + QRegularExpression(QStringLiteral("\\s+")), Qt::SkipEmptyParts); QPoint position = event->pos(); for (const QString &piece : pieces) { diff --git a/examples/widgets/graphicsview/flowlayout/window.cpp b/examples/widgets/graphicsview/flowlayout/window.cpp index 8fe06d0e11..0edaa686b4 100644 --- a/examples/widgets/graphicsview/flowlayout/window.cpp +++ b/examples/widgets/graphicsview/flowlayout/window.cpp @@ -59,7 +59,7 @@ Window::Window(QGraphicsItem *parent) : QGraphicsWidget(parent, Qt::Window) FlowLayout *lay = new FlowLayout; const QString sentence(QLatin1String("I am not bothered by the fact that I am unknown." " I am bothered when I do not know others. (Confucius)")); - const QVector words = sentence.splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + const QVector words = sentence.splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); for (const QStringRef &word : words) { QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget(this); QLabel *label = new QLabel(word.toString()); diff --git a/examples/widgets/itemviews/chart/mainwindow.cpp b/examples/widgets/itemviews/chart/mainwindow.cpp index 53f57fbb49..671cfb1941 100644 --- a/examples/widgets/itemviews/chart/mainwindow.cpp +++ b/examples/widgets/itemviews/chart/mainwindow.cpp @@ -134,7 +134,7 @@ void MainWindow::loadFile(const QString &fileName) if (!line.isEmpty()) { model->insertRows(row, 1, QModelIndex()); - const QStringList pieces = line.split(',', QString::SkipEmptyParts); + const QStringList pieces = line.split(QLatin1Char(','), Qt::SkipEmptyParts); if (pieces.size() < 3) continue; model->setData(model->index(row, 0, QModelIndex()), diff --git a/examples/widgets/itemviews/editabletreemodel/treemodel.cpp b/examples/widgets/itemviews/editabletreemodel/treemodel.cpp index 836c2e8651..9678e45be7 100644 --- a/examples/widgets/itemviews/editabletreemodel/treemodel.cpp +++ b/examples/widgets/itemviews/editabletreemodel/treemodel.cpp @@ -267,7 +267,8 @@ void TreeModel::setupModelData(const QStringList &lines, TreeItem *parent) if (!lineData.isEmpty()) { // Read the column data from the rest of the line. - const QStringList columnStrings = lineData.split('\t', QString::SkipEmptyParts); + const QStringList columnStrings = + lineData.split(QLatin1Char('\t'), Qt::SkipEmptyParts); QVector columnData; columnData.reserve(columnStrings.size()); for (const QString &columnString : columnStrings) diff --git a/examples/widgets/itemviews/simpletreemodel/treemodel.cpp b/examples/widgets/itemviews/simpletreemodel/treemodel.cpp index cfa65846ed..28640d6433 100644 --- a/examples/widgets/itemviews/simpletreemodel/treemodel.cpp +++ b/examples/widgets/itemviews/simpletreemodel/treemodel.cpp @@ -194,7 +194,8 @@ void TreeModel::setupModelData(const QStringList &lines, TreeItem *parent) if (!lineData.isEmpty()) { // Read the column data from the rest of the line. - const QStringList columnStrings = lineData.split('\t', QString::SkipEmptyParts); + const QStringList columnStrings = + lineData.split(QLatin1Char('\t'), Qt::SkipEmptyParts); QVector columnData; columnData.reserve(columnStrings.count()); for (const QString &columnString : columnStrings) diff --git a/examples/widgets/tutorials/addressbook/part7/addressbook.cpp b/examples/widgets/tutorials/addressbook/part7/addressbook.cpp index 717d0882af..1ba23756c4 100644 --- a/examples/widgets/tutorials/addressbook/part7/addressbook.cpp +++ b/examples/widgets/tutorials/addressbook/part7/addressbook.cpp @@ -413,7 +413,7 @@ void AddressBook::exportAsVCard() int index = name.indexOf(" "); if (index != -1) { - nameList = name.split(QRegularExpression("\\s+"), QString::SkipEmptyParts); + nameList = name.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts); firstName = nameList.first(); lastName = nameList.last(); } else { diff --git a/src/corelib/doc/snippets/qstring/main.cpp b/src/corelib/doc/snippets/qstring/main.cpp index ac7fc7d078..58d68d9375 100644 --- a/src/corelib/doc/snippets/qstring/main.cpp +++ b/src/corelib/doc/snippets/qstring/main.cpp @@ -766,7 +766,7 @@ void Widget::splitFunction() //! [60] str = "This time, a normal English sentence."; - list = str.split(QRegExp("\\W+"), QString::SkipEmptyParts); + list = str.split(QRegExp("\\W+"), Qt::SkipEmptyParts); // list: [ "This", "time", "a", "normal", "English", "sentence" ] //! [60] @@ -787,7 +787,7 @@ void Widget::splitFunction() //! [91] str = "This time, a normal English sentence."; - list = str.split(QRegularExpression("\\W+"), QString::SkipEmptyParts); + list = str.split(QRegularExpression("\\W+"), Qt::SkipEmptyParts); // list: [ "This", "time", "a", "normal", "English", "sentence" ] //! [91] @@ -801,24 +801,24 @@ void Widget::splitFunction() void Widget::splitCaseSensitiveFunction() { //! [62] - QString str = "a,,b,c"; + QString str = QStringLiteral("a,,b,c"); - QStringList list1 = str.split(','); + QStringList list1 = str.split(QLatin1Char(',')); // list1: [ "a", "", "b", "c" ] - QStringList list2 = str.split(',', QString::SkipEmptyParts); + QStringList list2 = str.split(QLatin1Char(','), Qt::SkipEmptyParts); // list2: [ "a", "b", "c" ] //! [62] //! [62-empty] QString str = "abc"; - auto parts = str.split(""); + auto parts = str.split(QString()); // parts: {"", "a", "b", "c", ""} //! [62-empty] //! [62-slashes] QString str = "/a/b/c/"; - auto parts = str.split('/'); + auto parts = str.split(QLatin1Char('/')); // parts: {"", "a", "b", "c", ""} //! [62-slashes] } diff --git a/src/widgets/doc/snippets/dockwidgets/mainwindow.cpp b/src/widgets/doc/snippets/dockwidgets/mainwindow.cpp index 53f91589bf..95dae667a8 100644 --- a/src/widgets/doc/snippets/dockwidgets/mainwindow.cpp +++ b/src/widgets/doc/snippets/dockwidgets/mainwindow.cpp @@ -79,7 +79,7 @@ void MainWindow::setupContents() do { QString line = titlesFile.readLine().trimmed(); - QStringList parts = line.split("\t", QString::SkipEmptyParts); + QStringList parts = line.split(QLatin1Char('\t'), Qt::SkipEmptyParts); if (parts.size() != 2) break; -- cgit v1.2.3 From 8c613ed74bf37573ca6c2d93e5bb77e0695ba953 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Tue, 25 Feb 2020 17:17:15 +0100 Subject: SQL: Use Qt::SplitBehavior in preference to QString::SplitBehavior The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: Ia4c698df60648c85c8e6132641e5ea7bc553129a Reviewed-by: Andy Shaw --- src/plugins/sqldrivers/db2/qsql_db2.cpp | 2 +- src/plugins/sqldrivers/ibase/qsql_ibase.cpp | 2 +- src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 2 +- src/plugins/sqldrivers/oci/qsql_oci.cpp | 2 +- src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/sqldrivers/db2/qsql_db2.cpp b/src/plugins/sqldrivers/db2/qsql_db2.cpp index 1d7e985731..ddf54666e7 100644 --- a/src/plugins/sqldrivers/db2/qsql_db2.cpp +++ b/src/plugins/sqldrivers/db2/qsql_db2.cpp @@ -1270,7 +1270,7 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas QString protocol; // Set connection attributes - const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts)); + const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); int idx; diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp index ffbc56829b..0fa21f504c 100644 --- a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp +++ b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp @@ -1477,7 +1477,7 @@ bool QIBaseDriver::open(const QString & db, if (isOpen()) close(); - const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts)); + const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); QString encString; QByteArray role; diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index 70b9e7e729..d3e37f11d6 100644 --- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -1239,7 +1239,7 @@ bool QMYSQLDriver::open(const QString& db, stored procedure call will fail. */ unsigned int optionFlags = CLIENT_MULTI_STATEMENTS; - const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts)); + const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); QString unixSocket; QString sslCert; QString sslCA; diff --git a/src/plugins/sqldrivers/oci/qsql_oci.cpp b/src/plugins/sqldrivers/oci/qsql_oci.cpp index aee8e92b36..8da9837a59 100644 --- a/src/plugins/sqldrivers/oci/qsql_oci.cpp +++ b/src/plugins/sqldrivers/oci/qsql_oci.cpp @@ -2230,7 +2230,7 @@ bool QOCIDriver::hasFeature(DriverFeature f) const static void qParseOpts(const QString &options, QOCIDriverPrivate *d) { - const QStringList opts(options.split(QLatin1Char(';'), QString::SkipEmptyParts)); + const QStringList opts(options.split(QLatin1Char(';'), Qt::SkipEmptyParts)); for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); int idx; diff --git a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp index b3a5cd7f65..8e996d0ded 100644 --- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp +++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp @@ -767,7 +767,7 @@ QChar QODBCDriverPrivate::quoteChar() bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts) { // Set any connection attributes - const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts)); + const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); SQLRETURN r = SQL_SUCCESS; for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); -- cgit v1.2.3 From 00f0863cbe7236742403a591b6409e480402cddf Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Tue, 25 Feb 2020 17:18:29 +0100 Subject: Core: Use Qt::SplitBehavior in preference to QString::SplitBehavior The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I446f9ddc8f8de4a0b79b09edb44f7c1496fbc33f Reviewed-by: Volker Hilsheimer --- src/corelib/io/qdir.cpp | 4 ++-- src/corelib/io/qfileselector.cpp | 2 +- src/corelib/io/qfilesystemengine_win.cpp | 2 +- src/corelib/io/qfilesystemiterator_win.cpp | 2 +- src/corelib/io/qsettings_winrt.cpp | 2 +- src/corelib/io/qstandardpaths.cpp | 3 ++- src/corelib/io/qstandardpaths_unix.cpp | 2 +- src/corelib/io/qtldurl.cpp | 2 +- src/corelib/kernel/qcoreapplication.cpp | 2 +- src/corelib/plugin/qsystemlibrary.cpp | 2 +- src/corelib/time/qdatetime.cpp | 4 ++-- tests/auto/corelib/io/qdir/tst_qdir.cpp | 4 ++-- tests/auto/corelib/io/qprocess/tst_qprocess.cpp | 4 ++-- tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp | 2 +- tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp | 4 ++-- tests/auto/corelib/text/qstringref/tst_qstringref.cpp | 8 ++++---- .../corelib/text/qtextboundaryfinder/tst_qtextboundaryfinder.cpp | 4 ++-- 17 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/corelib/io/qdir.cpp b/src/corelib/io/qdir.cpp index 526702d151..5ce3fbcca8 100644 --- a/src/corelib/io/qdir.cpp +++ b/src/corelib/io/qdir.cpp @@ -867,8 +867,8 @@ QString QDir::relativeFilePath(const QString &fileName) const #endif QString result; - QVector dirElts = dir.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); - QVector fileElts = file.splitRef(QLatin1Char('/'), QString::SkipEmptyParts); + QVector dirElts = dir.splitRef(QLatin1Char('/'), Qt::SkipEmptyParts); + QVector fileElts = file.splitRef(QLatin1Char('/'), Qt::SkipEmptyParts); int i = 0; while (i < dirElts.size() && i < fileElts.size() && diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 31c490de66..ee378f6434 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -324,7 +324,7 @@ void QFileSelectorPrivate::updateSelectors() QLatin1Char pathSep(','); QStringList envSelectors = QString::fromLatin1(qgetenv("QT_FILE_SELECTORS")) - .split(pathSep, QString::SkipEmptyParts); + .split(pathSep, Qt::SkipEmptyParts); if (envSelectors.count()) sharedData->staticSelectors << envSelectors; diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index 36d43e9cb7..6ad123f3b6 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -394,7 +394,7 @@ static QString readLink(const QFileSystemEntry &link) static bool uncShareExists(const QString &server) { // This code assumes the UNC path is always like \\?\UNC\server... - const QVector parts = server.splitRef(QLatin1Char('\\'), QString::SkipEmptyParts); + const QVector parts = server.splitRef(QLatin1Char('\\'), Qt::SkipEmptyParts); if (parts.count() >= 3) { QStringList shares; if (QFileSystemEngine::uncListSharesOnServer(QLatin1String("\\\\") + parts.at(2), &shares)) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 6741282881..a2a4271ba9 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -101,7 +101,7 @@ bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaDa FINDEX_SEARCH_OPS(searchOps), 0, dwAdditionalFlags); if (findFileHandle == INVALID_HANDLE_VALUE) { if (nativePath.startsWith(QLatin1String("\\\\?\\UNC\\"))) { - const QVector parts = nativePath.splitRef(QLatin1Char('\\'), QString::SkipEmptyParts); + const QVector parts = nativePath.splitRef(QLatin1Char('\\'), Qt::SkipEmptyParts); if (parts.count() == 4 && QFileSystemEngine::uncListSharesOnServer( QLatin1String("\\\\") + parts.at(2), &uncShares)) { if (uncShares.isEmpty()) diff --git a/src/corelib/io/qsettings_winrt.cpp b/src/corelib/io/qsettings_winrt.cpp index e91d4d64a2..a208262ab4 100644 --- a/src/corelib/io/qsettings_winrt.cpp +++ b/src/corelib/io/qsettings_winrt.cpp @@ -646,7 +646,7 @@ IApplicationDataContainer *QWinRTSettingsPrivate::getContainer(IApplicationDataC IApplicationDataContainer *current = parent; if (group.isEmpty()) return current; - const QStringList groupPath = group.split(QLatin1Char('/'), QString::SkipEmptyParts); + const QStringList groupPath = group.split(QLatin1Char('/'), Qt::SkipEmptyParts); for (const QString &subGroup : groupPath) { ComPtr sub = subContainer(current, subGroup); diff --git a/src/corelib/io/qstandardpaths.cpp b/src/corelib/io/qstandardpaths.cpp index b56cf00308..04aff3d11b 100644 --- a/src/corelib/io/qstandardpaths.cpp +++ b/src/corelib/io/qstandardpaths.cpp @@ -510,7 +510,8 @@ QString QStandardPaths::findExecutable(const QString &executableName, const QStr } // Remove trailing slashes, which occur on Windows. - const QStringList rawPaths = QString::fromLocal8Bit(pEnv.constData()).split(QDir::listSeparator(), QString::SkipEmptyParts); + const QStringList rawPaths = QString::fromLocal8Bit(pEnv.constData()).split( + QDir::listSeparator(), Qt::SkipEmptyParts); searchPaths.reserve(rawPaths.size()); for (const QString &rawPath : rawPaths) { QString cleanPath = QDir::cleanPath(rawPath); diff --git a/src/corelib/io/qstandardpaths_unix.cpp b/src/corelib/io/qstandardpaths_unix.cpp index 5f4955c53f..ec37ce7d76 100644 --- a/src/corelib/io/qstandardpaths_unix.cpp +++ b/src/corelib/io/qstandardpaths_unix.cpp @@ -283,7 +283,7 @@ static QStringList xdgDataDirs() dirs.append(QString::fromLatin1("/usr/local/share")); dirs.append(QString::fromLatin1("/usr/share")); } else { - const auto parts = xdgDataDirsEnv.splitRef(QLatin1Char(':'), QString::SkipEmptyParts); + const auto parts = xdgDataDirsEnv.splitRef(QLatin1Char(':'), Qt::SkipEmptyParts); // Normalize paths, skip relative paths for (const QStringRef &dir : parts) { diff --git a/src/corelib/io/qtldurl.cpp b/src/corelib/io/qtldurl.cpp index fc3e16b241..3301a76011 100644 --- a/src/corelib/io/qtldurl.cpp +++ b/src/corelib/io/qtldurl.cpp @@ -95,7 +95,7 @@ static bool containsTLDEntry(QStringView entry, TLDMatchType match) Q_CORE_EXPORT QString qTopLevelDomain(const QString &domain) { const QString domainLower = domain.toLower(); - QVector sections = domainLower.splitRef(QLatin1Char('.'), QString::SkipEmptyParts); + QVector sections = domainLower.splitRef(QLatin1Char('.'), Qt::SkipEmptyParts); if (sections.isEmpty()) return QString(); diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp index 34f54d8f94..5fdcc9b914 100644 --- a/src/corelib/kernel/qcoreapplication.cpp +++ b/src/corelib/kernel/qcoreapplication.cpp @@ -2693,7 +2693,7 @@ QStringList QCoreApplication::libraryPathsLocked() auto setPathsFromEnv = [&](QString libPathEnv) { if (!libPathEnv.isEmpty()) { - QStringList paths = libPathEnv.split(QDir::listSeparator(), QString::SkipEmptyParts); + QStringList paths = libPathEnv.split(QDir::listSeparator(), Qt::SkipEmptyParts); for (QStringList::const_iterator it = paths.constBegin(); it != paths.constEnd(); ++it) { QString canonicalPath = QDir(*it).canonicalPath(); if (!canonicalPath.isEmpty() diff --git a/src/corelib/plugin/qsystemlibrary.cpp b/src/corelib/plugin/qsystemlibrary.cpp index 1f8cef790c..1a88476596 100644 --- a/src/corelib/plugin/qsystemlibrary.cpp +++ b/src/corelib/plugin/qsystemlibrary.cpp @@ -109,7 +109,7 @@ HINSTANCE QSystemLibrary::load(const wchar_t *libraryName, bool onlySystemDirect if (!onlySystemDirectory) { const QString PATH(QLatin1String(qgetenv("PATH").constData())); - searchOrder << PATH.split(QLatin1Char(';'), QString::SkipEmptyParts); + searchOrder << PATH.split(QLatin1Char(';'), Qt::SkipEmptyParts); } QString fileName = QString::fromWCharArray(libraryName); fileName.append(QLatin1String(".dll")); diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 86c08058fc..b3a12a4a46 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -1686,7 +1686,7 @@ QT_WARNING_POP return rfcDateImpl(string).date; default: case Qt::TextDate: { - QVector parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + QVector parts = string.splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); if (parts.count() != 4) return QDate(); @@ -5341,7 +5341,7 @@ QT_WARNING_POP return QDateTime(date, time, spec, offset); } case Qt::TextDate: { - QVector parts = string.splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + QVector parts = string.splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); if ((parts.count() < 5) || (parts.count() > 6)) return QDateTime(); diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp index a6775ec2b6..1162fb31e4 100644 --- a/tests/auto/corelib/io/qdir/tst_qdir.cpp +++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp @@ -1786,9 +1786,9 @@ void tst_QDir::searchPaths() { QFETCH(QString, filename); QFETCH(QString, searchPathPrefixes); - QStringList searchPathPrefixList = searchPathPrefixes.split(";", QString::SkipEmptyParts); + QStringList searchPathPrefixList = searchPathPrefixes.split(";", Qt::SkipEmptyParts); QFETCH(QString, searchPaths); - QStringList searchPathsList = searchPaths.split(";", QString::SkipEmptyParts); + QStringList searchPathsList = searchPaths.split(";", Qt::SkipEmptyParts); QFETCH(QString, expectedAbsolutePath); bool exists = !expectedAbsolutePath.isEmpty(); diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index e799369c8a..3de1bef789 100644 --- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -2439,7 +2439,7 @@ void tst_QProcess::finishProcessBeforeReadingDone() QVERIFY(process.waitForStarted()); loop.exec(); QStringList lines = QString::fromLocal8Bit(process.readAllStandardOutput()).split( - QRegExp(QStringLiteral("[\r\n]")), QString::SkipEmptyParts); + QRegExp(QStringLiteral("[\r\n]")), Qt::SkipEmptyParts); QVERIFY(!lines.isEmpty()); QCOMPARE(lines.last(), QStringLiteral("10239 -this is a number")); QCOMPARE(process.exitStatus(), QProcess::NormalExit); @@ -2671,7 +2671,7 @@ void tst_QProcess::finishProcessBeforeReadingDone_deprecated() QVERIFY(process.waitForStarted()); loop.exec(); QStringList lines = QString::fromLocal8Bit(process.readAllStandardOutput()).split( - QRegExp(QStringLiteral("[\r\n]")), QString::SkipEmptyParts); + QRegExp(QStringLiteral("[\r\n]")), Qt::SkipEmptyParts); QVERIFY(!lines.isEmpty()); QCOMPARE(lines.last(), QStringLiteral("10239 -this is a number")); QCOMPARE(process.exitStatus(), QProcess::NormalExit); diff --git a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp index dae4e66106..d0fbdb7a2a 100644 --- a/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp +++ b/tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp @@ -360,7 +360,7 @@ static inline QFileInfo findSh() QLatin1String sh("/sh"); QByteArray pEnv = qgetenv("PATH"); const QLatin1Char pathSep(':'); - const QStringList rawPaths = QString::fromLocal8Bit(pEnv.constData()).split(pathSep, QString::SkipEmptyParts); + const QStringList rawPaths = QString::fromLocal8Bit(pEnv.constData()).split(pathSep, Qt::SkipEmptyParts); foreach (const QString &path, rawPaths) { if (QFile::exists(path + sh)) return path + sh; diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp index fd3cc18af5..4ad09203ac 100644 --- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp +++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp @@ -427,7 +427,7 @@ void tst_QMimeDatabase::listAliases() QFETCH(QString, inputMime); QFETCH(QString, expectedAliases); QMimeDatabase db; - QStringList expectedAliasesList = expectedAliases.split(',', QString::SkipEmptyParts); + QStringList expectedAliasesList = expectedAliases.split(',', Qt::SkipEmptyParts); expectedAliasesList.sort(); QMimeType mime = db.mimeTypeForName(inputMime); QVERIFY(mime.isValid()); @@ -715,7 +715,7 @@ void tst_QMimeDatabase::findByFileName_data() continue; QString string = QString::fromLatin1(line.constData(), len - 1).trimmed(); - QStringList list = string.split(QLatin1Char(' '), QString::SkipEmptyParts); + QStringList list = string.split(QLatin1Char(' '), Qt::SkipEmptyParts); QVERIFY(list.size() >= 2); QString filePath = list.at(0); diff --git a/tests/auto/corelib/text/qstringref/tst_qstringref.cpp b/tests/auto/corelib/text/qstringref/tst_qstringref.cpp index 6f01947131..dcc825942d 100644 --- a/tests/auto/corelib/text/qstringref/tst_qstringref.cpp +++ b/tests/auto/corelib/text/qstringref/tst_qstringref.cpp @@ -2161,18 +2161,18 @@ void tst_QStringRef::split() QVERIFY(list == result); } - list = ref.split(sep, QString::KeepEmptyParts); + list = ref.split(sep, Qt::KeepEmptyParts); QVERIFY(list == result); if (sep.size() == 1) { - list = ref.split(sep.at(0), QString::KeepEmptyParts); + list = ref.split(sep.at(0), Qt::KeepEmptyParts); QVERIFY(list == result); } result.removeAll(""); - list = ref.split(sep, QString::SkipEmptyParts); + list = ref.split(sep, Qt::SkipEmptyParts); QVERIFY(list == result); if (sep.size() == 1) { - list = ref.split(sep.at(0), QString::SkipEmptyParts); + list = ref.split(sep.at(0), Qt::SkipEmptyParts); QVERIFY(list == result); } } diff --git a/tests/auto/corelib/text/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/text/qtextboundaryfinder/tst_qtextboundaryfinder.cpp index a46011ff6c..b4c2657c84 100644 --- a/tests/auto/corelib/text/qtextboundaryfinder/tst_qtextboundaryfinder.cpp +++ b/tests/auto/corelib/text/qtextboundaryfinder/tst_qtextboundaryfinder.cpp @@ -124,7 +124,7 @@ static void generateDataFromFile(const QString &fname) QString testString; QList expectedBreakPositions; - foreach (const QString &part, test.simplified().split(QLatin1Char(' '), QString::SkipEmptyParts)) { + foreach (const QString &part, test.simplified().split(QLatin1Char(' '), Qt::SkipEmptyParts)) { if (part.size() == 1) { if (part.at(0).unicode() == 0xf7) expectedBreakPositions.append(testString.size()); @@ -146,7 +146,7 @@ static void generateDataFromFile(const QString &fname) QVERIFY(!expectedBreakPositions.isEmpty()); if (!comments.isEmpty()) { - const QStringList lst = comments.simplified().split(QLatin1Char(' '), QString::SkipEmptyParts); + const QStringList lst = comments.simplified().split(QLatin1Char(' '), Qt::SkipEmptyParts); comments.clear(); foreach (const QString &part, lst) { if (part.size() == 1) { -- cgit v1.2.3 From 26b1cf2bbaa5a847f8b03137f666b7f32b16d843 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Tue, 25 Feb 2020 17:19:30 +0100 Subject: QMake: Use Qt::SplitBehavior in preference to QString::SplitBehavior The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I3f1b836cfb47bba0fdc27f2c3aa7b0576d123dca Reviewed-by: Lars Knoll --- qmake/generators/makefile.cpp | 2 +- qmake/generators/win32/winmakefile.cpp | 2 +- qmake/library/qmakebuiltins.cpp | 6 +++--- qmake/library/qmakeevaluator.cpp | 4 ++-- qmake/library/qmakeglobals.cpp | 2 +- tests/auto/tools/qmakelib/evaltest.cpp | 2 +- tests/auto/tools/qmakelib/parsertest.cpp | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 8e46da521f..5c61a3c65c 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -1813,7 +1813,7 @@ static QStringList splitDeps(const QString &indeps, bool lineMode) { if (!lineMode) return indeps.simplified().split(' '); - QStringList deps = indeps.split('\n', QString::SkipEmptyParts); + QStringList deps = indeps.split('\n', Qt::SkipEmptyParts); #ifdef Q_OS_WIN for (auto &dep : deps) { if (dep.endsWith(QLatin1Char('\r'))) diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp index 3ec2704625..6cbd20c187 100644 --- a/qmake/generators/win32/winmakefile.cpp +++ b/qmake/generators/win32/winmakefile.cpp @@ -312,7 +312,7 @@ void Win32MakefileGenerator::processRcFileVar() QByteArray rcString; QTextStream ts(&rcString, QFile::WriteOnly); - QStringList vers = project->first("VERSION").toQString().split(".", QString::SkipEmptyParts); + QStringList vers = project->first("VERSION").toQString().split(".", Qt::SkipEmptyParts); for (int i = vers.size(); i < 4; i++) vers += "0"; QString versionString = vers.join('.'); diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp index 7f6926e98e..460720168f 100644 --- a/qmake/library/qmakebuiltins.cpp +++ b/qmake/library/qmakebuiltins.cpp @@ -772,7 +772,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinExpand( const auto vars = values(map(args.at(0))); for (const ProString &var : vars) { // FIXME: this is inconsistent with the "there are no empty strings" dogma. - const auto splits = var.toQStringRef().split(sep, QString::KeepEmptyParts); + const auto splits = var.toQStringRef().split(sep, Qt::KeepEmptyParts); for (const auto &splt : splits) ret << ProString(splt).setSource(var); } @@ -1576,7 +1576,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( if (args.count() == 1) return returnBool(isActiveConfig(args.at(0).toQStringRef())); const auto mutuals = args.at(1).toQStringRef().split(QLatin1Char('|'), - QString::SkipEmptyParts); + Qt::SkipEmptyParts); const ProStringList &configs = values(statics.strCONFIG); for (int i = configs.size() - 1; i >= 0; i--) { @@ -1610,7 +1610,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::evaluateBuiltinConditional( } } else { const auto mutuals = args.at(2).toQStringRef().split(QLatin1Char('|'), - QString::SkipEmptyParts); + Qt::SkipEmptyParts); for (int i = l.size() - 1; i >= 0; i--) { const ProString &val = l[i]; for (int mut = 0; mut < mutuals.count(); mut++) { diff --git a/qmake/library/qmakeevaluator.cpp b/qmake/library/qmakeevaluator.cpp index 70897214b2..e350923e83 100644 --- a/qmake/library/qmakeevaluator.cpp +++ b/qmake/library/qmakeevaluator.cpp @@ -883,7 +883,7 @@ QMakeEvaluator::VisitReturn QMakeEvaluator::visitProVariable( return ReturnTrue; } QChar sep = val.at(1); - auto func = val.split(sep, QString::KeepEmptyParts); + auto func = val.split(sep, Qt::KeepEmptyParts); if (func.count() < 3 || func.count() > 4) { evalError(fL1S("The s/// function expects 3 or 4 arguments.")); return ReturnTrue; @@ -1022,7 +1022,7 @@ static ProString msvcArchitecture(const QString &vcInstallDir, const QString &pa QString vcBinDir = vcInstallDir; if (vcBinDir.endsWith(QLatin1Char('\\'))) vcBinDir.chop(1); - const auto dirs = pathVar.split(QLatin1Char(';'), QString::SkipEmptyParts); + const auto dirs = pathVar.split(QLatin1Char(';'), Qt::SkipEmptyParts); for (const QString &dir : dirs) { if (!dir.startsWith(vcBinDir, Qt::CaseInsensitive)) continue; diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp index 1d76cecc45..471d9071e1 100644 --- a/qmake/library/qmakeglobals.cpp +++ b/qmake/library/qmakeglobals.cpp @@ -260,7 +260,7 @@ QStringList QMakeGlobals::splitPathList(const QString &val) const QStringList ret; if (!val.isEmpty()) { QString cwd(QDir::currentPath()); - const QStringList vals = val.split(dirlist_sep, QString::SkipEmptyParts); + const QStringList vals = val.split(dirlist_sep, Qt::SkipEmptyParts); ret.reserve(vals.length()); for (const QString &it : vals) ret << IoUtils::resolvePath(cwd, it); diff --git a/tests/auto/tools/qmakelib/evaltest.cpp b/tests/auto/tools/qmakelib/evaltest.cpp index 948e2b3121..3a01590707 100644 --- a/tests/auto/tools/qmakelib/evaltest.cpp +++ b/tests/auto/tools/qmakelib/evaltest.cpp @@ -2859,7 +2859,7 @@ void tst_qmakelib::proEval() QString infile = m_indir + "/test.pro"; bool verified = true; QMakeTestHandler handler; - handler.setExpectedMessages(msgs.replace("##:", infile + ':').split('\n', QString::SkipEmptyParts)); + handler.setExpectedMessages(msgs.replace("##:", infile + ':').split('\n', Qt::SkipEmptyParts)); QMakeVfs vfs; ProFileCache cache; QMakeParser parser(&cache, &vfs, &handler); diff --git a/tests/auto/tools/qmakelib/parsertest.cpp b/tests/auto/tools/qmakelib/parsertest.cpp index f736bf38bf..b57ea75c34 100644 --- a/tests/auto/tools/qmakelib/parsertest.cpp +++ b/tests/auto/tools/qmakelib/parsertest.cpp @@ -2028,7 +2028,7 @@ void tst_qmakelib::proParser() bool verified = true; QMakeTestHandler handler; - handler.setExpectedMessages(msgs.split('\n', QString::SkipEmptyParts)); + handler.setExpectedMessages(msgs.split('\n', Qt::SkipEmptyParts)); QMakeVfs vfs; QMakeParser parser(0, &vfs, &handler); ProFile *pro = parser.parsedProBlock(QStringRef(&in), 0, "in", 1, QMakeParser::FullGrammar); -- cgit v1.2.3 From 305ddbeb5ba21e1a976106a2b9fd59252d750c61 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Tue, 25 Feb 2020 17:22:09 +0100 Subject: Use Qt::SplitBehavior in preference to QString::SplitBehavior The Qt version was added in 5.14 "for use as eventual replacement for QString::SplitBehavior." Move another step closer to that goal. Change-Id: I399b5ea56e9255e775ca1746632f7421519a6616 Reviewed-by: Volker Hilsheimer --- src/dbus/qdbusmisc.cpp | 2 +- src/dbus/qdbusxmlgenerator.cpp | 2 +- src/gui/image/qimage.cpp | 2 +- src/gui/kernel/qplatformdialoghelper.cpp | 2 +- src/gui/text/qcssparser.cpp | 2 +- src/network/access/qnetworkreplywasmimpl.cpp | 2 +- src/network/ssl/qsslsocket.cpp | 2 +- src/network/ssl/qsslsocket_openssl.cpp | 2 +- src/network/ssl/qsslsocket_openssl_symbols.cpp | 4 ++-- .../devicediscovery/qdevicediscovery_udev.cpp | 2 +- src/platformsupport/linuxaccessibility/atspiadaptor.cpp | 8 ++++---- .../themes/genericunix/qgenericunixthemes.cpp | 2 +- .../xdgdesktopportal/qxdgdesktopportalfiledialog.cpp | 2 +- src/tools/androiddeployqt/main.cpp | 4 ++-- src/tools/tracegen/provider.cpp | 3 +-- src/widgets/dialogs/qfiledialog.cpp | 2 +- src/widgets/dialogs/qfilesystemmodel.cpp | 2 +- src/widgets/itemviews/qdirmodel.cpp | 2 +- tests/auto/other/lancelot/paintcommands.cpp | 12 ++++++------ tests/auto/other/lancelot/tst_lancelot.cpp | 2 +- tests/auto/other/qaccessibility/tst_qaccessibility.cpp | 2 +- tests/auto/tools/rcc/tst_rcc.cpp | 12 ++++++------ .../widgets/graphicsview/qgraphicsitem/tst_qgraphicsitem.cpp | 2 +- tests/benchmarks/gui/painting/lancebench/tst_lancebench.cpp | 2 +- tests/benchmarks/gui/text/qtext/main.cpp | 2 +- tests/manual/dialogs/filedialogpanel.cpp | 4 ++-- tests/manual/highdpi/dragwidget.cpp | 2 +- tests/manual/lance/main.cpp | 2 +- tests/manual/textrendering/glyphshaping/main.cpp | 2 +- util/accessibilityinspector/accessibilityscenemanager.cpp | 2 +- 30 files changed, 46 insertions(+), 47 deletions(-) diff --git a/src/dbus/qdbusmisc.cpp b/src/dbus/qdbusmisc.cpp index c321b7524d..46cf857751 100644 --- a/src/dbus/qdbusmisc.cpp +++ b/src/dbus/qdbusmisc.cpp @@ -95,7 +95,7 @@ QString qDBusInterfaceFromMetaObject(const QMetaObject *mo) } else { interface.prepend(QLatin1Char('.')).prepend(QCoreApplication::instance()->applicationName()); const QString organizationDomain = QCoreApplication::instance()->organizationDomain(); - const auto domainName = organizationDomain.splitRef(QLatin1Char('.'), QString::SkipEmptyParts); + const auto domainName = organizationDomain.splitRef(QLatin1Char('.'), Qt::SkipEmptyParts); if (domainName.isEmpty()) { interface.prepend(QLatin1String("local.")); } else { diff --git a/src/dbus/qdbusxmlgenerator.cpp b/src/dbus/qdbusxmlgenerator.cpp index 7370ce0de3..f11b71dadf 100644 --- a/src/dbus/qdbusxmlgenerator.cpp +++ b/src/dbus/qdbusxmlgenerator.cpp @@ -285,7 +285,7 @@ QString qDBusGenerateMetaObjectXml(QString interface, const QMetaObject *mo, con interface.prepend(QLatin1Char('.')).prepend(QCoreApplication::instance()->applicationName()); QStringList domainName = QCoreApplication::instance()->organizationDomain().split(QLatin1Char('.'), - QString::SkipEmptyParts); + Qt::SkipEmptyParts); if (domainName.isEmpty()) interface.prepend(QLatin1String("local.")); else diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp index 9a5aefbfed..ec72180f0d 100644 --- a/src/gui/image/qimage.cpp +++ b/src/gui/image/qimage.cpp @@ -2145,7 +2145,7 @@ static QImage convertWithPalette(const QImage &src, QImage::Format format, dest.setColorTable(clut); QString textsKeys = src.text(); - const auto textKeyList = textsKeys.splitRef(QLatin1Char('\n'), QString::SkipEmptyParts); + const auto textKeyList = textsKeys.splitRef(QLatin1Char('\n'), Qt::SkipEmptyParts); for (const auto &textKey : textKeyList) { const auto textKeySplitted = textKey.split(QLatin1String(": ")); dest.setText(textKeySplitted[0].toString(), textKeySplitted[1].toString()); diff --git a/src/gui/kernel/qplatformdialoghelper.cpp b/src/gui/kernel/qplatformdialoghelper.cpp index 15ac4acf91..5face96575 100644 --- a/src/gui/kernel/qplatformdialoghelper.cpp +++ b/src/gui/kernel/qplatformdialoghelper.cpp @@ -788,7 +788,7 @@ QStringList QPlatformFileDialogHelper::cleanFilterList(const QString &filter) filter.indexOf(regexp, 0, &match); if (match.hasMatch()) f = match.captured(2); - return f.split(QLatin1Char(' '), QString::SkipEmptyParts); + return f.split(QLatin1Char(' '), Qt::SkipEmptyParts); #else return QStringList(); #endif diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp index a12eb98528..53d399a4bf 100644 --- a/src/gui/text/qcssparser.cpp +++ b/src/gui/text/qcssparser.cpp @@ -1584,7 +1584,7 @@ QRect Declaration::rectValue() const const QStringList func = v.variant.toStringList(); if (func.count() != 2 || func.at(0).compare(QLatin1String("rect")) != 0) return QRect(); - const auto args = func[1].splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + const auto args = func[1].splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); if (args.count() != 4) return QRect(); QRect rect(args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt()); diff --git a/src/network/access/qnetworkreplywasmimpl.cpp b/src/network/access/qnetworkreplywasmimpl.cpp index f28b8415d1..8c0f9bdf55 100644 --- a/src/network/access/qnetworkreplywasmimpl.cpp +++ b/src/network/access/qnetworkreplywasmimpl.cpp @@ -510,7 +510,7 @@ void QNetworkReplyWasmImplPrivate::headersReceived(const QString &bufferString) Q_Q(QNetworkReplyWasmImpl); if (!bufferString.isEmpty()) { - QStringList headers = bufferString.split(QString::fromUtf8("\r\n"), QString::SkipEmptyParts); + QStringList headers = bufferString.split(QString::fromUtf8("\r\n"), Qt::SkipEmptyParts); for (int i = 0; i < headers.size(); i++) { QString headerName = headers.at(i).split(QString::fromUtf8(": ")).at(0); diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp index 912b30b29b..8f1d5d377d 100644 --- a/src/network/ssl/qsslsocket.cpp +++ b/src/network/ssl/qsslsocket.cpp @@ -1342,7 +1342,7 @@ void QSslSocket::setCiphers(const QString &ciphers) { Q_D(QSslSocket); d->configuration.ciphers.clear(); - const auto cipherNames = ciphers.split(QLatin1Char(':'), QString::SkipEmptyParts); + const auto cipherNames = ciphers.split(QLatin1Char(':'), Qt::SkipEmptyParts); for (const QString &cipherName : cipherNames) { QSslCipher cipher(cipherName); if (!cipher.isNull()) diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index b04aa3bcf2..e197ce6515 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -257,7 +257,7 @@ QSslCipher QSslSocketBackendPrivate::QSslCipher_from_SSL_CIPHER(const SSL_CIPHER char buf [256]; QString descriptionOneLine = QString::fromLatin1(q_SSL_CIPHER_description(cipher, buf, sizeof(buf))); - const auto descriptionList = descriptionOneLine.splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + const auto descriptionList = descriptionOneLine.splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); if (descriptionList.size() > 5) { // ### crude code. ciph.d->isNull = false; diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp index 71a268ae6e..84422e9c8f 100644 --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp @@ -570,7 +570,7 @@ static QStringList libraryPathList() QStringList paths; # ifdef Q_OS_DARWIN paths = QString::fromLatin1(qgetenv("DYLD_LIBRARY_PATH")) - .split(QLatin1Char(':'), QString::SkipEmptyParts); + .split(QLatin1Char(':'), Qt::SkipEmptyParts); // search in .app/Contents/Frameworks UInt32 packageType; @@ -582,7 +582,7 @@ static QStringList libraryPathList() } # else paths = QString::fromLatin1(qgetenv("LD_LIBRARY_PATH")) - .split(QLatin1Char(':'), QString::SkipEmptyParts); + .split(QLatin1Char(':'), Qt::SkipEmptyParts); # endif paths << QLatin1String("/lib") << QLatin1String("/usr/lib") << QLatin1String("/usr/local/lib"); paths << QLatin1String("/lib64") << QLatin1String("/usr/lib64") << QLatin1String("/usr/local/lib64"); diff --git a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp index f601a196ca..478fe61a44 100644 --- a/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp +++ b/src/platformsupport/devicediscovery/qdevicediscovery_udev.cpp @@ -216,7 +216,7 @@ bool QDeviceDiscoveryUDev::checkDeviceType(udev_device *dev) if ((m_types & Device_Keyboard) && (qstrcmp(udev_device_get_property_value(dev, "ID_INPUT_KEYBOARD"), "1") == 0 )) { const QString capabilities_key = QString::fromUtf8(udev_device_get_sysattr_value(dev, "capabilities/key")); - const auto val = capabilities_key.splitRef(QLatin1Char(' '), QString::SkipEmptyParts); + const auto val = capabilities_key.splitRef(QLatin1Char(' '), Qt::SkipEmptyParts); if (!val.isEmpty()) { bool ok; unsigned long long keys = val.last().toULongLong(&ok, 16); diff --git a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp index 012edc82e4..88539b7220 100644 --- a/src/platformsupport/linuxaccessibility/atspiadaptor.cpp +++ b/src/platformsupport/linuxaccessibility/atspiadaptor.cpp @@ -2050,10 +2050,10 @@ QVariantList AtSpiAdaptor::getAttributes(QAccessibleInterface *interface, int of int endOffset; QString joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset); - const QStringList attributes = joined.split (QLatin1Char(';'), QString::SkipEmptyParts, Qt::CaseSensitive); + const QStringList attributes = joined.split (QLatin1Char(';'), Qt::SkipEmptyParts, Qt::CaseSensitive); for (const QString &attr : attributes) { QStringList items; - items = attr.split(QLatin1Char(':'), QString::SkipEmptyParts, Qt::CaseSensitive); + items = attr.split(QLatin1Char(':'), Qt::SkipEmptyParts, Qt::CaseSensitive); AtSpiAttribute attribute = atspiTextAttribute(items[0], items[1]); if (!attribute.isNull()) set[attribute.name] = attribute.value; @@ -2074,10 +2074,10 @@ QVariantList AtSpiAdaptor::getAttributeValue(QAccessibleInterface *interface, in int endOffset; joined = interface->textInterface()->attributes(offset, &startOffset, &endOffset); - const QStringList attributes = joined.split (QLatin1Char(';'), QString::SkipEmptyParts, Qt::CaseSensitive); + const QStringList attributes = joined.split (QLatin1Char(';'), Qt::SkipEmptyParts, Qt::CaseSensitive); for (const QString& attr : attributes) { QStringList items; - items = attr.split(QLatin1Char(':'), QString::SkipEmptyParts, Qt::CaseSensitive); + items = attr.split(QLatin1Char(':'), Qt::SkipEmptyParts, Qt::CaseSensitive); AtSpiAttribute attribute = atspiTextAttribute(items[0], items[1]); if (!attribute.isNull()) map[attribute.name] = attribute.value; diff --git a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp index 36d9e4e065..cb1b39db64 100644 --- a/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp +++ b/src/platformsupport/themes/genericunix/qgenericunixthemes.cpp @@ -641,7 +641,7 @@ QPlatformTheme *QKdeTheme::createKdeTheme() const QString kdeDirsVar = QFile::decodeName(qgetenv("KDEDIRS")); if (!kdeDirsVar.isEmpty()) - kdeDirs += kdeDirsVar.split(QLatin1Char(':'), QString::SkipEmptyParts); + kdeDirs += kdeDirsVar.split(QLatin1Char(':'), Qt::SkipEmptyParts); const QString kdeVersionHomePath = QDir::homePath() + QLatin1String("/.kde") + QLatin1String(kdeVersionBA); if (QFileInfo(kdeVersionHomePath).isDir()) diff --git a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp index dcf52921aa..13c39436ba 100644 --- a/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp +++ b/src/plugins/platformthemes/xdgdesktopportal/qxdgdesktopportalfiledialog.cpp @@ -225,7 +225,7 @@ void QXdgDesktopPortalFileDialog::openPortal() QRegularExpressionMatch match = regexp.match(filter); if (match.hasMatch()) { QString userVisibleName = match.captured(1); - QStringList filterStrings = match.captured(2).split(QLatin1Char(' '), QString::SkipEmptyParts); + QStringList filterStrings = match.captured(2).split(QLatin1Char(' '), Qt::SkipEmptyParts); FilterConditionList filterConditions; for (const QString &filterString : filterStrings) { diff --git a/src/tools/androiddeployqt/main.cpp b/src/tools/androiddeployqt/main.cpp index 3d378024c9..97e5c9eb69 100644 --- a/src/tools/androiddeployqt/main.cpp +++ b/src/tools/androiddeployqt/main.cpp @@ -896,7 +896,7 @@ bool readInputFile(Options *options) { const QJsonValue extraLibs = jsonObject.value(QLatin1String("android-extra-libs")); if (!extraLibs.isUndefined()) - options->extraLibs = extraLibs.toString().split(QLatin1Char(','), QString::SkipEmptyParts); + options->extraLibs = extraLibs.toString().split(QLatin1Char(','), Qt::SkipEmptyParts); } { @@ -980,7 +980,7 @@ bool readInputFile(Options *options) } { const QJsonValue qrcFiles = jsonObject.value(QLatin1String("qrcFiles")); - options->qrcFiles = qrcFiles.toString().split(QLatin1Char(','), QString::SkipEmptyParts); + options->qrcFiles = qrcFiles.toString().split(QLatin1Char(','), Qt::SkipEmptyParts); } options->packageName = packageNameFromAndroidManifest(options->androidSourceDirectory + QLatin1String("/AndroidManifest.xml")); if (options->packageName.isEmpty()) diff --git a/src/tools/tracegen/provider.cpp b/src/tools/tracegen/provider.cpp index 39633efe5d..7dfa6a86d6 100644 --- a/src/tools/tracegen/provider.cpp +++ b/src/tools/tracegen/provider.cpp @@ -296,8 +296,7 @@ Provider parseProvider(const QString &filename) if (tracedef.exactMatch(line)) { const QString name = tracedef.cap(1); const QString argsString = tracedef.cap(2); - const QStringList args = argsString.split(QLatin1Char(','), - QString::SkipEmptyParts); + const QStringList args = argsString.split(QLatin1Char(','), Qt::SkipEmptyParts); provider.tracepoints << parseTracepoint(name, args, filename, lineNumber); } else { diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index 6283e28c0e..add8e6db91 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -4363,7 +4363,7 @@ QStringList QFSCompleter::splitPath(const QString &path) const QRegExp re(QLatin1Char('[') + QRegExp::escape(sep) + QLatin1Char(']')); #if defined(Q_OS_WIN) - QStringList parts = pathCopy.split(re, QString::SkipEmptyParts); + QStringList parts = pathCopy.split(re, Qt::SkipEmptyParts); if (!doubleSlash.isEmpty() && !parts.isEmpty()) parts[0].prepend(doubleSlash); if (pathCopy.endsWith(sep)) diff --git a/src/widgets/dialogs/qfilesystemmodel.cpp b/src/widgets/dialogs/qfilesystemmodel.cpp index d516b1b312..4644f0f04e 100644 --- a/src/widgets/dialogs/qfilesystemmodel.cpp +++ b/src/widgets/dialogs/qfilesystemmodel.cpp @@ -376,7 +376,7 @@ QFileSystemModelPrivate::QFileSystemNode *QFileSystemModelPrivate::node(const QS absolutePath = QDir(longPath).absolutePath(); // ### TODO can we use bool QAbstractFileEngine::caseSensitive() const? - QStringList pathElements = absolutePath.split(QLatin1Char('/'), QString::SkipEmptyParts); + QStringList pathElements = absolutePath.split(QLatin1Char('/'), Qt::SkipEmptyParts); if ((pathElements.isEmpty()) #if !defined(Q_OS_WIN) && QDir::fromNativeSeparators(longPath) != QLatin1String("/") diff --git a/src/widgets/itemviews/qdirmodel.cpp b/src/widgets/itemviews/qdirmodel.cpp index 8d1538a213..6cb0824572 100644 --- a/src/widgets/itemviews/qdirmodel.cpp +++ b/src/widgets/itemviews/qdirmodel.cpp @@ -873,7 +873,7 @@ QModelIndex QDirModel::index(const QString &path, int column) const } #endif - QStringList pathElements = absolutePath.split(QLatin1Char('/'), QString::SkipEmptyParts); + QStringList pathElements = absolutePath.split(QLatin1Char('/'), Qt::SkipEmptyParts); if ((pathElements.isEmpty() || !QFileInfo::exists(path)) #if !defined(Q_OS_WIN) && path != QLatin1String("/") diff --git a/tests/auto/other/lancelot/paintcommands.cpp b/tests/auto/other/lancelot/paintcommands.cpp index 7430c93a8e..c1ff7e7a87 100644 --- a/tests/auto/other/lancelot/paintcommands.cpp +++ b/tests/auto/other/lancelot/paintcommands.cpp @@ -890,7 +890,7 @@ void PaintCommands::command_import(QRegularExpressionMatch re) m_commands[m_currentCommandIndex] = QLatin1String("# import file (") + fileinfo.fileName() + QLatin1String(") start"); QString rawContent = QString::fromUtf8(file->readAll()); - QStringList importedData = rawContent.split('\n', QString::SkipEmptyParts); + QStringList importedData = rawContent.split('\n', Qt::SkipEmptyParts); importedData.append(QLatin1String("# import file (") + fileinfo.fileName() + QLatin1String(") end ---")); insertAt(m_currentCommandIndex, importedData); @@ -1146,7 +1146,7 @@ void PaintCommands::command_drawPolygon(QRegularExpressionMatch re) static QRegularExpression separators("\\s"); QStringList caps = re.capturedTexts(); QString cap = caps.at(1); - QStringList numbers = cap.split(separators, QString::SkipEmptyParts); + QStringList numbers = cap.split(separators, Qt::SkipEmptyParts); QPolygonF array; for (int i=0; i + 1 pattern; for (int i=0; i 1000); - QStringList list = QString::fromUtf8(data.data()).split(QLatin1Char('\n'), QString::SkipEmptyParts); + QStringList list = QString::fromUtf8(data.data()).split(QLatin1Char('\n'), Qt::SkipEmptyParts); QVERIFY(list.count() %2 == 0); // even amount as we have title and then content. for (int i=0; i < list.count(); i+=2) { QTest::newRow(list.at(i).toLatin1()) << list.at(i+1); diff --git a/tests/manual/dialogs/filedialogpanel.cpp b/tests/manual/dialogs/filedialogpanel.cpp index 25c1e44b8c..12b9c6d55e 100644 --- a/tests/manual/dialogs/filedialogpanel.cpp +++ b/tests/manual/dialogs/filedialogpanel.cpp @@ -307,7 +307,7 @@ QFileDialog::Options FileDialogPanel::options() const QStringList FileDialogPanel::allowedSchemes() const { - return m_allowedSchemes->text().simplified().split(' ', QString::SkipEmptyParts); + return m_allowedSchemes->text().simplified().split(' ', Qt::SkipEmptyParts); } void FileDialogPanel::getOpenFileNames() @@ -468,7 +468,7 @@ void FileDialogPanel::applySettings(QFileDialog *d) const if (!file.isEmpty()) d->selectFile(file); const QString filter = m_selectedNameFilter->text().trimmed(); - const QStringList filters = m_nameFilters->toPlainText().trimmed().split(QLatin1Char('\n'), QString::SkipEmptyParts); + const QStringList filters = m_nameFilters->toPlainText().trimmed().split(QLatin1Char('\n'), Qt::SkipEmptyParts); if (!m_useMimeTypeFilters->isChecked()) { d->setNameFilters(filters); if (!filter.isEmpty()) diff --git a/tests/manual/highdpi/dragwidget.cpp b/tests/manual/highdpi/dragwidget.cpp index 8ad3d3ca47..674b2e6a0d 100644 --- a/tests/manual/highdpi/dragwidget.cpp +++ b/tests/manual/highdpi/dragwidget.cpp @@ -110,7 +110,7 @@ void DragWidget::dropEvent(QDropEvent *event) if (event->mimeData()->hasText()) { const QMimeData *mime = event->mimeData(); QStringList pieces = mime->text().split(QRegularExpression("\\s+"), - QString::SkipEmptyParts); + Qt::SkipEmptyParts); QPoint position = event->pos(); QPoint hotSpot; diff --git a/tests/manual/lance/main.cpp b/tests/manual/lance/main.cpp index 6dc5e2076a..c8e79f42f0 100644 --- a/tests/manual/lance/main.cpp +++ b/tests/manual/lance/main.cpp @@ -364,7 +364,7 @@ int main(int argc, char **argv) if (file.open(QIODevice::ReadOnly)) { QTextStream textFile(&file); QString script = textFile.readAll(); - content = script.split("\n", QString::SkipEmptyParts); + content = script.split("\n", Qt::SkipEmptyParts); } else { printf("failed to read file: '%s'\n", qPrintable(fileinfo.absoluteFilePath())); continue; diff --git a/tests/manual/textrendering/glyphshaping/main.cpp b/tests/manual/textrendering/glyphshaping/main.cpp index c1e49b3b7e..6baf611b98 100644 --- a/tests/manual/textrendering/glyphshaping/main.cpp +++ b/tests/manual/textrendering/glyphshaping/main.cpp @@ -54,7 +54,7 @@ struct testDataSet QString charHexCsv2String(const QString &csv) { QString result; - foreach (const QString &charString, csv.split(QLatin1Char(','), QString::SkipEmptyParts)) { + foreach (const QString &charString, csv.split(QLatin1Char(','), Qt::SkipEmptyParts)) { bool isOk; const uint charUInt = charString.toUInt(&isOk, 16); Q_ASSERT(isOk); diff --git a/util/accessibilityinspector/accessibilityscenemanager.cpp b/util/accessibilityinspector/accessibilityscenemanager.cpp index 95dd72b31f..8426b35c42 100644 --- a/util/accessibilityinspector/accessibilityscenemanager.cpp +++ b/util/accessibilityinspector/accessibilityscenemanager.cpp @@ -405,7 +405,7 @@ void AccessibilitySceneManager::addGraphicsItems(AccessibilitySceneManager::Tree QString text; text += item.name + "\n"; text += item.role + "\n"; - text += item.description.split(" ", QString::SkipEmptyParts).join("\n") + "\n"; + text += item.description.split(QLatin1Char(' '), Qt::SkipEmptyParts).join("\n") + "\n"; text += "P:" + QString::number(item.rect.x()) + " " + QString::number(item.rect.y()) + " "; text += "S:" + QString::number(item.rect.width()) + " " + QString::number(item.rect.height()) + "\n"; -- cgit v1.2.3 From b47cf3fe2ddb2fee27d1d30a532f726785c13fd0 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 26 Feb 2020 16:47:31 +0100 Subject: De-inline Qt::SplitBehavior splitters of QString and QStringRef Convert the QString::SplitBehavior variants to call them, rather than the other way round and convert the internal infrastructure to use Qt::SplitBehavior, ready to deprecate the QString::SplitBehavior versions without generating intenal warnings. Task-number: QTBUG-81853 Change-Id: Ia6b78881c3d0e30a7bbd4dfd00cc15a407f448a2 Reviewed-by: Lars Knoll --- src/corelib/text/qstring.cpp | 150 ++++++++++++++++++++++++++++++++++------- src/corelib/text/qstring.h | 38 +++++------ src/corelib/text/qstringlist.h | 17 ----- src/corelib/tools/qvector.h | 18 ----- 4 files changed, 142 insertions(+), 81 deletions(-) diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index a4a79e8318..5c76d3e42b 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Copyright (C) 2018 Intel Corporation. ** Copyright (C) 2019 Mail.ru Group. ** Contact: https://www.qt.io/licensing/ @@ -7725,23 +7725,28 @@ QString QString::number(double n, char f, int prec) namespace { template static ResultList splitString(const StringSource &source, const QChar *sep, - QString::SplitBehavior behavior, Qt::CaseSensitivity cs, const int separatorSize) + Qt::SplitBehavior behavior, Qt::CaseSensitivity cs, const int separatorSize) { ResultList list; typename StringSource::size_type start = 0; typename StringSource::size_type end; typename StringSource::size_type extra = 0; while ((end = QtPrivate::findString(QStringView(source.constData(), source.size()), start + extra, QStringView(sep, separatorSize), cs)) != -1) { - if (start != end || behavior == QString::KeepEmptyParts) + if (start != end || behavior == Qt::KeepEmptyParts) list.append(source.mid(start, end - start)); start = end + separatorSize; extra = (separatorSize == 0 ? 1 : 0); } - if (start != source.size() || behavior == QString::KeepEmptyParts) + if (start != source.size() || behavior == Qt::KeepEmptyParts) list.append(source.mid(start, -1)); return list; } +Qt::SplitBehavior mapSplitBehavior(QString::SplitBehavior sb) +{ + return sb & QString::SkipEmptyParts ? Qt::SkipEmptyParts : Qt::KeepEmptyParts; +} + } // namespace /*! @@ -7771,12 +7776,22 @@ static ResultList splitString(const StringSource &source, const QChar *sep, \snippet qstring/main.cpp 62-slashes \sa QStringList::join(), section() + + \since 5.14 */ -QStringList QString::split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const +QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { return splitString(*this, sep.constData(), behavior, cs, sep.size()); } +/*! + \overload +*/ +QStringList QString::split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const +{ + return split(sep, mapSplitBehavior(behavior), cs); +} + /*! Splits the string into substring references wherever \a sep occurs, and returns the list of those strings. @@ -7787,28 +7802,59 @@ QStringList QString::split(const QString &sep, SplitBehavior behavior, Qt::CaseS \note All references are valid as long this string is alive. Destroying this string will cause all references to be dangling pointers. - \since 5.4 + \since 5.14 \sa QStringRef split() */ +QVector QString::splitRef(const QString &sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs) const +{ + return splitString>(QStringRef(this), sep.constData(), behavior, + cs, sep.size()); +} + +/*! + \overload + \since 5.4 +*/ QVector QString::splitRef(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(QStringRef(this), sep.constData(), behavior, cs, sep.size()); + return splitRef(sep, mapSplitBehavior(behavior), cs); } + /*! \overload + \since 5.14 */ -QStringList QString::split(QChar sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const +QStringList QString::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const { return splitString(*this, &sep, behavior, cs, 1); } +/*! + \overload +*/ +QStringList QString::split(QChar sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const +{ + return split(sep, mapSplitBehavior(behavior), cs); +} + +/*! + \overload + \since 5.14 +*/ +QVector QString::splitRef(QChar sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs) const +{ + return splitString >(QStringRef(this), &sep, behavior, cs, 1); +} + /*! \overload \since 5.4 */ QVector QString::splitRef(QChar sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(QStringRef(this), &sep, behavior, cs, 1); + return splitRef(sep, mapSplitBehavior(behavior), cs); } /*! @@ -7821,11 +7867,29 @@ QVector QString::splitRef(QChar sep, SplitBehavior behavior, Qt::Cas \note All references are valid as long this string is alive. Destroying this string will cause all references to be dangling pointers. + \since 5.14 +*/ +QVector QStringRef::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const +{ + return splitString >(*this, sep.constData(), behavior, cs, sep.size()); +} + +/*! + \overload \since 5.4 */ QVector QStringRef::split(const QString &sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(*this, sep.constData(), behavior, cs, sep.size()); + return split(sep, mapSplitBehavior(behavior), cs); +} + +/*! + \overload + \since 5.14 +*/ +QVector QStringRef::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const +{ + return splitString >(*this, &sep, behavior, cs, 1); } /*! @@ -7834,13 +7898,13 @@ QVector QStringRef::split(const QString &sep, QString::SplitBehavior */ QVector QStringRef::split(QChar sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const { - return splitString >(*this, &sep, behavior, cs, 1); + return split(sep, mapSplitBehavior(behavior), cs); } #ifndef QT_NO_REGEXP namespace { template -static ResultList splitString(const QString &source, MidMethod mid, const QRegExp &rx, QString::SplitBehavior behavior) +static ResultList splitString(const QString &source, MidMethod mid, const QRegExp &rx, Qt::SplitBehavior behavior) { QRegExp rx2(rx); ResultList list; @@ -7849,12 +7913,12 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegEx int end; while ((end = rx2.indexIn(source, start + extra)) != -1) { int matchedLen = rx2.matchedLength(); - if (start != end || behavior == QString::KeepEmptyParts) + if (start != end || behavior == Qt::KeepEmptyParts) list.append((source.*mid)(start, end - start)); start = end + matchedLen; extra = (matchedLen == 0) ? 1 : 0; } - if (start != source.size() || behavior == QString::KeepEmptyParts) + if (start != source.size() || behavior == Qt::KeepEmptyParts) list.append((source.*mid)(start, -1)); return list; } @@ -7862,6 +7926,7 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegEx /*! \overload + \since 5.14 Splits the string into substrings wherever the regular expression \a rx matches, and returns the list of those strings. If \a rx @@ -7886,14 +7951,22 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegEx \sa QStringList::join(), section() */ -QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const +QStringList QString::split(const QRegExp &rx, Qt::SplitBehavior behavior) const { return splitString(*this, &QString::mid, rx, behavior); } /*! \overload - \since 5.4 +*/ +QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const +{ + return split(rx, mapSplitBehavior(behavior)); +} + +/*! + \overload + \since 5.14 Splits the string into substring references wherever the regular expression \a rx matches, and returns the list of those strings. If \a rx @@ -7905,17 +7978,26 @@ QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const \sa QStringRef split() */ -QVector QString::splitRef(const QRegExp &rx, SplitBehavior behavior) const +QVector QString::splitRef(const QRegExp &rx, Qt::SplitBehavior behavior) const { return splitString >(*this, &QString::midRef, rx, behavior); } -#endif + +/*! + \overload + \since 5.4 +*/ +QVector QString::splitRef(const QRegExp &rx, SplitBehavior behavior) const +{ + return splitRef(rx, mapSplitBehavior(behavior)); +} +#endif // QT_NO_REGEXP #if QT_CONFIG(regularexpression) namespace { template static ResultList splitString(const QString &source, MidMethod mid, const QRegularExpression &re, - QString::SplitBehavior behavior) + Qt::SplitBehavior behavior) { ResultList list; if (!re.isValid()) { @@ -7929,12 +8011,12 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegul while (iterator.hasNext()) { QRegularExpressionMatch match = iterator.next(); end = match.capturedStart(); - if (start != end || behavior == QString::KeepEmptyParts) + if (start != end || behavior == Qt::KeepEmptyParts) list.append((source.*mid)(start, end - start)); start = match.capturedEnd(); } - if (start != source.size() || behavior == QString::KeepEmptyParts) + if (start != source.size() || behavior == Qt::KeepEmptyParts) list.append((source.*mid)(start, -1)); return list; @@ -7943,7 +8025,7 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegul /*! \overload - \since 5.0 + \since 5.14 Splits the string into substrings wherever the regular expression \a re matches, and returns the list of those strings. If \a re @@ -7968,14 +8050,23 @@ static ResultList splitString(const QString &source, MidMethod mid, const QRegul \sa QStringList::join(), section() */ -QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior) const +QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behavior) const { return splitString(*this, &QString::mid, re, behavior); } /*! \overload - \since 5.4 + \since 5.0 +*/ +QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior) const +{ + return split(re, mapSplitBehavior(behavior)); +} + +/*! + \overload + \since 5.14 Splits the string into substring references wherever the regular expression \a re matches, and returns the list of those strings. If \a re @@ -7987,10 +8078,19 @@ QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior) \sa split() QStringRef */ -QVector QString::splitRef(const QRegularExpression &re, SplitBehavior behavior) const +QVector QString::splitRef(const QRegularExpression &re, Qt::SplitBehavior behavior) const { return splitString >(*this, &QString::midRef, re, behavior); } + +/*! + \overload + \since 5.4 +*/ +QVector QString::splitRef(const QRegularExpression &re, SplitBehavior behavior) const +{ + return splitRef(re, mapSplitBehavior(behavior)); +} #endif // QT_CONFIG(regularexpression) /*! diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 61325c7486..611fedd529 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -582,7 +582,7 @@ public: { return replace(re, QString()); } #endif - enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; + enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; // ### Qt 6: replace with Qt:: version Q_REQUIRED_RESULT QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; @@ -601,26 +601,22 @@ public: Q_REQUIRED_RESULT QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; #endif -private: - static Q_DECL_CONSTEXPR SplitBehavior _sb(Qt::SplitBehavior sb) Q_DECL_NOTHROW - { return sb & Qt::SkipEmptyParts ? SkipEmptyParts : KeepEmptyParts; } public: - - Q_REQUIRED_RESULT inline QStringList split(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT inline QVector splitRef(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT inline QStringList split(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT inline QVector splitRef(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QStringList split(const QString &sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QVector splitRef(const QString &sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QStringList split(QChar sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QVector splitRef(QChar sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; #ifndef QT_NO_REGEXP - Q_REQUIRED_RESULT inline QStringList split(const QRegExp &sep, Qt::SplitBehavior behavior) const; - Q_REQUIRED_RESULT inline QVector splitRef(const QRegExp &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT QStringList split(const QRegExp &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT QVector splitRef(const QRegExp &sep, Qt::SplitBehavior behavior) const; #endif #ifndef QT_NO_REGULAREXPRESSION - Q_REQUIRED_RESULT inline QStringList split(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; - Q_REQUIRED_RESULT inline QVector splitRef(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT QStringList split(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT QVector splitRef(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; #endif @@ -1624,10 +1620,10 @@ public: Q_REQUIRED_RESULT QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT inline QVector split(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT inline QVector split(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QVector split(const QString &sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QVector split(QChar sep, Qt::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; Q_REQUIRED_RESULT QStringRef left(int n) const; Q_REQUIRED_RESULT QStringRef right(int n) const; diff --git a/src/corelib/text/qstringlist.h b/src/corelib/text/qstringlist.h index a464d443dc..9ea379bb92 100644 --- a/src/corelib/text/qstringlist.h +++ b/src/corelib/text/qstringlist.h @@ -384,23 +384,6 @@ inline int QStringList::lastIndexOf(const QRegularExpression &rx, int from) cons #endif // QT_CONFIG(regularexpression) #endif // Q_QDOC -// -// QString inline functions: -// - -QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return split(sep, _sb(behavior), cs); } -QStringList QString::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return split(sep, _sb(behavior), cs); } -#ifndef QT_NO_REGEXP -QStringList QString::split(const QRegExp &sep, Qt::SplitBehavior behavior) const -{ return split(sep, _sb(behavior)); } -#endif -#if QT_CONFIG(regularexpression) -QStringList QString::split(const QRegularExpression &sep, Qt::SplitBehavior behavior) const -{ return split(sep, _sb(behavior)); } -#endif - QT_END_NAMESPACE #endif // QSTRINGLIST_H diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index b8b9b7da40..288c082c44 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -1133,24 +1133,6 @@ extern template class Q_CORE_EXPORT QVector; QVector QStringView::toUcs4() const { return QtPrivate::convertToUcs4(*this); } -QVector QString::splitRef(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return splitRef(sep, _sb(behavior), cs); } -QVector QString::splitRef(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return splitRef(sep, _sb(behavior), cs); } -#ifndef QT_NO_REGEXP -QVector QString::splitRef(const QRegExp &sep, Qt::SplitBehavior behavior) const -{ return splitRef(sep, _sb(behavior)); } -#endif -#if QT_CONFIG(regularexpression) -QVector QString::splitRef(const QRegularExpression &sep, Qt::SplitBehavior behavior) const -{ return splitRef(sep, _sb(behavior)); } -#endif -QVector QStringRef::split(const QString &sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return split(sep, QString::_sb(behavior), cs); } -QVector QStringRef::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensitivity cs) const -{ return split(sep, QString::_sb(behavior), cs); } - - QT_END_NAMESPACE #endif // QVECTOR_H -- cgit v1.2.3 From 895939c7f91d0c8424a0638c42d05cb42293a142 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Thu, 27 Feb 2020 18:32:02 +0100 Subject: Deprecate QString::SplitBehavior in favor of Qt::SplitBehavior This requires changing which of the two families of methods gets to take a default argument for its behavior. Task-number: QTBUG-81853 Change-Id: I6759bedd9af364d6e12bb39cd539b5dcba37027e Reviewed-by: Lars Knoll --- src/corelib/text/qstring.cpp | 36 +++++++++++++++- src/corelib/text/qstring.h | 99 +++++++++++++++++++++++++++++--------------- 2 files changed, 101 insertions(+), 34 deletions(-) diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp index 5c76d3e42b..a2c603c776 100644 --- a/src/corelib/text/qstring.cpp +++ b/src/corelib/text/qstring.cpp @@ -1779,6 +1779,9 @@ const QString::Null QString::null = { }; /*! \enum QString::SplitBehavior + \obsolete + Use Qt::SplitBehavior instead. + This enum specifies how the split() function should behave with respect to empty strings. @@ -4700,7 +4703,7 @@ int QString::count(const QRegularExpression &re) const QString QString::section(const QString &sep, int start, int end, SectionFlags flags) const { - const QVector sections = splitRef(sep, KeepEmptyParts, + const QVector sections = splitRef(sep, Qt::KeepEmptyParts, (flags & SectionCaseInsensitiveSeps) ? Qt::CaseInsensitive : Qt::CaseSensitive); const int sectionsSize = sections.size(); if (!(flags & SectionSkipEmpty)) { @@ -7742,10 +7745,12 @@ static ResultList splitString(const StringSource &source, const QChar *sep, return list; } +#if QT_DEPRECATED_SINCE(5, 15) Qt::SplitBehavior mapSplitBehavior(QString::SplitBehavior sb) { return sb & QString::SkipEmptyParts ? Qt::SkipEmptyParts : Qt::KeepEmptyParts; } +#endif } // namespace @@ -7784,13 +7789,16 @@ QStringList QString::split(const QString &sep, Qt::SplitBehavior behavior, Qt::C return splitString(*this, sep.constData(), behavior, cs, sep.size()); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload + \obsolete */ QStringList QString::split(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const { return split(sep, mapSplitBehavior(behavior), cs); } +#endif /*! Splits the string into substring references wherever \a sep occurs, and @@ -7812,14 +7820,17 @@ QVector QString::splitRef(const QString &sep, Qt::SplitBehavior beha cs, sep.size()); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload + \obsolete \since 5.4 */ QVector QString::splitRef(const QString &sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const { return splitRef(sep, mapSplitBehavior(behavior), cs); } +#endif /*! \overload @@ -7830,13 +7841,16 @@ QStringList QString::split(QChar sep, Qt::SplitBehavior behavior, Qt::CaseSensit return splitString(*this, &sep, behavior, cs, 1); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload + \obsolete */ QStringList QString::split(QChar sep, SplitBehavior behavior, Qt::CaseSensitivity cs) const { return split(sep, mapSplitBehavior(behavior), cs); } +#endif /*! \overload @@ -7848,6 +7862,7 @@ QVector QString::splitRef(QChar sep, Qt::SplitBehavior behavior, return splitString >(QStringRef(this), &sep, behavior, cs, 1); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.4 @@ -7856,6 +7871,7 @@ QVector QString::splitRef(QChar sep, SplitBehavior behavior, Qt::Cas { return splitRef(sep, mapSplitBehavior(behavior), cs); } +#endif /*! Splits the string into substrings references wherever \a sep occurs, and @@ -7874,14 +7890,17 @@ QVector QStringRef::split(const QString &sep, Qt::SplitBehavior beha return splitString >(*this, sep.constData(), behavior, cs, sep.size()); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.4 + \obsolete */ QVector QStringRef::split(const QString &sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const { return split(sep, mapSplitBehavior(behavior), cs); } +#endif /*! \overload @@ -7892,14 +7911,17 @@ QVector QStringRef::split(QChar sep, Qt::SplitBehavior behavior, Qt: return splitString >(*this, &sep, behavior, cs, 1); } +#if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.4 + \obsolete */ QVector QStringRef::split(QChar sep, QString::SplitBehavior behavior, Qt::CaseSensitivity cs) const { return split(sep, mapSplitBehavior(behavior), cs); } +#endif #ifndef QT_NO_REGEXP namespace { @@ -7956,13 +7978,16 @@ QStringList QString::split(const QRegExp &rx, Qt::SplitBehavior behavior) const return splitString(*this, &QString::mid, rx, behavior); } +# if QT_DEPRECATED_SINCE(5, 15) /*! \overload + \obsolete */ QStringList QString::split(const QRegExp &rx, SplitBehavior behavior) const { return split(rx, mapSplitBehavior(behavior)); } +# endif /*! \overload @@ -7983,14 +8008,17 @@ QVector QString::splitRef(const QRegExp &rx, Qt::SplitBehavior behav return splitString >(*this, &QString::midRef, rx, behavior); } +# if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.4 + \obsolete */ QVector QString::splitRef(const QRegExp &rx, SplitBehavior behavior) const { return splitRef(rx, mapSplitBehavior(behavior)); } +# endif #endif // QT_NO_REGEXP #if QT_CONFIG(regularexpression) @@ -8055,14 +8083,17 @@ QStringList QString::split(const QRegularExpression &re, Qt::SplitBehavior behav return splitString(*this, &QString::mid, re, behavior); } +# if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.0 + \obsolete */ QStringList QString::split(const QRegularExpression &re, SplitBehavior behavior) const { return split(re, mapSplitBehavior(behavior)); } +# endif /*! \overload @@ -8083,14 +8114,17 @@ QVector QString::splitRef(const QRegularExpression &re, Qt::SplitBeh return splitString >(*this, &QString::midRef, re, behavior); } +# if QT_DEPRECATED_SINCE(5, 15) /*! \overload \since 5.4 + \obsolete */ QVector QString::splitRef(const QRegularExpression &re, SplitBehavior behavior) const { return splitRef(re, mapSplitBehavior(behavior)); } +# endif #endif // QT_CONFIG(regularexpression) /*! diff --git a/src/corelib/text/qstring.h b/src/corelib/text/qstring.h index 611fedd529..bfc190e9e9 100644 --- a/src/corelib/text/qstring.h +++ b/src/corelib/text/qstring.h @@ -582,41 +582,68 @@ public: { return replace(re, QString()); } #endif - enum SplitBehavior { KeepEmptyParts, SkipEmptyParts }; // ### Qt 6: replace with Qt:: version +#if QT_DEPRECATED_SINCE(5, 15) + enum SplitBehavior // ### Qt 6: replace with Qt:: version + { + KeepEmptyParts Q_DECL_ENUMERATOR_DEPRECATED, + SkipEmptyParts Q_DECL_ENUMERATOR_DEPRECATED + }; - Q_REQUIRED_RESULT QStringList split(const QString &sep, SplitBehavior behavior = KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector splitRef(const QString &sep, SplitBehavior behavior = KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QStringList split(QChar sep, SplitBehavior behavior = KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector splitRef(QChar sep, SplitBehavior behavior = KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QStringList split(const QString &sep, SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector splitRef(const QString &sep, SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QStringList split(QChar sep, SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector splitRef(QChar sep, SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; #ifndef QT_NO_REGEXP - Q_REQUIRED_RESULT QStringList split(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; - Q_REQUIRED_RESULT QVector splitRef(const QRegExp &sep, SplitBehavior behavior = KeepEmptyParts) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QStringList split(const QRegExp &sep, SplitBehavior behavior) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector splitRef(const QRegExp &sep, SplitBehavior behavior) const; #endif #if QT_CONFIG(regularexpression) - Q_REQUIRED_RESULT QStringList split(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; - Q_REQUIRED_RESULT QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior = KeepEmptyParts) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QStringList split(const QRegularExpression &sep, SplitBehavior behavior) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector splitRef(const QRegularExpression &sep, SplitBehavior behavior) const; #endif +#endif // 5.15 deprecations public: - Q_REQUIRED_RESULT QStringList split(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector splitRef(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QStringList split(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector splitRef(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QStringList split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QVector splitRef(const QString &sep, + Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QStringList split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QVector splitRef(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; #ifndef QT_NO_REGEXP - Q_REQUIRED_RESULT QStringList split(const QRegExp &sep, Qt::SplitBehavior behavior) const; - Q_REQUIRED_RESULT QVector splitRef(const QRegExp &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT + QStringList split(const QRegExp &sep, + Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const; + Q_REQUIRED_RESULT + QVector splitRef(const QRegExp &sep, + Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const; #endif #ifndef QT_NO_REGULAREXPRESSION - Q_REQUIRED_RESULT QStringList split(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; - Q_REQUIRED_RESULT QVector splitRef(const QRegularExpression &sep, Qt::SplitBehavior behavior) const; + Q_REQUIRED_RESULT + QStringList split(const QRegularExpression &sep, + Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const; + Q_REQUIRED_RESULT + QVector splitRef(const QRegularExpression &sep, + Qt::SplitBehavior behavior = Qt::KeepEmptyParts) const; #endif @@ -1615,15 +1642,21 @@ public: int count(QChar c, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; int count(const QStringRef &s, Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector split(const QString &sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector split(QChar sep, QString::SplitBehavior behavior = QString::KeepEmptyParts, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#if QT_DEPRECATED_SINCE(5, 15) + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector split(const QString &sep, QString::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT QT_DEPRECATED_VERSION_X_5_15("Use Qt::SplitBehavior variant instead") + QVector split(QChar sep, QString::SplitBehavior behavior, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; +#endif // 5.15 deprecations - Q_REQUIRED_RESULT QVector split(const QString &sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; - Q_REQUIRED_RESULT QVector split(QChar sep, Qt::SplitBehavior behavior, - Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QVector split(const QString &sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; + Q_REQUIRED_RESULT + QVector split(QChar sep, Qt::SplitBehavior behavior = Qt::KeepEmptyParts, + Qt::CaseSensitivity cs = Qt::CaseSensitive) const; Q_REQUIRED_RESULT QStringRef left(int n) const; Q_REQUIRED_RESULT QStringRef right(int n) const; -- cgit v1.2.3 From ca9de962333085b1cf9a1eedf776b8b6b190adfd Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 28 Feb 2020 14:32:27 +0100 Subject: Avoid using deprecated QTabletEvent::device() method It was renamed to QTabletEvent::deviceType() in 882f340f62b8dc34633f5f296be12243b6e8999d. Change-Id: I070404bfc9a04144ae3565bfa3cc3a016040a07d Reviewed-by: Shawn Rutledge --- src/gui/kernel/qevent.cpp | 8 ++++---- src/widgets/kernel/qwidgetwindow.cpp | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp index 069f4b1a3c..17aa550606 100644 --- a/src/gui/kernel/qevent.cpp +++ b/src/gui/kernel/qevent.cpp @@ -3864,8 +3864,8 @@ static void formatTabletEvent(QDebug d, const QTabletEvent *e) d << eventClassName(type) << '('; QtDebugUtils::formatQEnum(d, type); - d << ", device="; - QtDebugUtils::formatQEnum(d, e->device()); + d << ", deviceType="; + QtDebugUtils::formatQEnum(d, e->deviceType()); d << ", pointerType="; QtDebugUtils::formatQEnum(d, e->pointerType()); d << ", uniqueId=" << e->uniqueId() @@ -3877,9 +3877,9 @@ static void formatTabletEvent(QDebug d, const QTabletEvent *e) QtDebugUtils::formatQFlags(d, e->buttons()); if (type == QEvent::TabletPress || type == QEvent::TabletMove) d << ", pressure=" << e->pressure(); - if (e->device() == QTabletEvent::RotationStylus || e->device() == QTabletEvent::FourDMouse) + if (e->deviceType() == QTabletEvent::RotationStylus || e->deviceType() == QTabletEvent::FourDMouse) d << ", rotation=" << e->rotation(); - if (e->device() == QTabletEvent::Airbrush) + if (e->deviceType() == QTabletEvent::Airbrush) d << ", tangentialPressure=" << e->tangentialPressure(); } diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp index 4ba5469e9d..e82ddbcd20 100644 --- a/src/widgets/kernel/qwidgetwindow.cpp +++ b/src/widgets/kernel/qwidgetwindow.cpp @@ -1073,7 +1073,7 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event) if (widget) { QPointF delta = event->globalPosF() - event->globalPos(); QPointF mapped = widget->mapFromGlobal(event->globalPos()) + delta; - QTabletEvent ev(event->type(), mapped, event->globalPosF(), event->device(), event->pointerType(), + QTabletEvent ev(event->type(), mapped, event->globalPosF(), event->deviceType(), event->pointerType(), event->pressure(), event->xTilt(), event->yTilt(), event->tangentialPressure(), event->rotation(), event->z(), event->modifiers(), event->uniqueId(), event->button(), event->buttons()); ev.setTimestamp(event->timestamp()); -- cgit v1.2.3 From 7e5f38aec667d3fd71efc0d2c586a08c3a87574c Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 4 Feb 2020 11:39:29 +0100 Subject: Android: Add support for getting information about content uris This enables things like size(), exists() to work with Android content uris with the provided uri given from a filedialog. It is expected that it is always a full path due to the nature of content uris, so relative paths will not work. Change-Id: I9c9ea42833677eb9d937b33e9dd42ee2a7d9c7c5 Reviewed-by: Assam Boudjelthia Reviewed-by: BogDan Vatra --- .../src/org/qtproject/qt5/android/QtNative.java | 57 ++++++++++++++++++++++ .../platforms/android/androidcontentfileengine.cpp | 47 +++++++++++++++++- .../platforms/android/androidcontentfileengine.h | 6 +++ 3 files changed, 108 insertions(+), 2 deletions(-) diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 87d326e225..a8bf4c15e1 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -44,6 +44,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.concurrent.Semaphore; +import java.io.IOException; import android.app.Activity; import android.app.Service; @@ -70,6 +71,7 @@ import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.InputDevice; +import android.database.Cursor; import java.lang.reflect.Method; import java.security.KeyStore; @@ -231,6 +233,61 @@ public class QtNative } } + public static long getSize(Context context, String contentUrl) + { + Uri uri = getUriWithValidPermission(context, contentUrl, "r"); + long size = -1; + + if (uri == null) { + Log.e(QtTAG, "getSize(): No permissions to open Uri"); + return size; + } + + try { + ContentResolver resolver = context.getContentResolver(); + Cursor cur = resolver.query(uri, null, null, null, null); + if (cur != null) { + if (cur.moveToFirst()) + size = cur.getLong(5); // size column + cur.close(); + } + return size; + } catch (IllegalArgumentException e) { + Log.e(QtTAG, "getSize(): Invalid Uri"); + return size; + } catch (UnsupportedOperationException e) { + Log.e(QtTAG, "getSize(): Unsupported operation for given Uri"); + return size; + } + } + + public static boolean checkFileExists(Context context, String contentUrl) + { + Uri uri = getUriWithValidPermission(context, contentUrl, "r"); + boolean exists = false; + + if (uri == null) { + Log.e(QtTAG, "checkFileExists(): No permissions to open Uri"); + return exists; + } + + try { + ContentResolver resolver = context.getContentResolver(); + Cursor cur = resolver.query(uri, null, null, null, null); + if (cur != null) { + exists = true; + cur.close(); + } + return exists; + } catch (IllegalArgumentException e) { + Log.e(QtTAG, "checkFileExists(): Invalid Uri"); + return exists; + } catch (UnsupportedOperationException e) { + Log.e(QtTAG, "checkFileExists(): Unsupported operation for given Uri"); + return false; + } + } + // this method loads full path libs public static void loadQtLibraries(final ArrayList libraries) { diff --git a/src/plugins/platforms/android/androidcontentfileengine.cpp b/src/plugins/platforms/android/androidcontentfileengine.cpp index 1444407195..3e3bdc2592 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.cpp +++ b/src/plugins/platforms/android/androidcontentfileengine.cpp @@ -44,9 +44,10 @@ #include -AndroidContentFileEngine::AndroidContentFileEngine(const QString &fileName) - : QFSFileEngine(fileName) +AndroidContentFileEngine::AndroidContentFileEngine(const QString &f) + : m_file(f) { + setFileName(f); } bool AndroidContentFileEngine::open(QIODevice::OpenMode openMode) @@ -78,6 +79,48 @@ bool AndroidContentFileEngine::open(QIODevice::OpenMode openMode) return QFSFileEngine::open(openMode, fd, QFile::AutoCloseHandle); } +qint64 AndroidContentFileEngine::size() const +{ + const jlong size = QJNIObjectPrivate::callStaticMethod( + "org/qtproject/qt5/android/QtNative", "getSize", + "(Landroid/content/Context;Ljava/lang/String;)J", QtAndroidPrivate::context(), + QJNIObjectPrivate::fromString(fileName(DefaultName)).object()); + return (qint64)size; +} + +AndroidContentFileEngine::FileFlags AndroidContentFileEngine::fileFlags(FileFlags type) const +{ + FileFlags commonFlags(ReadOwnerPerm|ReadUserPerm|ReadGroupPerm|ReadOtherPerm|ExistsFlag); + FileFlags flags; + const bool exists = QJNIObjectPrivate::callStaticMethod( + "org/qtproject/qt5/android/QtNative", "checkFileExists", + "(Landroid/content/Context;Ljava/lang/String;)Z", QtAndroidPrivate::context(), + QJNIObjectPrivate::fromString(fileName(DefaultName)).object()); + if (!exists) + return flags; + flags = FileType | commonFlags; + return type & flags; +} + +QString AndroidContentFileEngine::fileName(FileName f) const +{ + switch (f) { + case PathName: + case AbsolutePathName: + case CanonicalPathName: + case DefaultName: + case AbsoluteName: + case CanonicalName: + return m_file; + case BaseName: + { + const int pos = m_file.lastIndexOf(QChar(QLatin1Char('/'))); + return m_file.mid(pos); + } + default: + return QString(); + } +} AndroidContentFileEngineHandler::AndroidContentFileEngineHandler() = default; AndroidContentFileEngineHandler::~AndroidContentFileEngineHandler() = default; diff --git a/src/plugins/platforms/android/androidcontentfileengine.h b/src/plugins/platforms/android/androidcontentfileengine.h index db3def03d6..09e5d77553 100644 --- a/src/plugins/platforms/android/androidcontentfileengine.h +++ b/src/plugins/platforms/android/androidcontentfileengine.h @@ -47,6 +47,12 @@ class AndroidContentFileEngine : public QFSFileEngine public: AndroidContentFileEngine(const QString &fileName); bool open(QIODevice::OpenMode openMode) override; + qint64 size() const override; + FileFlags fileFlags(FileFlags type = FileInfoAll) const override; + QString fileName(FileName file = DefaultName) const override; +private: + QString m_file; + }; class AndroidContentFileEngineHandler : public QAbstractFileEngineHandler -- cgit v1.2.3 From 2090b770daa87039f27c15aad6bdbc42e5fe702c Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Tue, 25 Feb 2020 16:42:15 +0100 Subject: Make QProcess::splitCommand accept QStringView, as per header review A static function that only parses the string to create the list, so no need for a QString overload. Change-Id: I1df297adb795095d6eec94ccfcad52498178a7b1 Reviewed-by: Lars Knoll Reviewed-by: Edward Welbourne --- src/corelib/io/qprocess.cpp | 2 +- src/corelib/io/qprocess.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/corelib/io/qprocess.cpp b/src/corelib/io/qprocess.cpp index 40ef911894..df8b306a8d 100644 --- a/src/corelib/io/qprocess.cpp +++ b/src/corelib/io/qprocess.cpp @@ -2255,7 +2255,7 @@ void QProcessPrivate::start(QIODevice::OpenMode mode) Tokens with spaces can be surrounded by double quotes; three consecutive double quotes represent the quote character itself. */ -QStringList QProcess::splitCommand(const QString &command) +QStringList QProcess::splitCommand(QStringView command) { QStringList args; QString tmp; diff --git a/src/corelib/io/qprocess.h b/src/corelib/io/qprocess.h index 504b4a8061..8c55080252 100644 --- a/src/corelib/io/qprocess.h +++ b/src/corelib/io/qprocess.h @@ -282,7 +282,7 @@ public: static QString nullDevice(); - static QStringList splitCommand(const QString &command); + static QStringList splitCommand(QStringView command); public Q_SLOTS: void terminate(); -- cgit v1.2.3 From a53a52a631a9278d79e0e390c442879b6c27b87a Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Tue, 25 Feb 2020 17:04:23 +0100 Subject: Name method parameters in declaration, even when it's obvious As pointed out during header review. Makes Qt more IDE friendly. Change-Id: Icb610dba39e39ffd6674c79d9c6e087294788489 Reviewed-by: Giuseppe D'Angelo --- src/widgets/widgets/qtabbar.h | 6 +++--- src/widgets/widgets/qtabwidget.h | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/widgets/widgets/qtabbar.h b/src/widgets/widgets/qtabbar.h index c49c12f38c..f3cd914277 100644 --- a/src/widgets/widgets/qtabbar.h +++ b/src/widgets/widgets/qtabbar.h @@ -103,10 +103,10 @@ public: void moveTab(int from, int to); bool isTabEnabled(int index) const; - void setTabEnabled(int index, bool); + void setTabEnabled(int index, bool enabled); bool isTabVisible(int index) const; - void setTabVisible(int index, bool); + void setTabVisible(int index, bool visible); QString tabText(int index) const; void setTabText(int index, const QString &text); @@ -118,7 +118,7 @@ public: void setTabIcon(int index, const QIcon &icon); Qt::TextElideMode elideMode() const; - void setElideMode(Qt::TextElideMode); + void setElideMode(Qt::TextElideMode mode); #ifndef QT_NO_TOOLTIP void setTabToolTip(int index, const QString &tip); diff --git a/src/widgets/widgets/qtabwidget.h b/src/widgets/widgets/qtabwidget.h index e6b3f93303..ceec3f8dd8 100644 --- a/src/widgets/widgets/qtabwidget.h +++ b/src/widgets/widgets/qtabwidget.h @@ -80,13 +80,13 @@ public: void removeTab(int index); bool isTabEnabled(int index) const; - void setTabEnabled(int index, bool); + void setTabEnabled(int index, bool enabled); bool isTabVisible(int index) const; - void setTabVisible(int index, bool); + void setTabVisible(int index, bool visible); QString tabText(int index) const; - void setTabText(int index, const QString &); + void setTabText(int index, const QString &text); QIcon tabIcon(int index) const; void setTabIcon(int index, const QIcon & icon); @@ -110,7 +110,7 @@ public: enum TabPosition { North, South, West, East }; Q_ENUM(TabPosition) TabPosition tabPosition() const; - void setTabPosition(TabPosition); + void setTabPosition(TabPosition position); bool tabsClosable() const; void setTabsClosable(bool closeable); @@ -132,7 +132,7 @@ public: QWidget * cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const; Qt::TextElideMode elideMode() const; - void setElideMode(Qt::TextElideMode); + void setElideMode(Qt::TextElideMode mode); QSize iconSize() const; void setIconSize(const QSize &size); -- cgit v1.2.3 From fbebc93617d99d2bf8fed559f17dba8bed15a063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Fri, 14 Feb 2020 16:41:57 +0100 Subject: Deprecate public bearer classes The WARNING_PUSH/POP in QNetworkProxy is needed because it triggers a warning when compiled which means a warning gets printed under compilation which means tst_bic fails. [ChangeLog][Deprecation Notice][QtNetwork] QNetworkConfigurationManager, QNetworkConfiguration and QNetworkSession are deprecated, to be removed in Qt 6. Change-Id: Ife87722045ea10adf667388a1bf94c4f9bc8d5f0 Reviewed-by: Timur Pocheptsov Reviewed-by: Qt CI Bot --- src/network/bearer/qnetworkconfigmanager.cpp | 1 + src/network/bearer/qnetworkconfigmanager.h | 19 ++++++++++++++++++- src/network/bearer/qnetworkconfiguration.cpp | 1 + src/network/bearer/qnetworkconfiguration.h | 19 ++++++++++++++++++- src/network/bearer/qnetworksession.cpp | 1 + src/network/bearer/qnetworksession.h | 19 ++++++++++++++++++- src/network/configure.json | 2 +- src/network/kernel/qnetworkproxy.h | 6 ++++++ 8 files changed, 64 insertions(+), 4 deletions(-) diff --git a/src/network/bearer/qnetworkconfigmanager.cpp b/src/network/bearer/qnetworkconfigmanager.cpp index 751735c8bd..990f033db4 100644 --- a/src/network/bearer/qnetworkconfigmanager.cpp +++ b/src/network/bearer/qnetworkconfigmanager.cpp @@ -110,6 +110,7 @@ QNetworkConfigurationManagerPrivate *qNetworkConfigurationManagerPrivate() /*! \class QNetworkConfigurationManager + \obsolete \brief The QNetworkConfigurationManager class manages the network configurations provided by the system. diff --git a/src/network/bearer/qnetworkconfigmanager.h b/src/network/bearer/qnetworkconfigmanager.h index e8866999c7..1bd2a4a034 100644 --- a/src/network/bearer/qnetworkconfigmanager.h +++ b/src/network/bearer/qnetworkconfigmanager.h @@ -40,16 +40,31 @@ #ifndef QNETWORKCONFIGMANAGER_H #define QNETWORKCONFIGMANAGER_H +#if 0 +#pragma qt_class(QNetworkConfigurationManager) +#endif + #include #include #include +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED + #ifndef QT_NO_BEARERMANAGEMENT QT_BEGIN_NAMESPACE class QNetworkConfigurationManagerPrivate; -class Q_NETWORK_EXPORT QNetworkConfigurationManager : public QObject +// We work around an issue in ICC where it errors out during compilation of Qt by not marking it +// deprecated if ICC is used +#ifdef Q_CC_INTEL +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC +#else +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC QT_DEPRECATED_VERSION_5_15 +#endif +class QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC Q_NETWORK_EXPORT QNetworkConfigurationManager : public QObject +#undef QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC { Q_OBJECT @@ -97,4 +112,6 @@ QT_END_NAMESPACE #endif // QT_NO_BEARERMANAGEMENT +QT_WARNING_POP + #endif // QNETWORKCONFIGMANAGER_H diff --git a/src/network/bearer/qnetworkconfiguration.cpp b/src/network/bearer/qnetworkconfiguration.cpp index 25c4ab711e..841615db6a 100644 --- a/src/network/bearer/qnetworkconfiguration.cpp +++ b/src/network/bearer/qnetworkconfiguration.cpp @@ -45,6 +45,7 @@ QT_BEGIN_NAMESPACE /*! \class QNetworkConfiguration + \obsolete \brief The QNetworkConfiguration class provides an abstraction of one or more access point configurations. diff --git a/src/network/bearer/qnetworkconfiguration.h b/src/network/bearer/qnetworkconfiguration.h index 048abc2fc8..0469508d9d 100644 --- a/src/network/bearer/qnetworkconfiguration.h +++ b/src/network/bearer/qnetworkconfiguration.h @@ -40,6 +40,10 @@ #ifndef QNETWORKCONFIGURATION_H #define QNETWORKCONFIGURATION_H +#if 0 +#pragma qt_class(QNetworkConfiguration) +#endif + #include #include @@ -47,10 +51,21 @@ #include #include +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED + QT_BEGIN_NAMESPACE class QNetworkConfigurationPrivate; -class Q_NETWORK_EXPORT QNetworkConfiguration +// We work around an issue in ICC where it errors out during compilation of Qt by not marking it +// deprecated if ICC is used +#ifdef Q_CC_INTEL +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC +#else +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC QT_DEPRECATED_VERSION_5_15 +#endif +class QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC Q_NETWORK_EXPORT QNetworkConfiguration +#undef QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC { public: QNetworkConfiguration(); @@ -135,4 +150,6 @@ QT_END_NAMESPACE Q_DECLARE_METATYPE(QNetworkConfiguration) +QT_WARNING_POP + #endif // QNETWORKCONFIGURATION_H diff --git a/src/network/bearer/qnetworksession.cpp b/src/network/bearer/qnetworksession.cpp index 324016d72a..1d055689ab 100644 --- a/src/network/bearer/qnetworksession.cpp +++ b/src/network/bearer/qnetworksession.cpp @@ -59,6 +59,7 @@ QT_BEGIN_NAMESPACE /*! \class QNetworkSession + \obsolete \brief The QNetworkSession class provides control over the system's access points and enables session management for cases when multiple clients access the same access point. diff --git a/src/network/bearer/qnetworksession.h b/src/network/bearer/qnetworksession.h index 1b5ae9098b..37fe7948ad 100644 --- a/src/network/bearer/qnetworksession.h +++ b/src/network/bearer/qnetworksession.h @@ -40,6 +40,10 @@ #ifndef QNETWORKSESSION_H #define QNETWORKSESSION_H +#if 0 +#pragma qt_class(QNetworkSession) +#endif + #include #include #include @@ -47,6 +51,9 @@ #include #include +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED + #ifndef QT_NO_BEARERMANAGEMENT #if defined(Q_OS_WIN) && defined(interface) @@ -57,7 +64,15 @@ QT_BEGIN_NAMESPACE class QNetworkSessionPrivate; -class Q_NETWORK_EXPORT QNetworkSession : public QObject +// We work around an issue in ICC where it errors out during compilation of Qt by not marking it +// deprecated if ICC is used +#ifdef Q_CC_INTEL +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC +#else +#define QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC QT_DEPRECATED_VERSION_5_15 +#endif +class QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC Q_NETWORK_EXPORT QNetworkSession : public QObject +#undef QT_DEPRECATED_VERSION_5_15_BUT_NOT_FOR_ICC { Q_OBJECT @@ -147,4 +162,6 @@ Q_DECLARE_METATYPE(QNetworkSession::UsagePolicies) #endif // QT_NO_BEARERMANAGEMENT +QT_WARNING_POP + #endif // QNETWORKSESSION_H diff --git a/src/network/configure.json b/src/network/configure.json index 496401749f..d3e5009f45 100644 --- a/src/network/configure.json +++ b/src/network/configure.json @@ -387,7 +387,7 @@ "output": [ "publicFeature", "feature" ] }, "bearermanagement": { - "label": "Bearer management", + "label": "Bearer management (deprecated)", "purpose": "Provides bearer management for the network stack.", "section": "Networking", "condition": "features.thread && features.library && features.networkinterface && features.properties", diff --git a/src/network/kernel/qnetworkproxy.h b/src/network/kernel/qnetworkproxy.h index 302a2ce6ca..d267e744e3 100644 --- a/src/network/kernel/qnetworkproxy.h +++ b/src/network/kernel/qnetworkproxy.h @@ -76,6 +76,8 @@ public: explicit QNetworkProxyQuery(quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer); #if !defined(QT_NO_BEARERMANAGEMENT) && QT_DEPRECATED_SINCE(5, 10) +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED Q_DECL_DEPRECATED_X("QNetworkConfiguration support in QNetworkProxy is deprecated") QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, const QUrl &requestUrl, QueryType queryType = UrlRequest); @@ -87,6 +89,7 @@ public: QNetworkProxyQuery(const QNetworkConfiguration &networkConfiguration, quint16 bindPort, const QString &protocolTag = QString(), QueryType queryType = TcpServer); +QT_WARNING_POP #endif QNetworkProxyQuery(const QNetworkProxyQuery &other); QNetworkProxyQuery &operator=(QNetworkProxyQuery &&other) noexcept { swap(other); return *this; } @@ -118,10 +121,13 @@ public: void setUrl(const QUrl &url); #if !defined(QT_NO_BEARERMANAGEMENT) && QT_DEPRECATED_SINCE(5, 10) +QT_WARNING_PUSH +QT_WARNING_DISABLE_DEPRECATED Q_DECL_DEPRECATED_X("QNetworkConfiguration support in QNetworkProxy is deprecated") QNetworkConfiguration networkConfiguration() const; Q_DECL_DEPRECATED_X("QNetworkConfiguration support in QNetworkProxy is deprecated") void setNetworkConfiguration(const QNetworkConfiguration &networkConfiguration); +QT_WARNING_POP #endif private: -- cgit v1.2.3