summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-02-28 08:40:53 +0100
committerLars Knoll <lars.knoll@qt.io>2020-02-28 09:53:26 +0100
commit60f12c58a0aea6f2e9c688509d9f0afa87c8d76d (patch)
tree42bad03777b6446f6887cae3ba3f1d1ff3f160d8
parent1ba46c9b632731d7d7e791de2b203d0d933245b9 (diff)
parenta450cce6b670dbcac84fcc4a66fc632b31ce8414 (diff)
Merge "Merge remote-tracking branch 'origin/5.15' into dev"
-rw-r--r--examples/embedded/flightinfo/flightinfo.cpp2
-rw-r--r--examples/embedded/lightmaps/slippymap.cpp2
-rw-r--r--examples/network/blockingfortuneclient/fortunethread.cpp4
-rw-r--r--examples/network/doc/src/fortuneclient.qdoc6
-rw-r--r--examples/network/download/main.cpp2
-rw-r--r--examples/network/downloadmanager/downloadmanager.cpp2
-rw-r--r--examples/network/fortuneclient/client.cpp2
-rw-r--r--examples/network/googlesuggest/googlesuggest.cpp2
-rw-r--r--examples/network/http/CMakeLists.txt10
-rw-r--r--examples/network/http/http.pro4
-rw-r--r--examples/network/http/httpwindow.cpp2
-rw-r--r--examples/network/http/main.cpp21
-rw-r--r--examples/network/loopback/dialog.cpp5
-rw-r--r--examples/network/network-chat/client.cpp3
-rw-r--r--examples/network/threadedfortuneserver/fortunethread.cpp2
-rw-r--r--examples/network/torrent/peerwireclient.cpp4
-rw-r--r--examples/network/torrent/torrentclient.cpp4
-rw-r--r--examples/network/torrent/torrentserver.cpp2
-rw-r--r--examples/network/torrent/trackerclient.cpp4
-rw-r--r--mkspecs/common/g++-win32.conf2
-rw-r--r--mkspecs/features/qt_build_config.prf5
-rw-r--r--mkspecs/features/qt_helper_lib.prf2
-rw-r--r--src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp11
-rw-r--r--src/corelib/itemmodels/qconcatenatetablesproxymodel.h1
-rw-r--r--src/corelib/kernel/qobjectdefs_impl.h4
-rw-r--r--src/corelib/mimetypes/qmimeprovider_p.h2
-rw-r--r--src/corelib/serialization/qxmlstream.cpp36
-rw-r--r--src/corelib/serialization/qxmlstream.g14
-rw-r--r--src/corelib/serialization/qxmlstream.h2
-rw-r--r--src/corelib/serialization/qxmlstream_p.h14
-rw-r--r--src/corelib/thread/qrunnable.cpp12
-rw-r--r--src/corelib/thread/qrunnable.h2
-rw-r--r--src/corelib/thread/qthreadpool.cpp20
-rw-r--r--src/corelib/thread/qthreadpool.h4
-rw-r--r--src/corelib/time/qdatetimeparser.cpp8
-rw-r--r--src/corelib/tools/qhash.h52
-rw-r--r--src/gui/kernel/qscreen.cpp2
-rw-r--r--src/gui/kernel/qscreen.h2
-rw-r--r--src/gui/text/qfontengine.cpp3
-rw-r--r--src/gui/text/qtextengine.cpp3
-rw-r--r--src/network/access/qftp.cpp6
-rw-r--r--src/network/access/qhttpnetworkconnectionchannel.cpp2
-rw-r--r--src/network/access/qhttpprotocolhandler.cpp2
-rw-r--r--src/network/access/qnetworkaccessdebugpipebackend.cpp6
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp2
-rw-r--r--src/network/access/qnetworkreply.cpp23
-rw-r--r--src/network/access/qnetworkreply.h7
-rw-r--r--src/network/access/qnetworkrequest.cpp2
-rw-r--r--src/network/socket/qabstractsocket.cpp63
-rw-r--r--src/network/socket/qabstractsocket.h11
-rw-r--r--src/network/socket/qhttpsocketengine.cpp15
-rw-r--r--src/network/socket/qlocalsocket.h4
-rw-r--r--src/network/socket/qlocalsocket_p.h4
-rw-r--r--src/network/socket/qlocalsocket_tcp.cpp6
-rw-r--r--src/network/socket/qlocalsocket_unix.cpp8
-rw-r--r--src/network/socket/qsocks5socketengine.cpp30
-rw-r--r--src/network/socket/qsocks5socketengine_p.h4
-rw-r--r--src/network/ssl/qdtls_openssl.cpp2
-rw-r--r--src/network/ssl/qsslsocket.cpp10
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp2
-rw-r--r--src/network/ssl/qsslsocket_schannel.cpp4
-rw-r--r--src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp3
-rw-r--r--src/plugins/platforms/wasm/qwasmbackingstore.cpp27
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.cpp7
-rw-r--r--src/plugins/platforms/wasm/qwasmcompositor.h5
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.cpp5
-rw-r--r--src/plugins/platforms/wasm/qwasmintegration.h1
-rw-r--r--src/sql/doc/src/sql-driver.qdoc14
-rw-r--r--src/widgets/dialogs/qfiledialog.cpp10
-rw-r--r--src/widgets/dialogs/qwizard.cpp12
-rw-r--r--src/widgets/dialogs/qwizard.h5
-rw-r--r--src/widgets/kernel/qshortcut.h10
-rw-r--r--src/widgets/kernel/qwidget.cpp2
-rw-r--r--src/widgets/widgets/qcombobox.cpp2
-rw-r--r--src/widgets/widgets/qcombobox.h7
-rw-r--r--src/widgets/widgets/qdatetimeedit.cpp31
-rw-r--r--src/widgets/widgets/qdockwidget.h5
-rw-r--r--src/widgets/widgets/qlcdnumber.cpp2
-rw-r--r--src/widgets/widgets/qlineedit.cpp28
-rw-r--r--src/widgets/widgets/qstatusbar.h1
-rw-r--r--tests/auto/corelib/io/qsettings/tst_qsettings.cpp5
-rw-r--r--tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp23
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp6
-rw-r--r--tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp44
-rw-r--r--tests/auto/gui/image/qimagereader/tst_qimagereader.cpp2
-rw-r--r--tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp24
-rw-r--r--tests/auto/network-settings.h2
-rw-r--r--tests/auto/network/access/http2/tst_http2.cpp20
-rw-r--r--tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp10
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp335
-rw-r--r--tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp4
-rw-r--r--tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp10
-rw-r--r--tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp64
-rw-r--r--tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp18
-rw-r--r--tests/auto/network/ssl/qocsp/tst_qocsp.cpp4
-rw-r--r--tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp72
-rw-r--r--tests/auto/other/networkselftest/tst_networkselftest.cpp4
-rw-r--r--tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp30
-rw-r--r--tests/auto/widgets/kernel/qwidget/BLACKLIST5
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp12
-rw-r--r--tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp231
-rw-r--r--tests/auto/xml/sax/qxmlinputsource/tst_qxmlinputsource.cpp2
-rw-r--r--tests/baselineserver/shared/baselineprotocol.cpp2
-rw-r--r--tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp22
-rw-r--r--tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/fromcbor.pro10
-rw-r--r--tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/main.cpp34
-rw-r--r--tests/manual/bearerex/datatransferer.cpp2
107 files changed, 1109 insertions, 562 deletions
diff --git a/examples/embedded/flightinfo/flightinfo.cpp b/examples/embedded/flightinfo/flightinfo.cpp
index a20a03de43..f7df368dd7 100644
--- a/examples/embedded/flightinfo/flightinfo.cpp
+++ b/examples/embedded/flightinfo/flightinfo.cpp
@@ -144,7 +144,7 @@ public:
private slots:
void handleNetworkData(QNetworkReply *networkReply) {
- if (!networkReply->networkError()) {
+ if (!networkReply->error()) {
if (!mapReplies.contains(networkReply)) {
// Assume UTF-8 encoded
QByteArray data = networkReply->readAll();
diff --git a/examples/embedded/lightmaps/slippymap.cpp b/examples/embedded/lightmaps/slippymap.cpp
index dfc21862fb..da003981ff 100644
--- a/examples/embedded/lightmaps/slippymap.cpp
+++ b/examples/embedded/lightmaps/slippymap.cpp
@@ -162,7 +162,7 @@ void SlippyMap::handleNetworkData(QNetworkReply *reply)
{
QImage img;
QPoint tp = reply->request().attribute(QNetworkRequest::User).toPoint();
- if (!reply->networkError())
+ if (!reply->error())
if (!img.load(reply, 0))
img = QImage();
reply->deleteLater();
diff --git a/examples/network/blockingfortuneclient/fortunethread.cpp b/examples/network/blockingfortuneclient/fortunethread.cpp
index 24801436df..67ac7ebfa5 100644
--- a/examples/network/blockingfortuneclient/fortunethread.cpp
+++ b/examples/network/blockingfortuneclient/fortunethread.cpp
@@ -103,7 +103,7 @@ void FortuneThread::run()
//! [6] //! [8]
if (!socket.waitForConnected(Timeout)) {
- emit error(socket.socketError(), socket.errorString());
+ emit error(socket.error(), socket.errorString());
return;
}
//! [8] //! [11]
@@ -115,7 +115,7 @@ void FortuneThread::run()
do {
if (!socket.waitForReadyRead(Timeout)) {
- emit error(socket.socketError(), socket.errorString());
+ emit error(socket.error(), socket.errorString());
return;
}
diff --git a/examples/network/doc/src/fortuneclient.qdoc b/examples/network/doc/src/fortuneclient.qdoc
index 544fa156b7..4cb7544fc0 100644
--- a/examples/network/doc/src/fortuneclient.qdoc
+++ b/examples/network/doc/src/fortuneclient.qdoc
@@ -89,7 +89,7 @@
The only QTcpSocket signals we need in this example are
QTcpSocket::readyRead(), signifying that data has been received, and
- QTcpSocket::error(), which we will use to catch any connection errors:
+ QTcpSocket::errorOccurred(), which we will use to catch any connection errors:
\dots
\snippet fortuneclient/client.cpp 3
@@ -118,11 +118,11 @@
\li \e{An error occurs.} We need to inform the user if the connection
failed or was broken. In this case, QTcpSocket will emit
- \l{QTcpSocket::error()}{error()}, and \c Client::displayError() will be
+ \l{QTcpSocket::errorOccurred()}{errorOccurred()}, and \c Client::displayError() will be
called.
\endlist
- Let's go through the \l{QTcpSocket::error()}{error()} case first:
+ Let's go through the \l{QTcpSocket::errorOccurred()}{errorOccurred()} case first:
\snippet fortuneclient/client.cpp 13
diff --git a/examples/network/download/main.cpp b/examples/network/download/main.cpp
index f496c1723e..076dfdfd0b 100644
--- a/examples/network/download/main.cpp
+++ b/examples/network/download/main.cpp
@@ -175,7 +175,7 @@ void DownloadManager::sslErrors(const QList<QSslError> &sslErrors)
void DownloadManager::downloadFinished(QNetworkReply *reply)
{
QUrl url = reply->url();
- if (reply->networkError()) {
+ if (reply->error()) {
fprintf(stderr, "Download of %s failed: %s\n",
url.toEncoded().constData(),
qPrintable(reply->errorString()));
diff --git a/examples/network/downloadmanager/downloadmanager.cpp b/examples/network/downloadmanager/downloadmanager.cpp
index eceb48977b..cbad29541a 100644
--- a/examples/network/downloadmanager/downloadmanager.cpp
+++ b/examples/network/downloadmanager/downloadmanager.cpp
@@ -162,7 +162,7 @@ void DownloadManager::downloadFinished()
progressBar.clear();
output.close();
- if (currentDownload->networkError()) {
+ if (currentDownload->error()) {
// download failed
fprintf(stderr, "Failed: %s\n", qPrintable(currentDownload->errorString()));
output.remove();
diff --git a/examples/network/fortuneclient/client.cpp b/examples/network/fortuneclient/client.cpp
index 0ccbf51df8..2daac33c2b 100644
--- a/examples/network/fortuneclient/client.cpp
+++ b/examples/network/fortuneclient/client.cpp
@@ -121,7 +121,7 @@ Client::Client(QWidget *parent)
//! [2] //! [3]
connect(tcpSocket, &QIODevice::readyRead, this, &Client::readFortune);
//! [2] //! [4]
- connect(tcpSocket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),
+ connect(tcpSocket, &QAbstractSocket::errorOccurred,
//! [3]
this, &Client::displayError);
//! [4]
diff --git a/examples/network/googlesuggest/googlesuggest.cpp b/examples/network/googlesuggest/googlesuggest.cpp
index 1ae515f530..2cba43178e 100644
--- a/examples/network/googlesuggest/googlesuggest.cpp
+++ b/examples/network/googlesuggest/googlesuggest.cpp
@@ -209,7 +209,7 @@ void GSuggestCompletion::preventSuggest()
void GSuggestCompletion::handleNetworkData(QNetworkReply *networkReply)
{
QUrl url = networkReply->url();
- if (networkReply->networkError() == QNetworkReply::NoError) {
+ if (networkReply->error() == QNetworkReply::NoError) {
QVector<QString> choices;
QByteArray response(networkReply->readAll());
diff --git a/examples/network/http/CMakeLists.txt b/examples/network/http/CMakeLists.txt
index 3ce82d63da..d9f50f5c9d 100644
--- a/examples/network/http/CMakeLists.txt
+++ b/examples/network/http/CMakeLists.txt
@@ -28,6 +28,16 @@ target_link_libraries(http PUBLIC
Qt::Widgets
)
+if(ANDROID AND TARGET Qt::AndroidExtras)
+ target_compile_definitions(http PUBLIC
+ REQUEST_PERMISSIONS_ON_ANDROID
+ )
+
+ target_link_libraries(http PUBLIC
+ Qt::AndroidExtras
+ )
+endif()
+
install(TARGETS http
RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}"
BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}"
diff --git a/examples/network/http/http.pro b/examples/network/http/http.pro
index 2f2d3b00ae..f67cd01495 100644
--- a/examples/network/http/http.pro
+++ b/examples/network/http/http.pro
@@ -1,4 +1,8 @@
QT += network widgets
+android: qtHaveModule(androidextras) {
+ QT += androidextras
+ DEFINES += REQUEST_PERMISSIONS_ON_ANDROID
+}
HEADERS += httpwindow.h
SOURCES += httpwindow.cpp \
diff --git a/examples/network/http/httpwindow.cpp b/examples/network/http/httpwindow.cpp
index d0eb2529cd..c7bf0c0dff 100644
--- a/examples/network/http/httpwindow.cpp
+++ b/examples/network/http/httpwindow.cpp
@@ -249,7 +249,7 @@ void HttpWindow::httpFinished()
return;
}
- if (reply->networkError()) {
+ if (reply->error()) {
QFile::remove(fi.absoluteFilePath());
statusLabel->setText(tr("Download failed:\n%1.").arg(reply->errorString()));
downloadButton->setEnabled(true);
diff --git a/examples/network/http/main.cpp b/examples/network/http/main.cpp
index f126c7846a..1339f2f693 100644
--- a/examples/network/http/main.cpp
+++ b/examples/network/http/main.cpp
@@ -53,11 +53,30 @@
#include <QScreen>
#include "httpwindow.h"
+#ifdef REQUEST_PERMISSIONS_ON_ANDROID
+#include <QtAndroid>
+
+bool requestStoragePermission() {
+ using namespace QtAndroid;
+
+ QString permission = QStringLiteral("android.permission.WRITE_EXTERNAL_STORAGE");
+ const QHash<QString, PermissionResult> results = requestPermissionsSync(QStringList({permission}));
+ if (!results.contains(permission) || results[permission] == PermissionResult::Denied) {
+ qWarning() << "Couldn't get permission: " << permission;
+ return false;
+ }
+
+ return true;
+}
+#endif
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
-
+#ifdef REQUEST_PERMISSIONS_ON_ANDROID
+ if (!requestStoragePermission())
+ return -1;
+#endif
HttpWindow httpWin;
const QRect availableSize = httpWin.screen()->availableGeometry();
httpWin.resize(availableSize.width() / 5, availableSize.height() / 5);
diff --git a/examples/network/loopback/dialog.cpp b/examples/network/loopback/dialog.cpp
index d87f024031..4037f4c085 100644
--- a/examples/network/loopback/dialog.cpp
+++ b/examples/network/loopback/dialog.cpp
@@ -78,7 +78,7 @@ Dialog::Dialog(QWidget *parent)
connect(&tcpClient, &QAbstractSocket::connected, this, &Dialog::startTransfer);
connect(&tcpClient, &QIODevice::bytesWritten,
this, &Dialog::updateClientProgress);
- connect(&tcpClient, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),
+ connect(&tcpClient, &QAbstractSocket::errorOccurred,
this, &Dialog::displayError);
QVBoxLayout *mainLayout = new QVBoxLayout;
@@ -131,8 +131,7 @@ void Dialog::acceptConnection()
connect(tcpServerConnection, &QIODevice::readyRead,
this, &Dialog::updateServerProgress);
- connect(tcpServerConnection,
- QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),
+ connect(tcpServerConnection, &QAbstractSocket::errorOccurred,
this, &Dialog::displayError);
connect(tcpServerConnection, &QTcpSocket::disconnected,
tcpServerConnection, &QTcpSocket::deleteLater);
diff --git a/examples/network/network-chat/client.cpp b/examples/network/network-chat/client.cpp
index d451181813..fe35d535f4 100644
--- a/examples/network/network-chat/client.cpp
+++ b/examples/network/network-chat/client.cpp
@@ -102,8 +102,7 @@ void Client::newConnection(Connection *connection)
{
connection->setGreetingMessage(peerManager->userName());
- connect(connection, QOverload<QAbstractSocket::SocketError>::of(&Connection::error),
- this, &Client::connectionError);
+ connect(connection, &Connection::errorOccurred, this, &Client::connectionError);
connect(connection, &Connection::disconnected, this, &Client::disconnected);
connect(connection, &Connection::readyForUse, this, &Client::readyForUse);
}
diff --git a/examples/network/threadedfortuneserver/fortunethread.cpp b/examples/network/threadedfortuneserver/fortunethread.cpp
index 2e730c6c8f..ddde5121a3 100644
--- a/examples/network/threadedfortuneserver/fortunethread.cpp
+++ b/examples/network/threadedfortuneserver/fortunethread.cpp
@@ -65,7 +65,7 @@ void FortuneThread::run()
QTcpSocket tcpSocket;
//! [1] //! [2]
if (!tcpSocket.setSocketDescriptor(socketDescriptor)) {
- emit error(tcpSocket.socketError());
+ emit error(tcpSocket.error());
return;
}
//! [2] //! [3]
diff --git a/examples/network/torrent/peerwireclient.cpp b/examples/network/torrent/peerwireclient.cpp
index cea4ef53fa..c30abd0e13 100644
--- a/examples/network/torrent/peerwireclient.cpp
+++ b/examples/network/torrent/peerwireclient.cpp
@@ -107,8 +107,8 @@ PeerWireClient::PeerWireClient(const QByteArray &peerId, QObject *parent)
this, &PeerWireClient::readyRead);
connect(&socket, &QTcpSocket::disconnected,
this, &PeerWireClient::disconnected);
- connect(&socket, QOverload<QAbstractSocket::SocketError>::of(&QTcpSocket::error),
- this, QOverload<QAbstractSocket::SocketError>::of(&PeerWireClient::error));
+ connect(&socket, &QTcpSocket::errorOccurred,
+ this, &PeerWireClient::errorOccurred);
connect(&socket, &QTcpSocket::bytesWritten,
this, &PeerWireClient::bytesWritten);
connect(&socket, &QTcpSocket::stateChanged,
diff --git a/examples/network/torrent/torrentclient.cpp b/examples/network/torrent/torrentclient.cpp
index 00f46df892..2ba4476861 100644
--- a/examples/network/torrent/torrentclient.cpp
+++ b/examples/network/torrent/torrentclient.cpp
@@ -843,7 +843,7 @@ void TorrentClient::initializeConnection(PeerWireClient *client)
this, &TorrentClient::setupOutgoingConnection);
connect(client, &PeerWireClient::disconnected,
this, &TorrentClient::removeClient);
- connect(client, QOverload<QAbstractSocket::SocketError>::of(&PeerWireClient::error),
+ connect(client, &PeerWireClient::errorOccurred,
this, &TorrentClient::removeClient);
connect(client, &PeerWireClient::piecesAvailable,
this, &TorrentClient::peerPiecesAvailable);
@@ -867,7 +867,7 @@ void TorrentClient::removeClient()
// Remove the host from our list of known peers if the connection
// failed.
- if (client->peer() && client->socketError() == QAbstractSocket::ConnectionRefusedError)
+ if (client->peer() && client->error() == QAbstractSocket::ConnectionRefusedError)
d->peers.removeAll(client->peer());
// Remove the client from RateController and all structures.
diff --git a/examples/network/torrent/torrentserver.cpp b/examples/network/torrent/torrentserver.cpp
index 215498194b..7af958c27c 100644
--- a/examples/network/torrent/torrentserver.cpp
+++ b/examples/network/torrent/torrentserver.cpp
@@ -80,7 +80,7 @@ void TorrentServer::incomingConnection(qintptr socketDescriptor)
if (ConnectionManager::instance()->canAddConnection() && !clients.isEmpty()) {
connect(client, &PeerWireClient::infoHashReceived,
this, &TorrentServer::processInfoHash);
- connect(client, QOverload<QAbstractSocket::SocketError>::of(&PeerWireClient::error),
+ connect(client, &PeerWireClient::errorOccurred,
this, QOverload<>::of(&TorrentServer::removeClient));
RateController::instance()->addSocket(client);
ConnectionManager::instance()->addConnection(client);
diff --git a/examples/network/torrent/trackerclient.cpp b/examples/network/torrent/trackerclient.cpp
index a50a49fd64..264a6cc04c 100644
--- a/examples/network/torrent/trackerclient.cpp
+++ b/examples/network/torrent/trackerclient.cpp
@@ -165,8 +165,8 @@ void TrackerClient::httpRequestDone(QNetworkReply *reply)
return;
}
- if (reply->networkError() != QNetworkReply::NoError) {
- emit connectionError(reply->networkError());
+ if (reply->error() != QNetworkReply::NoError) {
+ emit connectionError(reply->error());
return;
}
diff --git a/mkspecs/common/g++-win32.conf b/mkspecs/common/g++-win32.conf
index 6369436863..c3a1f3a373 100644
--- a/mkspecs/common/g++-win32.conf
+++ b/mkspecs/common/g++-win32.conf
@@ -17,7 +17,7 @@ include(g++-base.conf)
MAKEFILE_GENERATOR = MINGW
QMAKE_PLATFORM = win32 mingw
-CONFIG += precompile_header
+CONFIG += debug_and_release debug_and_release_target precompile_header
DEFINES += UNICODE _UNICODE WIN32 MINGW_HAS_SECURE_API=1
QMAKE_COMPILER_DEFINES += __GNUC__ _WIN32
# can't add 'DEFINES += WIN64' and 'QMAKE_COMPILER_DEFINES += _WIN64' defines for
diff --git a/mkspecs/features/qt_build_config.prf b/mkspecs/features/qt_build_config.prf
index 9aa0a4aadc..7ca9943c32 100644
--- a/mkspecs/features/qt_build_config.prf
+++ b/mkspecs/features/qt_build_config.prf
@@ -91,10 +91,13 @@ android|uikit|winrt: \
# Prevent warnings about object files without any symbols
macos: CONFIG += no_warn_empty_obj_files
+# Make sure the doc features are loaded last since they depend on other
+# features setting up things like includepaths to find everything.
+CONFIG = prepare_docs qt_docs_targets $$CONFIG
+
CONFIG += \
utf8_source \
create_prl link_prl \
- prepare_docs qt_docs_targets \
no_private_qt_headers_warning QTDIR_build \
qt_example_installs \
# Qt modules get compiled without exceptions enabled by default.
diff --git a/mkspecs/features/qt_helper_lib.prf b/mkspecs/features/qt_helper_lib.prf
index 216c24c7aa..8a9672e603 100644
--- a/mkspecs/features/qt_helper_lib.prf
+++ b/mkspecs/features/qt_helper_lib.prf
@@ -60,7 +60,7 @@ win32|CONFIG(static, static|shared) {
"QMAKE_DEFINES_$${ucmodule} = $$val_escape(MODULE_DEFINES)"
android {
MODULE_PRI_CONT += "QMAKE_LIBS_$${ucmodule} ="
- } else: debug_and_release {
+ } else: qtConfig(debug_and_release): {
win32: \
MODULE_DEBUG_LIBS = $$DESTDIR/$$prefix$${TARGET}d.$$suffix
else: darwin: \
diff --git a/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp b/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp
index 3afa132483..a2597faa93 100644
--- a/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp
+++ b/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp
@@ -448,6 +448,17 @@ QSize QConcatenateTablesProxyModel::span(const QModelIndex &index) const
}
/*!
+ Returns a list of models that were added as source models for this proxy model.
+
+ \since 5.15
+*/
+QList<QAbstractItemModel *> QConcatenateTablesProxyModel::sourceModels() const
+{
+ Q_D(const QConcatenateTablesProxyModel);
+ return d->m_models.toList();
+}
+
+/*!
Adds a source model \a sourceModel, below all previously added source models.
The ownership of \a sourceModel is not affected by this.
diff --git a/src/corelib/itemmodels/qconcatenatetablesproxymodel.h b/src/corelib/itemmodels/qconcatenatetablesproxymodel.h
index 69b3a2ba09..1fa84d5f51 100644
--- a/src/corelib/itemmodels/qconcatenatetablesproxymodel.h
+++ b/src/corelib/itemmodels/qconcatenatetablesproxymodel.h
@@ -56,6 +56,7 @@ public:
explicit QConcatenateTablesProxyModel(QObject *parent = nullptr);
~QConcatenateTablesProxyModel();
+ QList<QAbstractItemModel *> sourceModels() const;
Q_SCRIPTABLE void addSourceModel(QAbstractItemModel *sourceModel);
Q_SCRIPTABLE void removeSourceModel(QAbstractItemModel *sourceModel);
diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h
index 31ecc8b20d..aed50d6c5a 100644
--- a/src/corelib/kernel/qobjectdefs_impl.h
+++ b/src/corelib/kernel/qobjectdefs_impl.h
@@ -285,11 +285,15 @@ namespace QtPrivate {
{
};
+ template <typename T>
+ using is_bool = std::is_same<bool, typename std::decay<T>::type>;
+
template<typename From, typename To>
struct AreArgumentsNarrowedBase<From, To, typename std::enable_if<sizeof(From) && sizeof(To)>::type>
: std::integral_constant<bool,
(std::is_floating_point<From>::value && std::is_integral<To>::value) ||
(std::is_floating_point<From>::value && std::is_floating_point<To>::value && sizeof(From) > sizeof(To)) ||
+ ((std::is_pointer<From>::value || std::is_member_pointer<From>::value) && QtPrivate::is_bool<To>::value) ||
((std::is_integral<From>::value || std::is_enum<From>::value) && std::is_floating_point<To>::value) ||
(std::is_integral<From>::value && std::is_integral<To>::value
&& (sizeof(From) > sizeof(To)
diff --git a/src/corelib/mimetypes/qmimeprovider_p.h b/src/corelib/mimetypes/qmimeprovider_p.h
index 0629df8a95..c4e712b318 100644
--- a/src/corelib/mimetypes/qmimeprovider_p.h
+++ b/src/corelib/mimetypes/qmimeprovider_p.h
@@ -140,7 +140,7 @@ public:
enum : bool { InternalDatabaseAvailable = false };
QMimeXMLProvider(QMimeDatabasePrivate *db, InternalDatabaseEnum)
: QMimeProviderBase(db, QString())
- { Q_UNREACHABLE() };
+ { Q_UNREACHABLE(); };
#endif
QMimeXMLProvider(QMimeDatabasePrivate *db, const QString &directory);
~QMimeXMLProvider();
diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
index 7ff87885a5..d7fb0d0d41 100644
--- a/src/corelib/serialization/qxmlstream.cpp
+++ b/src/corelib/serialization/qxmlstream.cpp
@@ -2041,6 +2041,42 @@ QStringRef QXmlStreamReader::dtdSystemId() const
return QStringRef();
}
+/*!
+ \since 5.15
+
+ Returns the maximum amount of characters a single entity is
+ allowed to expand into. If a single entity expands past the
+ given limit, the document is not considered well formed.
+
+ \sa setEntityExpansionLimit
+*/
+int QXmlStreamReader::entityExpansionLimit() const
+{
+ Q_D(const QXmlStreamReader);
+ return d->entityExpansionLimit;
+}
+
+/*!
+ \since 5.15
+
+ Sets the maximum amount of characters a single entity is
+ allowed to expand into to \a limit. If a single entity expands
+ past the given limit, the document is not considered well formed.
+
+ The limit is there to prevent DoS attacks when loading unknown
+ XML documents where recursive entity expansion could otherwise
+ exhaust all available memory.
+
+ The default value for this property is 4096 characters.
+
+ \sa entityExpansionLimit
+*/
+void QXmlStreamReader::setEntityExpansionLimit(int limit)
+{
+ Q_D(QXmlStreamReader);
+ d->entityExpansionLimit = limit;
+}
+
/*! If the tokenType() is \l StartElement, this function returns the
element's namespace declarations. Otherwise an empty vector is
returned.
diff --git a/src/corelib/serialization/qxmlstream.g b/src/corelib/serialization/qxmlstream.g
index 12ecc9bdb2..b623de9505 100644
--- a/src/corelib/serialization/qxmlstream.g
+++ b/src/corelib/serialization/qxmlstream.g
@@ -285,9 +285,19 @@ public:
QHash<QStringView, Entity> entityHash;
QHash<QStringView, Entity> parameterEntityHash;
QXmlStreamSimpleStack<Entity *>entityReferenceStack;
+ int entityExpansionLimit = 4096;
+ int entityLength = 0;
inline bool referenceEntity(Entity &entity) {
if (entity.isCurrentlyReferenced) {
- raiseWellFormedError(QXmlStream::tr("Recursive entity detected."));
+ raiseWellFormedError(QXmlStream::tr("Self-referencing entity detected."));
+ return false;
+ }
+ // entityLength represents the amount of additional characters the
+ // entity expands into (can be negative for e.g. &amp;). It's used to
+ // avoid DoS attacks through recursive entity expansions
+ entityLength += entity.value.size() - entity.name.size() - 2;
+ if (entityLength > entityExpansionLimit) {
+ raiseWellFormedError(QXmlStream::tr("Entity expands to more characters than the entity expansion limit."));
return false;
}
entity.isCurrentlyReferenced = true;
@@ -838,6 +848,8 @@ entity_done ::= ENTITY_DONE;
/.
case $rule_number:
entityReferenceStack.pop()->isCurrentlyReferenced = false;
+ if (entityReferenceStack.isEmpty())
+ entityLength = 0;
clearSym();
break;
./
diff --git a/src/corelib/serialization/qxmlstream.h b/src/corelib/serialization/qxmlstream.h
index 7d0aa64570..c8647e0465 100644
--- a/src/corelib/serialization/qxmlstream.h
+++ b/src/corelib/serialization/qxmlstream.h
@@ -426,6 +426,8 @@ public:
QStringRef dtdPublicId() const;
QStringRef dtdSystemId() const;
+ int entityExpansionLimit() const;
+ void setEntityExpansionLimit(int limit);
enum Error {
NoError,
diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
index 9c94e6d434..103b123b10 100644
--- a/src/corelib/serialization/qxmlstream_p.h
+++ b/src/corelib/serialization/qxmlstream_p.h
@@ -774,9 +774,19 @@ public:
QHash<QStringView, Entity> entityHash;
QHash<QStringView, Entity> parameterEntityHash;
QXmlStreamSimpleStack<Entity *>entityReferenceStack;
+ int entityExpansionLimit = 4096;
+ int entityLength = 0;
inline bool referenceEntity(Entity &entity) {
if (entity.isCurrentlyReferenced) {
- raiseWellFormedError(QXmlStream::tr("Recursive entity detected."));
+ raiseWellFormedError(QXmlStream::tr("Self-referencing entity detected."));
+ return false;
+ }
+ // entityLength represents the amount of additional characters the
+ // entity expands into (can be negative for e.g. &amp;). It's used to
+ // avoid DoS attacks through recursive entity expansions
+ entityLength += entity.value.size() - entity.name.size() - 2;
+ if (entityLength > entityExpansionLimit) {
+ raiseWellFormedError(QXmlStream::tr("Entity expands to more characters than the entity expansion limit."));
return false;
}
entity.isCurrentlyReferenced = true;
@@ -1308,6 +1318,8 @@ bool QXmlStreamReaderPrivate::parse()
case 10:
entityReferenceStack.pop()->isCurrentlyReferenced = false;
+ if (entityReferenceStack.isEmpty())
+ entityLength = 0;
clearSym();
break;
diff --git a/src/corelib/thread/qrunnable.cpp b/src/corelib/thread/qrunnable.cpp
index 5b883a05da..32f3cd657e 100644
--- a/src/corelib/thread/qrunnable.cpp
+++ b/src/corelib/thread/qrunnable.cpp
@@ -115,29 +115,29 @@ QRunnable::~QRunnable()
class FunctionRunnable : public QRunnable
{
- std::function<void()> m_functor;
+ std::function<void()> m_functionToRun;
public:
- FunctionRunnable(std::function<void()> functor) : m_functor(std::move(functor))
+ FunctionRunnable(std::function<void()> functionToRun) : m_functionToRun(std::move(functionToRun))
{
}
void run() override
{
- m_functor();
+ m_functionToRun();
}
};
/*!
\since 5.15
- Creates a QRunnable that calls \a fun in run().
+ Creates a QRunnable that calls \a functionToRun in run().
Auto-deletion is enabled by default.
\sa run(), autoDelete()
*/
-QRunnable *QRunnable::create(std::function<void()> fun)
+QRunnable *QRunnable::create(std::function<void()> functionToRun)
{
- return new FunctionRunnable(std::move(fun));
+ return new FunctionRunnable(std::move(functionToRun));
}
QT_END_NAMESPACE
diff --git a/src/corelib/thread/qrunnable.h b/src/corelib/thread/qrunnable.h
index c13aa3fa8c..26b6b991ac 100644
--- a/src/corelib/thread/qrunnable.h
+++ b/src/corelib/thread/qrunnable.h
@@ -60,7 +60,7 @@ public:
QRunnable() : ref(0) { }
virtual ~QRunnable();
- static QRunnable *create(std::function<void()> fun);
+ static QRunnable *create(std::function<void()> functionToRun);
bool autoDelete() const { return ref != -1; }
void setAutoDelete(bool _autoDelete) { ref = _autoDelete ? 0 : -1; }
diff --git a/src/corelib/thread/qthreadpool.cpp b/src/corelib/thread/qthreadpool.cpp
index d1875a69a9..a9352c3894 100644
--- a/src/corelib/thread/qthreadpool.cpp
+++ b/src/corelib/thread/qthreadpool.cpp
@@ -515,16 +515,16 @@ void QThreadPool::start(QRunnable *runnable, int priority)
\overload
\since 5.15
- Reserves a thread and uses it to run \a fun, unless this thread will
+ Reserves a thread and uses it to run \a functionToRun, unless this thread will
make the current thread count exceed maxThreadCount(). In that case,
- \a fun is added to a run queue instead. The \a priority argument can
+ \a functionToRun is added to a run queue instead. The \a priority argument can
be used to control the run queue's order of execution.
*/
-void QThreadPool::start(std::function<void()> fun, int priority)
+void QThreadPool::start(std::function<void()> functionToRun, int priority)
{
- if (!fun)
+ if (!functionToRun)
return;
- start(QRunnable::create(std::move(fun)), priority);
+ start(QRunnable::create(std::move(functionToRun)), priority);
}
/*!
@@ -561,17 +561,17 @@ bool QThreadPool::tryStart(QRunnable *runnable)
/*!
\overload
\since 5.15
- Attempts to reserve a thread to run \a fun.
+ Attempts to reserve a thread to run \a functionToRun.
If no threads are available at the time of calling, then this function
- does nothing and returns \c false. Otherwise, \a fun is run immediately
+ does nothing and returns \c false. Otherwise, \a functionToRun is run immediately
using one available thread and this function returns \c true.
*/
-bool QThreadPool::tryStart(std::function<void()> fun)
+bool QThreadPool::tryStart(std::function<void()> functionToRun)
{
- if (!fun)
+ if (!functionToRun)
return false;
- return tryStart(QRunnable::create(std::move(fun)));
+ return tryStart(QRunnable::create(std::move(functionToRun)));
}
/*! \property QThreadPool::expiryTimeout
diff --git a/src/corelib/thread/qthreadpool.h b/src/corelib/thread/qthreadpool.h
index 2eede44eca..e3691ab010 100644
--- a/src/corelib/thread/qthreadpool.h
+++ b/src/corelib/thread/qthreadpool.h
@@ -72,8 +72,8 @@ public:
void start(QRunnable *runnable, int priority = 0);
bool tryStart(QRunnable *runnable);
- void start(std::function<void()> fun, int priority = 0);
- bool tryStart(std::function<void()> fun);
+ void start(std::function<void()> functionToRun, int priority = 0);
+ bool tryStart(std::function<void()> functionToRun);
int expiryTimeout() const;
void setExpiryTimeout(int expiryTimeout);
diff --git a/src/corelib/time/qdatetimeparser.cpp b/src/corelib/time/qdatetimeparser.cpp
index 790c20004a..2a19611493 100644
--- a/src/corelib/time/qdatetimeparser.cpp
+++ b/src/corelib/time/qdatetimeparser.cpp
@@ -1539,6 +1539,14 @@ QDateTimeParser::parse(QString input, int position, const QDateTime &defaultValu
text = scan.input = input;
// Set spec *after* all checking, so validity is a property of the string:
scan.value = scan.value.toTimeSpec(spec);
+
+ /*
+ However, even with a valid string we might have ended up with an invalid datetime:
+ the non-existent hour during dst changes, for instance.
+ */
+ if (!scan.value.isValid() && scan.state == Acceptable)
+ scan.state = Intermediate;
+
return scan;
}
diff --git a/src/corelib/tools/qhash.h b/src/corelib/tools/qhash.h
index 47fa0520d9..59883e3968 100644
--- a/src/corelib/tools/qhash.h
+++ b/src/corelib/tools/qhash.h
@@ -324,7 +324,7 @@ public:
QHashData::Node *i;
public:
-#if QT_DEPRECATED_SINCE(5, 15)
+#if QT_DEPRECATED_WARNINGS_SINCE < QT_VERSION_CHECK(5, 15, 0)
typedef std::bidirectional_iterator_tag iterator_category;
#else
typedef std::forward_iterator_tag iterator_category;
@@ -354,23 +354,23 @@ public:
return r;
}
#if QT_DEPRECATED_SINCE(5, 15)
- inline QT_DEPRECATED iterator &operator--()
+ inline QT_DEPRECATED_VERSION_5_15 iterator &operator--()
{
i = QHashData::previousNode(i);
return *this;
}
- inline QT_DEPRECATED iterator operator--(int)
+ inline QT_DEPRECATED_VERSION_5_15 iterator operator--(int)
{
iterator r = *this;
i = QHashData::previousNode(i);
return r;
}
- inline QT_DEPRECATED iterator operator+(int j) const
+ inline QT_DEPRECATED_VERSION_5_15 iterator operator+(int j) const
{ iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; }
- inline QT_DEPRECATED iterator operator-(int j) const { return operator+(-j); }
- inline QT_DEPRECATED iterator &operator+=(int j) { return *this = *this + j; }
- inline QT_DEPRECATED iterator &operator-=(int j) { return *this = *this - j; }
- friend inline QT_DEPRECATED iterator operator+(int j, iterator k) { return k + j; }
+ inline QT_DEPRECATED_VERSION_5_15 iterator operator-(int j) const { return operator+(-j); }
+ inline QT_DEPRECATED_VERSION_5_15 iterator &operator+=(int j) { return *this = *this + j; }
+ inline QT_DEPRECATED_VERSION_5_15 iterator &operator-=(int j) { return *this = *this - j; }
+ friend inline QT_DEPRECATED_VERSION_5_15 iterator operator+(int j, iterator k) { return k + j; }
#endif
inline bool operator==(const const_iterator &o) const { return i == o.i; }
@@ -387,7 +387,7 @@ public:
QHashData::Node *i;
public:
-#if QT_DEPRECATED_SINCE(5, 15)
+#if QT_DEPRECATED_WARNINGS_SINCE < QT_VERSION_CHECK(5, 15, 0)
typedef std::bidirectional_iterator_tag iterator_category;
#else
typedef std::forward_iterator_tag iterator_category;
@@ -420,23 +420,23 @@ public:
return r;
}
#if QT_DEPRECATED_SINCE(5, 15)
- inline QT_DEPRECATED const_iterator &operator--()
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator &operator--()
{
i = QHashData::previousNode(i);
return *this;
}
- inline QT_DEPRECATED const_iterator operator--(int)
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator operator--(int)
{
const_iterator r = *this;
i = QHashData::previousNode(i);
return r;
}
- inline QT_DEPRECATED const_iterator operator+(int j) const
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator operator+(int j) const
{ const_iterator r = *this; if (j > 0) while (j--) ++r; else while (j++) --r; return r; }
- inline QT_DEPRECATED const_iterator operator-(int j) const { return operator+(-j); }
- inline QT_DEPRECATED const_iterator &operator+=(int j) { return *this = *this + j; }
- inline QT_DEPRECATED const_iterator &operator-=(int j) { return *this = *this - j; }
- friend inline QT_DEPRECATED const_iterator operator+(int j, const_iterator k)
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator operator-(int j) const { return operator+(-j); }
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator &operator+=(int j) { return *this = *this + j; }
+ inline QT_DEPRECATED_VERSION_5_15 const_iterator &operator-=(int j) { return *this = *this - j; }
+ friend inline QT_DEPRECATED_VERSION_5_15 const_iterator operator+(int j, const_iterator k)
{
return k + j;
}
@@ -466,12 +466,12 @@ public:
inline key_iterator &operator++() { ++i; return *this; }
inline key_iterator operator++(int) { return key_iterator(i++);}
#if QT_DEPRECATED_SINCE(5, 15)
- inline QT_DEPRECATED key_iterator &operator--()
+ inline QT_DEPRECATED_VERSION_5_15 key_iterator &operator--()
{
--i;
return *this;
}
- inline QT_DEPRECATED key_iterator operator--(int) { return key_iterator(i--); }
+ inline QT_DEPRECATED_VERSION_5_15 key_iterator operator--(int) { return key_iterator(i--); }
#endif
const_iterator base() const { return i; }
};
@@ -1302,18 +1302,18 @@ public:
return false;
}
#if QT_DEPRECATED_SINCE(5, 15)
- inline QT_DEPRECATED bool hasPrevious() const { return i != c.constBegin(); }
- inline QT_DEPRECATED Item previous()
+ inline QT_DEPRECATED_VERSION_5_15 bool hasPrevious() const { return i != c.constBegin(); }
+ inline QT_DEPRECATED_VERSION_5_15 Item previous()
{
n = --i;
return n;
}
- inline QT_DEPRECATED Item peekPrevious() const
+ inline QT_DEPRECATED_VERSION_5_15 Item peekPrevious() const
{
const_iterator p = i;
return --p;
}
- inline bool QT_DEPRECATED findPrevious(const T &t)
+ inline bool QT_DEPRECATED_VERSION_5_15 findPrevious(const T &t)
{
while (i != c.constBegin())
if (*(n = --i) == t)
@@ -1399,18 +1399,18 @@ public:
return false;
}
#if QT_DEPRECATED_SINCE(5, 15)
- inline QT_DEPRECATED bool hasPrevious() const { return const_iterator(i) != c->constBegin(); }
- inline QT_DEPRECATED Item previous()
+ inline QT_DEPRECATED_VERSION_5_15 bool hasPrevious() const { return const_iterator(i) != c->constBegin(); }
+ inline QT_DEPRECATED_VERSION_5_15 Item previous()
{
n = --i;
return n;
}
- inline QT_DEPRECATED Item peekPrevious() const
+ inline QT_DEPRECATED_VERSION_5_15 Item peekPrevious() const
{
iterator p = i;
return --p;
}
- inline QT_DEPRECATED bool findPrevious(const T &t)
+ inline QT_DEPRECATED_VERSION_5_15 bool findPrevious(const T &t)
{
while (const_iterator(i) != c->constBegin())
if (*(n = --i) == t)
diff --git a/src/gui/kernel/qscreen.cpp b/src/gui/kernel/qscreen.cpp
index fd25becbca..d5a4b7c027 100644
--- a/src/gui/kernel/qscreen.cpp
+++ b/src/gui/kernel/qscreen.cpp
@@ -710,7 +710,7 @@ void QScreenPrivate::updatePrimaryOrientation()
\since 5.15
*/
-QScreen *QScreen::virtualSiblingAt(const QPoint &point)
+QScreen *QScreen::virtualSiblingAt(QPoint point)
{
const auto &siblings = virtualSiblings();
for (QScreen *sibling : siblings) {
diff --git a/src/gui/kernel/qscreen.h b/src/gui/kernel/qscreen.h
index 88925ab731..09e1d4259a 100644
--- a/src/gui/kernel/qscreen.h
+++ b/src/gui/kernel/qscreen.h
@@ -125,7 +125,7 @@ public:
QRect availableGeometry() const;
QList<QScreen *> virtualSiblings() const;
- QScreen *virtualSiblingAt(const QPoint &point);
+ QScreen *virtualSiblingAt(QPoint point);
QSize virtualSize() const;
QRect virtualGeometry() const;
diff --git a/src/gui/text/qfontengine.cpp b/src/gui/text/qfontengine.cpp
index 38814937f6..ec90247feb 100644
--- a/src/gui/text/qfontengine.cpp
+++ b/src/gui/text/qfontengine.cpp
@@ -663,6 +663,9 @@ glyph_metrics_t QFontEngine::tightBoundingBox(const QGlyphLayout &glyphs)
QFixed ymax = 0;
QFixed xmax = 0;
for (int i = 0; i < glyphs.numGlyphs; i++) {
+ // If shaping has found this should be ignored, ignore it.
+ if (!glyphs.advances[i] || glyphs.attributes[i].dontPrint)
+ continue;
glyph_metrics_t bb = boundingBox(glyphs.glyphs[i]);
QFixed x = overall.xoff + glyphs.offsets[i].x + bb.x;
QFixed y = overall.yoff + glyphs.offsets[i].y + bb.y;
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp
index ac39a8cf69..81ed8fa97a 100644
--- a/src/gui/text/qtextengine.cpp
+++ b/src/gui/text/qtextengine.cpp
@@ -712,9 +712,8 @@ struct QBidiAlgorithm {
analysis[pos].bidiDirection = QChar::DirEN;
++it;
}
- } else {
- lastETPosition.clear();
}
+ lastETPosition.clear();
}
last = current;
lastPos = pos;
diff --git a/src/network/access/qftp.cpp b/src/network/access/qftp.cpp
index cda800ce35..2589c64b1c 100644
--- a/src/network/access/qftp.cpp
+++ b/src/network/access/qftp.cpp
@@ -324,7 +324,7 @@ void QFtpDTP::connectToHost(const QString & host, quint16 port)
socket->setObjectName(QLatin1String("QFtpDTP Passive state socket"));
connect(socket, SIGNAL(connected()), SLOT(socketConnected()));
connect(socket, SIGNAL(readyRead()), SLOT(socketReadyRead()));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError)));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError)));
connect(socket, SIGNAL(disconnected()), SLOT(socketConnectionClosed()));
connect(socket, SIGNAL(bytesWritten(qint64)), SLOT(socketBytesWritten(qint64)));
@@ -769,7 +769,7 @@ void QFtpDTP::setupSocket()
socket->setObjectName(QLatin1String("QFtpDTP Active state socket"));
connect(socket, SIGNAL(connected()), SLOT(socketConnected()));
connect(socket, SIGNAL(readyRead()), SLOT(socketReadyRead()));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError)));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), SLOT(socketError(QAbstractSocket::SocketError)));
connect(socket, SIGNAL(disconnected()), SLOT(socketConnectionClosed()));
connect(socket, SIGNAL(bytesWritten(qint64)), SLOT(socketBytesWritten(qint64)));
@@ -807,7 +807,7 @@ QFtpPI::QFtpPI(QObject *parent) :
SLOT(connectionClosed()));
connect(&commandSocket, SIGNAL(readyRead()),
SLOT(readyRead()));
- connect(&commandSocket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(&commandSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
SLOT(error(QAbstractSocket::SocketError)));
connect(&dtp, SIGNAL(connectState(int)),
diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
index 65c2ae3054..c1bb19650f 100644
--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
@@ -156,7 +156,7 @@ void QHttpNetworkConnectionChannel::init()
QObject::connect(socket, SIGNAL(disconnected()),
this, SLOT(_q_disconnected()),
Qt::DirectConnection);
- QObject::connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ QObject::connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(_q_error(QAbstractSocket::SocketError)),
Qt::DirectConnection);
diff --git a/src/network/access/qhttpprotocolhandler.cpp b/src/network/access/qhttpprotocolhandler.cpp
index 981effb54f..d39589fb96 100644
--- a/src/network/access/qhttpprotocolhandler.cpp
+++ b/src/network/access/qhttpprotocolhandler.cpp
@@ -233,7 +233,7 @@ void QHttpProtocolHandler::_q_readyRead()
char c;
qint64 ret = m_socket->peek(&c, 1);
if (ret < 0) {
- m_channel->_q_error(m_socket->socketError());
+ m_channel->_q_error(m_socket->error());
// We still need to handle the reply so it emits its signals etc.
if (m_reply)
_q_receiveReply();
diff --git a/src/network/access/qnetworkaccessdebugpipebackend.cpp b/src/network/access/qnetworkaccessdebugpipebackend.cpp
index 0406f2fac1..0029df41fe 100644
--- a/src/network/access/qnetworkaccessdebugpipebackend.cpp
+++ b/src/network/access/qnetworkaccessdebugpipebackend.cpp
@@ -98,7 +98,7 @@ void QNetworkAccessDebugPipeBackend::open()
// socket ready read -> we can push from socket to downstream
connect(&socket, SIGNAL(readyRead()), SLOT(socketReadyRead()));
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(socketError()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), SLOT(socketError()));
connect(&socket, SIGNAL(disconnected()), SLOT(socketDisconnected()));
connect(&socket, SIGNAL(connected()), SLOT(socketConnected()));
// socket bytes written -> we can push more from upstream to socket
@@ -242,9 +242,9 @@ void QNetworkAccessDebugPipeBackend::closeDownstreamChannel()
void QNetworkAccessDebugPipeBackend::socketError()
{
- qWarning("QNetworkAccessDebugPipeBackend::socketError() %d",socket.socketError());
+ qWarning("QNetworkAccessDebugPipeBackend::socketError() %d",socket.error());
QNetworkReply::NetworkError code;
- switch (socket.socketError()) {
+ switch (socket.error()) {
case QAbstractSocket::RemoteHostClosedError:
return; // socketDisconnected will be called
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index 85f065223a..21d46011d7 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -1726,7 +1726,7 @@ int QNetworkAccessManager::transferTimeout() const
Transfers are aborted if no bytes are transferred before
the timeout expires. Zero means no timer is set. If no
argument is provided, the timeout is
- QNetworkRequest::TransferTimeoutPreset. If this function
+ QNetworkRequest::DefaultTransferTimeoutConstant. If this function
is not called, the timeout is disabled and has the
value zero. The request-specific non-zero timeouts set for
the requests that are executed override this value. This means
diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp
index c22dce8f1c..fb30bfd4f1 100644
--- a/src/network/access/qnetworkreply.cpp
+++ b/src/network/access/qnetworkreply.cpp
@@ -554,32 +554,13 @@ QNetworkAccessManager::Operation QNetworkReply::operation() const
return d_func()->operation;
}
-#if QT_DEPRECATED_SINCE(5, 15)
/*!
- \deprecated
-
- Use networkError() instead.
-
- Returns the error that was found during the processing of this
- request. If no error was found, returns NoError.
-
- \sa setError(), networkError()
-*/
-QNetworkReply::NetworkError QNetworkReply::error() const
-{
- return networkError();
-}
-#endif // QT_DEPRECATED_SINCE(5, 15)
-
-/*!
- \since 5.15
-
Returns the error that was found during the processing of this
request. If no error was found, returns NoError.
\sa setError()
*/
-QNetworkReply::NetworkError QNetworkReply::networkError() const
+QNetworkReply::NetworkError QNetworkReply::error() const
{
return d_func()->errorCode;
}
@@ -877,7 +858,7 @@ void QNetworkReply::setRequest(const QNetworkRequest &request)
Calling setError() does not emit the error(QNetworkReply::NetworkError)
signal.
- \sa error(), errorString(), networkError()
+ \sa error(), errorString()
*/
void QNetworkReply::setError(NetworkError errorCode, const QString &errorString)
{
diff --git a/src/network/access/qnetworkreply.h b/src/network/access/qnetworkreply.h
index 139009a56a..4a402daa91 100644
--- a/src/network/access/qnetworkreply.h
+++ b/src/network/access/qnetworkreply.h
@@ -124,12 +124,7 @@ public:
QNetworkAccessManager *manager() const;
QNetworkAccessManager::Operation operation() const;
QNetworkRequest request() const;
-
-#if QT_DEPRECATED_SINCE(5, 15)
- QT_DEPRECATED_X("Use networkError()") NetworkError error() const;
-#endif // QT_DEPRECATED_SINCE(5, 15)
- NetworkError networkError() const;
-
+ NetworkError error() const;
bool isFinished() const;
bool isRunning() const;
QUrl url() const;
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 4765fdc30e..33526bb7d5 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -931,7 +931,7 @@ int QNetworkRequest::transferTimeout() const
Transfers are aborted if no bytes are transferred before
the timeout expires. Zero means no timer is set. If no
argument is provided, the timeout is
- QNetworkRequest::TransferTimeoutPreset. If this function
+ QNetworkRequest::DefaultTransferTimeoutConstant. If this function
is not called, the timeout is disabled and has the
value zero.
diff --git a/src/network/socket/qabstractsocket.cpp b/src/network/socket/qabstractsocket.cpp
index 5f1ff2fcb8..fb792e428f 100644
--- a/src/network/socket/qabstractsocket.cpp
+++ b/src/network/socket/qabstractsocket.cpp
@@ -84,7 +84,7 @@
HostLookupState. If the host is found, QAbstractSocket enters
ConnectingState and emits the hostFound() signal. When the
connection has been established, it enters ConnectedState and
- emits connected(). If an error occurs at any stage, error() is
+ emits connected(). If an error occurs at any stage, errorOccurred() is
emitted. Whenever the state changes, stateChanged() is emitted.
For convenience, isValid() returns \c true if the socket is ready for
reading and writing, but note that the socket's state must be
@@ -113,7 +113,7 @@
QAbstractSocket::UnconnectedState, and emits disconnected(). If you want
to abort a connection immediately, discarding all pending data, call
abort() instead. If the remote host closes the connection,
- QAbstractSocket will emit error(QAbstractSocket::RemoteHostClosedError),
+ QAbstractSocket will emit errorOccurred(QAbstractSocket::RemoteHostClosedError),
during which the socket state will still be ConnectedState, and then the
disconnected() signal will be emitted.
@@ -203,6 +203,14 @@
/*!
\fn void QAbstractSocket::error(QAbstractSocket::SocketError socketError)
+ \obsolete
+
+ Use errorOccurred() instead.
+*/
+
+/*!
+ \fn void QAbstractSocket::errorOccurred(QAbstractSocket::SocketError socketError)
+ \since 5.15
This signal is emitted after an error occurred. The \a socketError
parameter describes the type of error that occurred.
@@ -215,7 +223,7 @@
connections, you will have to register it with Q_DECLARE_METATYPE() and
qRegisterMetaType().
- \sa socketError(), errorString(), {Creating Custom Qt Types}
+ \sa error(), errorString(), {Creating Custom Qt Types}
*/
/*!
@@ -329,7 +337,8 @@
is non-blocking).
\value UnknownSocketError An unidentified error occurred.
- \sa QAbstractSocket::socketError()
+ \sa QAbstractSocket::error()
+ \sa QAbstractSocket::errorOccurred()
*/
/*!
@@ -988,7 +997,7 @@ void QAbstractSocketPrivate::startConnectingByName(const QString &host)
}
state = QAbstractSocket::UnconnectedState;
- emit q->error(socketError);
+ emit q->errorOccurred(socketError);
emit q->stateChanged(state);
}
@@ -1047,7 +1056,7 @@ void QAbstractSocketPrivate::_q_startConnecting(const QHostInfo &hostInfo)
state = QAbstractSocket::UnconnectedState;
setError(QAbstractSocket::HostNotFoundError, QAbstractSocket::tr("Host not found"));
emit q->stateChanged(state);
- emit q->error(QAbstractSocket::HostNotFoundError);
+ emit q->errorOccurred(QAbstractSocket::HostNotFoundError);
return;
}
@@ -1070,8 +1079,8 @@ void QAbstractSocketPrivate::_q_startConnecting(const QHostInfo &hostInfo)
_q_testConnection(), this function takes the first address of the
pending addresses list and tries to connect to it. If the
connection succeeds, QAbstractSocket will emit
- connected(). Otherwise, error(ConnectionRefusedError) or
- error(SocketTimeoutError) is emitted.
+ connected(). Otherwise, errorOccurred(ConnectionRefusedError) or
+ errorOccurred(SocketTimeoutError) is emitted.
*/
void QAbstractSocketPrivate::_q_connectToNextAddress()
{
@@ -1101,7 +1110,7 @@ void QAbstractSocketPrivate::_q_connectToNextAddress()
// q->setErrorString(QAbstractSocket::tr("Connection refused"));
}
emit q->stateChanged(state);
- emit q->error(socketError);
+ emit q->errorOccurred(socketError);
return;
}
@@ -1223,7 +1232,7 @@ void QAbstractSocketPrivate::_q_abortConnectionAttempt()
setError(QAbstractSocket::SocketTimeoutError,
QAbstractSocket::tr("Connection timed out"));
emit q->stateChanged(state);
- emit q->error(socketError);
+ emit q->errorOccurred(socketError);
} else {
_q_connectToNextAddress();
}
@@ -1430,14 +1439,14 @@ void QAbstractSocketPrivate::setError(QAbstractSocket::SocketError errorCode,
\internal
Sets the socket error state to \c errorCode and \a errorString,
- and emits the QAbstractSocket::error() signal.
+ and emits the QAbstractSocket::errorOccurred() signal.
*/
void QAbstractSocketPrivate::setErrorAndEmit(QAbstractSocket::SocketError errorCode,
const QString &errorString)
{
Q_Q(QAbstractSocket);
setError(errorCode, errorString);
- emit q->error(errorCode);
+ emit q->errorOccurred(errorCode);
}
/*! \internal
@@ -1456,6 +1465,9 @@ QAbstractSocket::QAbstractSocket(SocketType socketType,
: socketType == SctpSocket ? "Sctp" : "Unknown", &dd, parent);
#endif
d->socketType = socketType;
+
+ // Support the deprecated error() signal:
+ connect(this, &QAbstractSocket::errorOccurred, this, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error));
}
/*!
@@ -1654,7 +1666,7 @@ bool QAbstractSocket::isValid() const
established, QAbstractSocket enters ConnectedState and
emits connected().
- At any point, the socket can emit error() to signal that an error
+ At any point, the socket can emit errorOccurred() to signal that an error
occurred.
\a hostName may be an IP address in string form (e.g.,
@@ -2092,7 +2104,7 @@ QVariant QAbstractSocket::socketOption(QAbstractSocket::SocketOption option)
Waits until the socket is connected, up to \a msecs
milliseconds. If the connection has been established, this
function returns \c true; otherwise it returns \c false. In the case
- where it returns \c false, you can call socketError() to determine
+ where it returns \c false, you can call error() to determine
the cause of the error.
The following example waits up to one second for a connection
@@ -2864,7 +2876,7 @@ void QAbstractSocket::setReadBufferSize(qint64 size)
/*!
Returns the state of the socket.
- \sa socketError()
+ \sa error()
*/
QAbstractSocket::SocketState QAbstractSocket::state() const
{
@@ -2891,35 +2903,16 @@ QAbstractSocket::SocketType QAbstractSocket::socketType() const
return d_func()->socketType;
}
-#if QT_DEPRECATED_SINCE(5, 15)
-/*!
- \deprecated
-
- Use socketError() instead.
-
- Returns the type of error that last occurred.
-
- \sa state(), errorString(), socketError()
-*/
-QAbstractSocket::SocketError QAbstractSocket::error() const
-{
- return socketError();
-}
-#endif // QT_DEPRECATED_SINCE(5, 15)
-
/*!
- \since 5.15
-
Returns the type of error that last occurred.
\sa state(), errorString()
*/
-QAbstractSocket::SocketError QAbstractSocket::socketError() const
+QAbstractSocket::SocketError QAbstractSocket::error() const
{
return d_func()->socketError;
}
-
/*!
Sets the type of error that last occurred to \a socketError.
diff --git a/src/network/socket/qabstractsocket.h b/src/network/socket/qabstractsocket.h
index cbc79ea684..1482dcaab2 100644
--- a/src/network/socket/qabstractsocket.h
+++ b/src/network/socket/qabstractsocket.h
@@ -180,12 +180,7 @@ public:
SocketType socketType() const;
SocketState state() const;
-
-#if QT_DEPRECATED_SINCE(5, 15)
- QT_DEPRECATED_X("Use socketError()") SocketError error() const;
-#endif // QT_DEPRECATED_SINCE(5, 15)
-
- SocketError socketError() const;
+ SocketError error() const;
// from QIODevice
void close() override;
@@ -211,7 +206,11 @@ Q_SIGNALS:
void connected();
void disconnected();
void stateChanged(QAbstractSocket::SocketState);
+#if QT_DEPRECATED_SINCE(5,15)
+ QT_DEPRECATED_X("Use QAbstractSocket::errorOccurred(QAbstractSocket::SocketError) instead")
void error(QAbstractSocket::SocketError);
+#endif
+ void errorOccurred(QAbstractSocket::SocketError);
#ifndef QT_NO_NETWORKPROXY
void proxyAuthenticationRequired(const QNetworkProxy &proxy, QAuthenticator *authenticator);
#endif
diff --git a/src/network/socket/qhttpsocketengine.cpp b/src/network/socket/qhttpsocketengine.cpp
index b80bdec992..9b0460b184 100644
--- a/src/network/socket/qhttpsocketengine.cpp
+++ b/src/network/socket/qhttpsocketengine.cpp
@@ -93,7 +93,7 @@ bool QHttpSocketEngine::initialize(QAbstractSocket::SocketType type, QAbstractSo
connect(d->socket, SIGNAL(bytesWritten(qint64)),
this, SLOT(slotSocketBytesWritten()),
Qt::DirectConnection);
- connect(d->socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(d->socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(slotSocketError(QAbstractSocket::SocketError)),
Qt::DirectConnection);
connect(d->socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
@@ -370,8 +370,8 @@ bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut)
if (!d->socket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
if (d->socket->state() == QAbstractSocket::UnconnectedState)
return true;
- setError(d->socket->socketError(), d->socket->errorString());
- if (timedOut && d->socket->socketError() == QAbstractSocket::SocketTimeoutError)
+ setError(d->socket->error(), d->socket->errorString());
+ if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
return false;
}
@@ -385,8 +385,8 @@ bool QHttpSocketEngine::waitForRead(int msecs, bool *timedOut)
// Report any error that may occur.
if (d->state != Connected) {
- setError(d->socket->socketError(), d->socket->errorString());
- if (timedOut && d->socket->socketError() == QAbstractSocket::SocketTimeoutError)
+ setError(d->socket->error(), d->socket->errorString());
+ if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
return false;
}
@@ -401,7 +401,7 @@ bool QHttpSocketEngine::waitForWrite(int msecs, bool *timedOut)
if (d->state == Connected) {
if (d->socket->bytesToWrite()) {
if (!d->socket->waitForBytesWritten(msecs)) {
- if (d->socket->socketError() == QAbstractSocket::SocketTimeoutError && timedOut)
+ if (d->socket->error() == QAbstractSocket::SocketTimeoutError && timedOut)
*timedOut = true;
return false;
}
@@ -421,7 +421,8 @@ bool QHttpSocketEngine::waitForWrite(int msecs, bool *timedOut)
// Report any error that may occur.
if (d->state != Connected) {
- if (timedOut && d->socket->socketError() == QAbstractSocket::SocketTimeoutError)
+// setError(d->socket->error(), d->socket->errorString());
+ if (timedOut && d->socket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
}
diff --git a/src/network/socket/qlocalsocket.h b/src/network/socket/qlocalsocket.h
index ae78c86b3c..9cd62abca6 100644
--- a/src/network/socket/qlocalsocket.h
+++ b/src/network/socket/qlocalsocket.h
@@ -132,14 +132,14 @@ private:
Q_DISABLE_COPY(QLocalSocket)
#if defined(QT_LOCALSOCKET_TCP)
Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QAbstractSocket::SocketState))
- Q_PRIVATE_SLOT(d_func(), void _q_error(QAbstractSocket::SocketError))
+ Q_PRIVATE_SLOT(d_func(), void _q_errorOccurred(QAbstractSocket::SocketError))
#elif defined(Q_OS_WIN)
Q_PRIVATE_SLOT(d_func(), void _q_canWrite())
Q_PRIVATE_SLOT(d_func(), void _q_pipeClosed())
Q_PRIVATE_SLOT(d_func(), void _q_winError(ulong, const QString &))
#else
Q_PRIVATE_SLOT(d_func(), void _q_stateChanged(QAbstractSocket::SocketState))
- Q_PRIVATE_SLOT(d_func(), void _q_error(QAbstractSocket::SocketError))
+ Q_PRIVATE_SLOT(d_func(), void _q_errorOccurred(QAbstractSocket::SocketError))
Q_PRIVATE_SLOT(d_func(), void _q_connectToSocket())
Q_PRIVATE_SLOT(d_func(), void _q_abortConnectionAttempt())
#endif
diff --git a/src/network/socket/qlocalsocket_p.h b/src/network/socket/qlocalsocket_p.h
index e3bcd92326..0e05e4c5d7 100644
--- a/src/network/socket/qlocalsocket_p.h
+++ b/src/network/socket/qlocalsocket_p.h
@@ -127,7 +127,7 @@ public:
QString generateErrorString(QLocalSocket::LocalSocketError, const QString &function) const;
void setErrorAndEmit(QLocalSocket::LocalSocketError, const QString &function);
void _q_stateChanged(QAbstractSocket::SocketState newState);
- void _q_error(QAbstractSocket::SocketError newError);
+ void _q_errorOccurred(QAbstractSocket::SocketError newError);
#elif defined(Q_OS_WIN)
~QLocalSocketPrivate();
void destroyPipeHandles();
@@ -144,7 +144,7 @@ public:
QString generateErrorString(QLocalSocket::LocalSocketError, const QString &function) const;
void setErrorAndEmit(QLocalSocket::LocalSocketError, const QString &function);
void _q_stateChanged(QAbstractSocket::SocketState newState);
- void _q_error(QAbstractSocket::SocketError newError);
+ void _q_errorOccurred(QAbstractSocket::SocketError newError);
void _q_connectToSocket();
void _q_abortConnectionAttempt();
void cancelDelayedConnect();
diff --git a/src/network/socket/qlocalsocket_tcp.cpp b/src/network/socket/qlocalsocket_tcp.cpp
index e13bcfc0cb..1c63d16187 100644
--- a/src/network/socket/qlocalsocket_tcp.cpp
+++ b/src/network/socket/qlocalsocket_tcp.cpp
@@ -77,8 +77,8 @@ void QLocalSocketPrivate::setSocket(QLocalUnixSocket* socket)
q->connect(tcpSocket, SIGNAL(disconnected()), q, SIGNAL(disconnected()));
q->connect(tcpSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
q, SLOT(_q_stateChanged(QAbstractSocket::SocketState)));
- q->connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
- q, SLOT(_q_error(QAbstractSocket::SocketError)));
+ q->connect(tcpSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
+ q, SLOT(_q_errorOccurred(QAbstractSocket::SocketError)));
q->connect(tcpSocket, SIGNAL(readChannelFinished()), q, SIGNAL(readChannelFinished()));
tcpSocket->setParent(q);
}
@@ -88,7 +88,7 @@ qint64 QLocalSocketPrivate::skip(qint64 maxSize)
return tcpSocket->skip(maxSize);
}
-void QLocalSocketPrivate::_q_error(QAbstractSocket::SocketError socketError)
+void QLocalSocketPrivate::_q_errorOccurred(QAbstractSocket::SocketError socketError)
{
Q_Q(QLocalSocket);
QString function = QLatin1String("QLocalSocket");
diff --git a/src/network/socket/qlocalsocket_unix.cpp b/src/network/socket/qlocalsocket_unix.cpp
index e860b880d5..d9b39a7752 100644
--- a/src/network/socket/qlocalsocket_unix.cpp
+++ b/src/network/socket/qlocalsocket_unix.cpp
@@ -81,8 +81,8 @@ void QLocalSocketPrivate::init()
q->connect(&unixSocket, SIGNAL(disconnected()), q, SIGNAL(disconnected()));
q->connect(&unixSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
q, SLOT(_q_stateChanged(QAbstractSocket::SocketState)));
- q->connect(&unixSocket, SIGNAL(error(QAbstractSocket::SocketError)),
- q, SLOT(_q_error(QAbstractSocket::SocketError)));
+ q->connect(&unixSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
+ q, SLOT(_q_errorOccurred(QAbstractSocket::SocketError)));
q->connect(&unixSocket, SIGNAL(readChannelFinished()), q, SIGNAL(readChannelFinished()));
unixSocket.setParent(q);
}
@@ -92,7 +92,7 @@ qint64 QLocalSocketPrivate::skip(qint64 maxSize)
return unixSocket.skip(maxSize);
}
-void QLocalSocketPrivate::_q_error(QAbstractSocket::SocketError socketError)
+void QLocalSocketPrivate::_q_errorOccurred(QAbstractSocket::SocketError socketError)
{
Q_Q(QLocalSocket);
QString function = QLatin1String("QLocalSocket");
@@ -464,7 +464,7 @@ void QLocalSocket::disconnectFromServer()
QLocalSocket::LocalSocketError QLocalSocket::error() const
{
Q_D(const QLocalSocket);
- switch (d->unixSocket.socketError()) {
+ switch (d->unixSocket.error()) {
case QAbstractSocket::ConnectionRefusedError:
return QLocalSocket::ConnectionRefusedError;
case QAbstractSocket::RemoteHostClosedError:
diff --git a/src/network/socket/qsocks5socketengine.cpp b/src/network/socket/qsocks5socketengine.cpp
index eb5d181134..6a9979a675 100644
--- a/src/network/socket/qsocks5socketengine.cpp
+++ b/src/network/socket/qsocks5socketengine.cpp
@@ -559,8 +559,8 @@ void QSocks5SocketEnginePrivate::initialize(Socks5Mode socks5Mode)
Qt::DirectConnection);
QObject::connect(data->controlSocket, SIGNAL(bytesWritten(qint64)), q, SLOT(_q_controlSocketBytesWritten()),
Qt::DirectConnection);
- QObject::connect(data->controlSocket, SIGNAL(error(QAbstractSocket::SocketError)),
- q, SLOT(_q_controlSocketError(QAbstractSocket::SocketError)),
+ QObject::connect(data->controlSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
+ q, SLOT(_q_controlSocketErrorOccurred(QAbstractSocket::SocketError)),
Qt::DirectConnection);
QObject::connect(data->controlSocket, SIGNAL(disconnected()), q, SLOT(_q_controlSocketDisconnected()),
Qt::DirectConnection);
@@ -594,7 +594,7 @@ void QSocks5SocketEnginePrivate::setErrorState(Socks5State state, const QString
case ConnectError:
case ControlSocketError: {
- QAbstractSocket::SocketError controlSocketError = data->controlSocket->socketError();
+ QAbstractSocket::SocketError controlSocketError = data->controlSocket->error();
if (socks5State != Connected) {
switch (controlSocketError) {
case QAbstractSocket::ConnectionRefusedError:
@@ -918,7 +918,7 @@ void QSocks5SocketEnginePrivate::_q_emitPendingReadNotification()
return;
// check if there needs to be a new zero read notification
if (data && data->controlSocket->state() == QAbstractSocket::UnconnectedState
- && data->controlSocket->socketError() == QAbstractSocket::RemoteHostClosedError) {
+ && data->controlSocket->error() == QAbstractSocket::RemoteHostClosedError) {
connectData->readBuffer.clear();
emitReadNotification();
}
@@ -1056,7 +1056,7 @@ bool QSocks5SocketEngine::initialize(qintptr socketDescriptor, QAbstractSocket::
Qt::DirectConnection);
QObject::connect(d->data->controlSocket, SIGNAL(bytesWritten(qint64)), this, SLOT(_q_controlSocketBytesWritten()),
Qt::DirectConnection);
- QObject::connect(d->data->controlSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(_q_controlSocketError(QAbstractSocket::SocketError)),
+ QObject::connect(d->data->controlSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SLOT(_q_controlSocketErrorOccurred(QAbstractSocket::SocketError)),
Qt::DirectConnection);
QObject::connect(d->data->controlSocket, SIGNAL(disconnected()), this, SLOT(_q_controlSocketDisconnected()),
Qt::DirectConnection);
@@ -1231,7 +1231,7 @@ void QSocks5SocketEnginePrivate::_q_controlSocketBytesWritten()
}
}
-void QSocks5SocketEnginePrivate::_q_controlSocketError(QAbstractSocket::SocketError error)
+void QSocks5SocketEnginePrivate::_q_controlSocketErrorOccurred(QAbstractSocket::SocketError error)
{
QSOCKS5_D_DEBUG << "controlSocketError" << error << data->controlSocket->errorString();
@@ -1256,7 +1256,7 @@ void QSocks5SocketEnginePrivate::_q_controlSocketError(QAbstractSocket::SocketEr
data->controlSocket->close();
emitConnectionNotification();
} else {
- q_func()->setError(data->controlSocket->socketError(), data->controlSocket->errorString());
+ q_func()->setError(data->controlSocket->error(), data->controlSocket->errorString());
emitReadNotification();
emitWriteNotification();
}
@@ -1348,7 +1348,7 @@ bool QSocks5SocketEngine::bind(const QHostAddress &addr, quint16 port)
if (d->mode == QSocks5SocketEnginePrivate::UdpAssociateMode) {
if (!d->udpData->udpSocket->bind(address, port)) {
QSOCKS5_Q_DEBUG << "local udp bind failed";
- setError(d->udpData->udpSocket->socketError(), d->udpData->udpSocket->errorString());
+ setError(d->udpData->udpSocket->error(), d->udpData->udpSocket->errorString());
return false;
}
d->localAddress = d->udpData->udpSocket->localAddress();
@@ -1656,8 +1656,8 @@ qint64 QSocks5SocketEngine::writeDatagram(const char *data, qint64 len, const QI
}
if (d->udpData->udpSocket->writeDatagram(sealedBuf, d->udpData->associateAddress, d->udpData->associatePort) != sealedBuf.size()) {
//### try frgamenting
- if (d->udpData->udpSocket->socketError() == QAbstractSocket::DatagramTooLargeError)
- setError(d->udpData->udpSocket->socketError(), d->udpData->udpSocket->errorString());
+ if (d->udpData->udpSocket->error() == QAbstractSocket::DatagramTooLargeError)
+ setError(d->udpData->udpSocket->error(), d->udpData->udpSocket->errorString());
//### else maybe more serious error
return -1;
}
@@ -1727,7 +1727,7 @@ bool QSocks5SocketEnginePrivate::waitForConnected(int msecs, bool *timedOut)
return true;
setErrorState(QSocks5SocketEnginePrivate::ControlSocketError);
- if (timedOut && data->controlSocket->socketError() == QAbstractSocket::SocketTimeoutError)
+ if (timedOut && data->controlSocket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
return false;
}
@@ -1765,8 +1765,8 @@ bool QSocks5SocketEngine::waitForRead(int msecs, bool *timedOut)
if (d->data->controlSocket->state() == QAbstractSocket::UnconnectedState)
return true;
- setError(d->data->controlSocket->socketError(), d->data->controlSocket->errorString());
- if (timedOut && d->data->controlSocket->socketError() == QAbstractSocket::SocketTimeoutError)
+ setError(d->data->controlSocket->error(), d->data->controlSocket->errorString());
+ if (timedOut && d->data->controlSocket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
return false;
}
@@ -1775,8 +1775,8 @@ bool QSocks5SocketEngine::waitForRead(int msecs, bool *timedOut)
} else {
while (!d->readNotificationActivated) {
if (!d->udpData->udpSocket->waitForReadyRead(qt_subtract_from_timeout(msecs, stopWatch.elapsed()))) {
- setError(d->udpData->udpSocket->socketError(), d->udpData->udpSocket->errorString());
- if (timedOut && d->udpData->udpSocket->socketError() == QAbstractSocket::SocketTimeoutError)
+ setError(d->udpData->udpSocket->error(), d->udpData->udpSocket->errorString());
+ if (timedOut && d->udpData->udpSocket->error() == QAbstractSocket::SocketTimeoutError)
*timedOut = true;
return false;
}
diff --git a/src/network/socket/qsocks5socketengine_p.h b/src/network/socket/qsocks5socketengine_p.h
index c256987e2d..77b461b944 100644
--- a/src/network/socket/qsocks5socketengine_p.h
+++ b/src/network/socket/qsocks5socketengine_p.h
@@ -130,7 +130,7 @@ private:
Q_DISABLE_COPY_MOVE(QSocks5SocketEngine)
Q_PRIVATE_SLOT(d_func(), void _q_controlSocketConnected())
Q_PRIVATE_SLOT(d_func(), void _q_controlSocketReadNotification())
- Q_PRIVATE_SLOT(d_func(), void _q_controlSocketError(QAbstractSocket::SocketError))
+ Q_PRIVATE_SLOT(d_func(), void _q_controlSocketErrorOccurred(QAbstractSocket::SocketError))
#ifndef QT_NO_UDPSOCKET
Q_PRIVATE_SLOT(d_func(), void _q_udpSocketReadNotification())
#endif
@@ -246,7 +246,7 @@ public:
void _q_controlSocketConnected();
void _q_controlSocketReadNotification();
- void _q_controlSocketError(QAbstractSocket::SocketError);
+ void _q_controlSocketErrorOccurred(QAbstractSocket::SocketError);
#ifndef QT_NO_UDPSOCKET
void _q_udpSocketReadNotification();
#endif
diff --git a/src/network/ssl/qdtls_openssl.cpp b/src/network/ssl/qdtls_openssl.cpp
index 36b4d572fd..25a6c5f49c 100644
--- a/src/network/ssl/qdtls_openssl.cpp
+++ b/src/network/ssl/qdtls_openssl.cpp
@@ -1125,7 +1125,7 @@ qint64 QDtlsPrivateOpenSSL::writeDatagramEncrypted(QUdpSocket *socket,
// some errors can be just ignored (it's UDP, not TCP after all).
// Unlike QSslSocket we do not abort though.
QString description(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
- if (socket->socketError() != QAbstractSocket::UnknownSocketError && description.isEmpty()) {
+ if (socket->error() != QAbstractSocket::UnknownSocketError && description.isEmpty()) {
setDtlsError(QDtlsError::UnderlyingSocketError, socket->errorString());
} else {
setDtlsError(QDtlsError::TlsFatalError,
diff --git a/src/network/ssl/qsslsocket.cpp b/src/network/ssl/qsslsocket.cpp
index 64c6629645..da9d4a38fe 100644
--- a/src/network/ssl/qsslsocket.cpp
+++ b/src/network/ssl/qsslsocket.cpp
@@ -676,7 +676,7 @@ bool QSslSocket::setSocketDescriptor(qintptr socketDescriptor, SocketState state
d->createPlainSocket(openMode);
bool retVal = d->plainSocket->setSocketDescriptor(socketDescriptor, state, openMode);
d->cachedSocketDescriptor = d->plainSocket->socketDescriptor();
- d->setError(d->plainSocket->socketError(), d->plainSocket->errorString());
+ d->setError(d->plainSocket->error(), d->plainSocket->errorString());
setSocketState(state);
setOpenMode(openMode);
setLocalPort(d->plainSocket->localPort());
@@ -1784,7 +1784,7 @@ bool QSslSocket::waitForConnected(int msecs)
bool retVal = d->plainSocket->waitForConnected(msecs);
if (!retVal) {
setSocketState(d->plainSocket->state());
- d->setError(d->plainSocket->socketError(), d->plainSocket->errorString());
+ d->setError(d->plainSocket->error(), d->plainSocket->errorString());
}
return retVal;
}
@@ -1953,7 +1953,7 @@ bool QSslSocket::waitForDisconnected(int msecs)
bool retVal = d->plainSocket->waitForDisconnected(qt_subtract_from_timeout(msecs, stopWatch.elapsed()));
if (!retVal) {
setSocketState(d->plainSocket->state());
- d->setError(d->plainSocket->socketError(), d->plainSocket->errorString());
+ d->setError(d->plainSocket->error(), d->plainSocket->errorString());
}
return retVal;
}
@@ -2681,7 +2681,7 @@ void QSslSocketPrivate::createPlainSocket(QIODevice::OpenMode openMode)
q->connect(plainSocket, SIGNAL(stateChanged(QAbstractSocket::SocketState)),
q, SLOT(_q_stateChangedSlot(QAbstractSocket::SocketState)),
Qt::DirectConnection);
- q->connect(plainSocket, SIGNAL(error(QAbstractSocket::SocketError)),
+ q->connect(plainSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
q, SLOT(_q_errorSlot(QAbstractSocket::SocketError)),
Qt::DirectConnection);
q->connect(plainSocket, SIGNAL(readyRead()),
@@ -2857,7 +2857,7 @@ void QSslSocketPrivate::_q_errorSlot(QAbstractSocket::SocketError error)
readBufferMaxSize = tmpReadBufferMaxSize;
}
- setErrorAndEmit(plainSocket->socketError(), plainSocket->errorString());
+ setErrorAndEmit(plainSocket->error(), plainSocket->errorString());
}
/*!
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index f033d3b298..57f7f459ce 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -1125,7 +1125,7 @@ void QSslSocketBackendPrivate::transmit()
if (actualWritten < 0) {
//plain socket write fails if it was in the pending close state.
const ScopedBool bg(inSetAndEmitError, true);
- setErrorAndEmit(plainSocket->socketError(), plainSocket->errorString());
+ setErrorAndEmit(plainSocket->error(), plainSocket->errorString());
return;
}
transmitting = true;
diff --git a/src/network/ssl/qsslsocket_schannel.cpp b/src/network/ssl/qsslsocket_schannel.cpp
index ba15a0a65e..2db5c48ff2 100644
--- a/src/network/ssl/qsslsocket_schannel.cpp
+++ b/src/network/ssl/qsslsocket_schannel.cpp
@@ -576,7 +576,7 @@ bool QSslSocketBackendPrivate::sendToken(void *token, unsigned long tokenLength,
if (written != qint64(tokenLength)) {
// Failed to write/buffer everything or an error occurred
if (emitError)
- setErrorAndEmit(plainSocket->socketError(), plainSocket->errorString());
+ setErrorAndEmit(plainSocket->error(), plainSocket->errorString());
return false;
}
return true;
@@ -1286,7 +1286,7 @@ void QSslSocketBackendPrivate::transmit()
if (bytesWritten >= 0) {
totalBytesWritten += bytesWritten;
} else {
- setErrorAndEmit(plainSocket->socketError(), plainSocket->errorString());
+ setErrorAndEmit(plainSocket->error(), plainSocket->errorString());
return;
}
}
diff --git a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
index a2619b2d25..d7ccd9db92 100644
--- a/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
+++ b/src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
@@ -1693,6 +1693,9 @@ glyph_metrics_t QFontEngineFT::boundingBox(const QGlyphLayout &glyphs)
QFixed ymax = 0;
QFixed xmax = 0;
for (int i = 0; i < glyphs.numGlyphs; i++) {
+ // If shaping has found this should be ignored, ignore it.
+ if (!glyphs.advances[i] || glyphs.attributes[i].dontPrint)
+ continue;
Glyph *g = cacheEnabled ? defaultGlyphSet.getGlyph(glyphs.glyphs[i]) : nullptr;
if (!g) {
if (!face)
diff --git a/src/plugins/platforms/wasm/qwasmbackingstore.cpp b/src/plugins/platforms/wasm/qwasmbackingstore.cpp
index a7423e9c47..cef15543d4 100644
--- a/src/plugins/platforms/wasm/qwasmbackingstore.cpp
+++ b/src/plugins/platforms/wasm/qwasmbackingstore.cpp
@@ -36,7 +36,7 @@
#include <QtGui/qpainter.h>
#include <private/qguiapplication_p.h>
#include <qpa/qplatformscreen.h>
-
+#include <QtGui/qoffscreensurface.h>
#include <QtGui/qbackingstore.h>
QT_BEGIN_NAMESPACE
@@ -53,12 +53,29 @@ QWasmBackingStore::QWasmBackingStore(QWasmCompositor *compositor, QWindow *windo
QWasmBackingStore::~QWasmBackingStore()
{
+ auto window = this->window();
+ QWasmIntegration::get()->removeBackingStore(window);
+ destroy();
+ QWasmWindow *wasmWindow = static_cast<QWasmWindow *>(window->handle());
+ if (wasmWindow)
+ wasmWindow->setBackingStore(nullptr);
}
void QWasmBackingStore::destroy()
{
- if (m_texture->isCreated())
- m_texture->destroy();
+ if (m_texture->isCreated()) {
+ auto context = m_compositor->context();
+ auto currentContext = QOpenGLContext::currentContext();
+ if (!currentContext || !QOpenGLContext::areSharing(context, currentContext)) {
+ QOffscreenSurface offScreenSurface(m_compositor->screen()->screen());
+ offScreenSurface.setFormat(context->format());
+ offScreenSurface.create();
+ context->makeCurrent(&offScreenSurface);
+ m_texture->destroy();
+ } else {
+ m_texture->destroy();
+ }
+ }
}
QPaintDevice *QWasmBackingStore::paintDevice()
@@ -81,9 +98,9 @@ void QWasmBackingStore::updateTexture()
if (m_dirty.isNull())
return;
- if (m_recreateTexture && m_texture->isCreated()) {
+ if (m_recreateTexture) {
m_recreateTexture = false;
- m_texture->destroy();
+ destroy();
}
if (!m_texture->isCreated()) {
diff --git a/src/plugins/platforms/wasm/qwasmcompositor.cpp b/src/plugins/platforms/wasm/qwasmcompositor.cpp
index 74890ead82..a4cfaa85a8 100644
--- a/src/plugins/platforms/wasm/qwasmcompositor.cpp
+++ b/src/plugins/platforms/wasm/qwasmcompositor.cpp
@@ -58,7 +58,6 @@ QWasmCompositedWindow::QWasmCompositedWindow()
QWasmCompositor::QWasmCompositor(QWasmScreen *screen)
:QObject(screen)
- , m_frameBuffer(nullptr)
, m_blitter(new QOpenGLTextureBlitter)
, m_needComposit(false)
, m_inFlush(false)
@@ -70,7 +69,6 @@ QWasmCompositor::QWasmCompositor(QWasmScreen *screen)
QWasmCompositor::~QWasmCompositor()
{
- delete m_frameBuffer;
destroy();
}
@@ -747,3 +745,8 @@ QWasmScreen *QWasmCompositor::screen()
{
return static_cast<QWasmScreen *>(parent());
}
+
+QOpenGLContext *QWasmCompositor::context()
+{
+ return m_context.data();
+}
diff --git a/src/plugins/platforms/wasm/qwasmcompositor.h b/src/plugins/platforms/wasm/qwasmcompositor.h
index 250d244c9f..a07c747a98 100644
--- a/src/plugins/platforms/wasm/qwasmcompositor.h
+++ b/src/plugins/platforms/wasm/qwasmcompositor.h
@@ -124,11 +124,13 @@ public:
static QWasmTitleBarOptions makeTitleBarOptions(const QWasmWindow *window);
static QRect titlebarRect(QWasmTitleBarOptions tb, QWasmCompositor::SubControls subcontrol);
+ QWasmScreen *screen();
+ QOpenGLContext *context();
+
private slots:
void frame();
private:
- QWasmScreen *screen();
void notifyTopWindowChanged(QWasmWindow *window);
void drawWindow(QOpenGLTextureBlitter *blitter, QWasmScreen *screen, QWasmWindow *window);
void drawWindowContent(QOpenGLTextureBlitter *blitter, QWasmScreen *screen, QWasmWindow *window);
@@ -137,7 +139,6 @@ private:
void drawWindowDecorations(QOpenGLTextureBlitter *blitter, QWasmScreen *screen, QWasmWindow *window);
void drwPanelButton();
- QImage *m_frameBuffer;
QScopedPointer<QOpenGLContext> m_context;
QScopedPointer<QOpenGLTextureBlitter> m_blitter;
diff --git a/src/plugins/platforms/wasm/qwasmintegration.cpp b/src/plugins/platforms/wasm/qwasmintegration.cpp
index d1901d840e..37cc6185c5 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.cpp
+++ b/src/plugins/platforms/wasm/qwasmintegration.cpp
@@ -189,6 +189,11 @@ QPlatformBackingStore *QWasmIntegration::createPlatformBackingStore(QWindow *win
#endif
}
+void QWasmIntegration::removeBackingStore(QWindow* window)
+{
+ m_backingStores.remove(window);
+}
+
#ifndef QT_NO_OPENGL
QPlatformOpenGLContext *QWasmIntegration::createPlatformOpenGLContext(QOpenGLContext *context) const
{
diff --git a/src/plugins/platforms/wasm/qwasmintegration.h b/src/plugins/platforms/wasm/qwasmintegration.h
index 08b68cb5f7..cb8639086a 100644
--- a/src/plugins/platforms/wasm/qwasmintegration.h
+++ b/src/plugins/platforms/wasm/qwasmintegration.h
@@ -89,6 +89,7 @@ public:
void resizeScreen(const emscripten::val &canvas);
void resizeAllScreens();
void updateDpi();
+ void removeBackingStore(QWindow* window);
private:
mutable QWasmFontDatabase *m_fontDb;
diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc
index 95fa8355c7..28e17d2301 100644
--- a/src/sql/doc/src/sql-driver.qdoc
+++ b/src/sql/doc/src/sql-driver.qdoc
@@ -181,7 +181,7 @@
Run the installer,
select custom installation and install the MySQL C Connector
which matches your Qt installation (x86 or x64).
- After installation make sure that the needed files are there:
+ After installation check that the needed files are there:
\list
\li \c {<MySQL dir>/lib/libmysql.lib}
\li \c {<MySQL dir>/lib/libmysql.dll}
@@ -194,16 +194,20 @@
\li \c {<MariaDB dir>/include/mysql.h}
\endlist
- Build the plugin as follows (here it is assumed that the MySQL
- C Connector is installed in
+ \note As of MySQL 8.0.19, the C Connector is no longer offered as a standalone
+ installable component. Instead, you can get \c{mysql.h} and \c{libmysql.*} by
+ installing the full MySQL Server (x64 only) or the
+ \l{https://downloads.mariadb.org/connector-c/}{MariaDB C Connector}.
+
+ Build the plugin as follows (here it is assumed that \c{<MySQL dir>} is
\c{C:/Program Files/MySQL/MySQL Connector C 6.1}):
\snippet code/doc_src_sql-driver.qdoc 5
If you are not using a Microsoft compiler, replace \c nmake with \c
- mingw32-make in the line above.
+ mingw32-make above.
- When you distribute your application, remember to include libmysql.dll / libmariadb.dll
+ When you distribute your application, remember to include \e libmysql.dll / \e libmariadb.dll
in your installation package. It must be placed in the same folder
as the application executable. \e libmysql.dll additionally needs the
MSVC runtime libraries which can be installed with
diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp
index 437ce4a114..3fb5578153 100644
--- a/src/widgets/dialogs/qfiledialog.cpp
+++ b/src/widgets/dialogs/qfiledialog.cpp
@@ -1302,8 +1302,12 @@ QStringList QFileDialog::selectedFiles() const
QStringList files;
const QList<QUrl> userSelectedFiles = d->userSelectedFiles();
files.reserve(userSelectedFiles.size());
- for (const QUrl &file : userSelectedFiles)
- files.append(file.toLocalFile());
+ for (const QUrl &file : userSelectedFiles) {
+ if (file.isLocalFile() || file.isEmpty())
+ files.append(file.toLocalFile());
+ else
+ files.append(file.toString());
+ }
if (files.isEmpty() && d->usingWidgets()) {
const FileMode fm = fileMode();
if (fm != ExistingFile && fm != ExistingFiles)
@@ -3151,7 +3155,7 @@ void QFileDialogPrivate::createWidgets()
// filetype
qFileDialogUi->fileTypeCombo->setDuplicatesEnabled(false);
- qFileDialogUi->fileTypeCombo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength);
+ qFileDialogUi->fileTypeCombo->setSizeAdjustPolicy(QComboBox::AdjustToContentsOnFirstShow);
qFileDialogUi->fileTypeCombo->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
QObject::connect(qFileDialogUi->fileTypeCombo, SIGNAL(activated(int)),
q, SLOT(_q_useNameFilter(int)));
diff --git a/src/widgets/dialogs/qwizard.cpp b/src/widgets/dialogs/qwizard.cpp
index 31e32bb931..b0f4312f40 100644
--- a/src/widgets/dialogs/qwizard.cpp
+++ b/src/widgets/dialogs/qwizard.cpp
@@ -2384,13 +2384,23 @@ bool QWizard::hasVisitedPage(int theid) const
\sa hasVisitedPage()
*/
-QList<int> QWizard::visitedPages() const
+QList<int> QWizard::visitedIds() const
{
Q_D(const QWizard);
return d->history;
}
/*!
+ \obsolete Use visitedIds() instead
+*/
+#if QT_DEPRECATED_SINCE(5, 15)
+QList<int> QWizard::visitedPages() const
+{
+ return visitedIds();
+}
+#endif
+
+/*!
Returns the list of page IDs.
\since 4.5
*/
diff --git a/src/widgets/dialogs/qwizard.h b/src/widgets/dialogs/qwizard.h
index ef71efa0cb..a40635c4a5 100644
--- a/src/widgets/dialogs/qwizard.h
+++ b/src/widgets/dialogs/qwizard.h
@@ -128,7 +128,10 @@ public:
void removePage(int id);
QWizardPage *page(int id) const;
bool hasVisitedPage(int id) const;
- QList<int> visitedPages() const; // ### Qt 6: visitedIds()?
+#if QT_DEPRECATED_SINCE(5, 15)
+ QList<int> visitedPages() const;
+#endif
+ QList<int> visitedIds() const;
QList<int> pageIds() const;
void setStartId(int id);
int startId() const;
diff --git a/src/widgets/kernel/qshortcut.h b/src/widgets/kernel/qshortcut.h
index 6c92f87c46..a519a8696a 100644
--- a/src/widgets/kernel/qshortcut.h
+++ b/src/widgets/kernel/qshortcut.h
@@ -90,7 +90,8 @@ public:
template<class Obj1, typename Func1>
QShortcut(const QKeySequence &key, QWidget *parent,
const Obj1 *object1, Func1 slot1,
- Qt::ShortcutContext context = Qt::WindowShortcut)
+ Qt::ShortcutContext context = Qt::WindowShortcut,
+ typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
: QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
{
connect(this, &QShortcut::activated, object1, std::move(slot1));
@@ -98,7 +99,8 @@ public:
template<class Obj1, typename Func1, typename Func2>
QShortcut(const QKeySequence &key, QWidget *parent,
const Obj1 *object1, Func1 slot1, Func2 slot2,
- Qt::ShortcutContext context = Qt::WindowShortcut)
+ Qt::ShortcutContext context = Qt::WindowShortcut,
+ typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0)
: QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
{
connect(this, &QShortcut::activated, object1, std::move(slot1));
@@ -108,7 +110,9 @@ public:
QShortcut(const QKeySequence &key, QWidget *parent,
const Obj1 *object1, Func1 slot1,
const Obj2 *object2, Func2 slot2,
- Qt::ShortcutContext context = Qt::WindowShortcut)
+ Qt::ShortcutContext context = Qt::WindowShortcut,
+ typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj1*>::Value>::type* = 0,
+ typename std::enable_if<QtPrivate::IsPointerToTypeDerivedFromQObject<Obj2*>::Value>::type* = 0)
: QShortcut(key, parent, static_cast<const char*>(nullptr), static_cast<const char*>(nullptr), context)
{
connect(this, &QShortcut::activated, object1, std::move(slot1));
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index b4699ae040..03d6ea31e9 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -395,7 +395,7 @@ void QWidget::setAutoFillBackground(bool enabled)
Every widget's constructor accepts one or two standard arguments:
\list 1
- \li \c{QWidget *parent = \nullptr} is the parent of the new widget.
+ \li \c{QWidget *parent = nullptr} is the parent of the new widget.
If it is \nullptr (the default), the new widget will be a window.
If not, it will be a child of \e parent, and be constrained by
\e parent's geometry (unless you specify Qt::Window as window flag).
diff --git a/src/widgets/widgets/qcombobox.cpp b/src/widgets/widgets/qcombobox.cpp
index 9c1bd1e79a..47993b8f3b 100644
--- a/src/widgets/widgets/qcombobox.cpp
+++ b/src/widgets/widgets/qcombobox.cpp
@@ -894,7 +894,7 @@ QStyleOptionComboBox QComboBoxPrivateContainer::comboStyleOption() const
\value AdjustToContents The combobox will always adjust to the contents
\value AdjustToContentsOnFirstShow The combobox will adjust to its contents the first time it is shown.
- \value AdjustToMinimumContentsLength Use AdjustToContents or AdjustToContentsOnFirstShow instead.
+ \omitvalue AdjustToMinimumContentsLength
\value AdjustToMinimumContentsLengthWithIcon The combobox will adjust to \l minimumContentsLength plus space for an icon. For performance reasons use this policy on large models.
*/
diff --git a/src/widgets/widgets/qcombobox.h b/src/widgets/widgets/qcombobox.h
index 444c834e88..99816954fa 100644
--- a/src/widgets/widgets/qcombobox.h
+++ b/src/widgets/widgets/qcombobox.h
@@ -137,8 +137,11 @@ public:
enum SizeAdjustPolicy {
AdjustToContents,
AdjustToContentsOnFirstShow,
- AdjustToMinimumContentsLength, // ### Qt 6: remove
- AdjustToMinimumContentsLengthWithIcon
+#if QT_DEPRECATED_SINCE(5, 15)
+ AdjustToMinimumContentsLength Q_DECL_ENUMERATOR_DEPRECATED_X(
+ "Use AdjustToContents or AdjustToContentsOnFirstShow"), // ### Qt 6: remove
+#endif
+ AdjustToMinimumContentsLengthWithIcon = AdjustToContentsOnFirstShow + 2
};
Q_ENUM(SizeAdjustPolicy)
diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp
index 48588b1e8e..105318ba20 100644
--- a/src/widgets/widgets/qdatetimeedit.cpp
+++ b/src/widgets/widgets/qdatetimeedit.cpp
@@ -683,7 +683,8 @@ void QDateTimeEdit::setTimeRange(QTime min, QTime max)
\brief The currently displayed fields of the date time edit.
Returns a bit set of the displayed sections for this format.
- \a setDisplayFormat(), displayFormat()
+
+ \sa setDisplayFormat(), displayFormat()
*/
QDateTimeEdit::Sections QDateTimeEdit::displayedSections() const
@@ -696,7 +697,8 @@ QDateTimeEdit::Sections QDateTimeEdit::displayedSections() const
\property QDateTimeEdit::currentSection
\brief The current section of the spinbox.
- \a setCurrentSection()
+
+ \sa setCurrentSection()
*/
QDateTimeEdit::Section QDateTimeEdit::currentSection() const
@@ -776,8 +778,7 @@ int QDateTimeEdit::sectionCount() const
the cursorPosition is 5, currentSectionIndex returns 1. If the
cursorPosition is 3, currentSectionIndex is 0, and so on.
- \a setCurrentSection()
- \sa currentSection()
+ \sa setCurrentSection(), currentSection()
*/
int QDateTimeEdit::currentSectionIndex() const
@@ -1448,7 +1449,16 @@ void QDateTimeEdit::fixup(QString &input) const
QValidator::State state;
int copy = d->edit->cursorPosition();
- d->validateAndInterpret(input, copy, state, true);
+ QDateTime value = d->validateAndInterpret(input, copy, state, true);
+ /*
+ String was valid, but the datetime still is not; use the time that
+ has the same distance from epoch.
+ CorrectToPreviousValue correction is handled by QAbstractSpinBox.
+ */
+ if (!value.isValid() && d->correctionMode == QAbstractSpinBox::CorrectToNearestValue) {
+ value = QDateTime::fromMSecsSinceEpoch(value.toMSecsSinceEpoch(), value.timeSpec());
+ input = textFromDateTime(value);
+ }
}
@@ -2085,6 +2095,17 @@ QDateTime QDateTimeEditPrivate::stepBy(int sectionIndex, int steps, bool test) c
const int oldDay = v.date().day(calendar);
setDigit(v, sectionIndex, val);
+ /*
+ Stepping into a daylight saving time that doesn't exist,
+ so use the time that has the same distance from epoch.
+ */
+ if (!v.isValid()) {
+ auto msecsSinceEpoch = v.toMSecsSinceEpoch();
+ // decreasing from e.g 3am to 2am would get us back to 3am, but we want 1am
+ if (steps < 0 && sn.type & HourSectionMask)
+ msecsSinceEpoch -= 3600 * 1000;
+ v = QDateTime::fromMSecsSinceEpoch(msecsSinceEpoch, v.timeSpec());
+ }
// if this sets year or month it will make
// sure that days are lowered if needed.
diff --git a/src/widgets/widgets/qdockwidget.h b/src/widgets/widgets/qdockwidget.h
index b53a991dae..36dff4d420 100644
--- a/src/widgets/widgets/qdockwidget.h
+++ b/src/widgets/widgets/qdockwidget.h
@@ -78,7 +78,10 @@ public:
DockWidgetVerticalTitleBar = 0x08,
DockWidgetFeatureMask = 0x0f,
- AllDockWidgetFeatures = DockWidgetClosable|DockWidgetMovable|DockWidgetFloatable, // ### Qt 6: remove
+#if QT_DEPRECATED_SINCE(5, 15)
+ AllDockWidgetFeatures Q_DECL_ENUMERATOR_DEPRECATED =
+ DockWidgetClosable|DockWidgetMovable|DockWidgetFloatable, // ### Qt 6: remove
+#endif
NoDockWidgetFeatures = 0x00,
Reserved = 0xff
diff --git a/src/widgets/widgets/qlcdnumber.cpp b/src/widgets/widgets/qlcdnumber.cpp
index 3ddada4514..4d299d8739 100644
--- a/src/widgets/widgets/qlcdnumber.cpp
+++ b/src/widgets/widgets/qlcdnumber.cpp
@@ -713,7 +713,7 @@ void QLCDNumber::paintEvent(QPaintEvent *)
void QLCDNumberPrivate::internalSetString(const QString& s)
{
Q_Q(QLCDNumber);
- QString buffer;
+ QString buffer(ndigits, QChar());
int i;
int len = s.length();
QBitArray newPoints(ndigits);
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index 9faf161cb1..0ba3611cfd 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -1202,8 +1202,8 @@ QMargins QLineEdit::textMargins() const
The input mask is an input template string. It can contain the following elements:
\table
- \row \li Mask Characters \li Defines the class of input characters that are
- considered valid in this position
+ \row \li Mask Characters \li Defines the \l {QChar::} {Category} of input characters
+ that are considered valid in this position
\row \li Meta Characters \li Various special meanings
\row \li Separators \li All other characters are regarded as immutable separators
\endtable
@@ -1212,17 +1212,21 @@ QMargins QLineEdit::textMargins() const
\table
\header \li Mask Character \li Meaning
- \row \li \c A \li ASCII alphabetic character required. A-Z, a-z.
- \row \li \c a \li ASCII alphabetic character permitted but not required.
- \row \li \c N \li ASCII alphanumeric character required. A-Z, a-z, 0-9.
- \row \li \c n \li ASCII alphanumeric character permitted but not required.
+ \row \li \c A \li character of the Letter category required, such as A-Z, a-z.
+ \row \li \c a \li character of the Letter category permitted but not required.
+ \row \li \c N \li character of the Letter or Number category required, such as
+ A-Z, a-z, 0-9.
+ \row \li \c n \li character of the Letter or Number category permitted but not required.
\row \li \c X \li Any non-blank character required.
\row \li \c x \li Any non-blank character permitted but not required.
- \row \li \c 9 \li ASCII digit required. 0-9.
- \row \li \c 0 \li ASCII digit permitted but not required.
- \row \li \c D \li ASCII digit required. 1-9.
- \row \li \c d \li ASCII digit permitted but not required (1-9).
- \row \li \c # \li ASCII digit or plus/minus sign permitted but not required.
+ \row \li \c 9 \li character of the Number category required, e.g 0-9.
+ \row \li \c 0 \li character of the Number category permitted but not required.
+ \row \li \c D \li character of the Number category and larger than zero required,
+ such as 1-9
+ \row \li \c d \li character of the Number category and larger than zero permitted but not
+ required, such as 1-9.
+ \row \li \c # \li character of the Number category, or plus/minus sign permitted but not
+ required.
\row \li \c H \li Hexadecimal character required. A-F, a-f, 0-9.
\row \li \c h \li Hexadecimal character permitted but not required.
\row \li \c B \li Binary character required. 0-1.
@@ -1264,7 +1268,7 @@ QMargins QLineEdit::textMargins() const
To get range control (e.g., for an IP address) use masks together
with \l{setValidator()}{validators}.
- \sa maxLength
+ \sa maxLength, QChar::isLetter(), QChar::isNumber(), QChar::digitValue()
*/
QString QLineEdit::inputMask() const
{
diff --git a/src/widgets/widgets/qstatusbar.h b/src/widgets/widgets/qstatusbar.h
index 2492e8487f..976e45f9ed 100644
--- a/src/widgets/widgets/qstatusbar.h
+++ b/src/widgets/widgets/qstatusbar.h
@@ -83,7 +83,6 @@ protected:
void paintEvent(QPaintEvent *) override;
void resizeEvent(QResizeEvent *) override;
- // ### Qt 6: consider making reformat() and hideOrShow() private
void reformat();
void hideOrShow();
bool event(QEvent *) override;
diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
index c969e72c18..427ce1a424 100644
--- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
+++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp
@@ -2335,14 +2335,15 @@ void tst_QSettings::testRegistry32And64Bit()
void tst_QSettings::trailingWhitespace()
{
+ const QString path = settingsPath("trailingWhitespace");
{
- QSettings s("tst_QSettings_trailingWhitespace");
+ QSettings s(path, QSettings::IniFormat);
s.setValue("trailingSpace", "x ");
s.setValue("trailingTab", "x\t");
s.setValue("trailingNewline", "x\n");
}
{
- QSettings s("tst_QSettings_trailingWhitespace");
+ QSettings s(path, QSettings::IniFormat);
QCOMPARE(s.value("trailingSpace").toString(), QLatin1String("x "));
QCOMPARE(s.value("trailingTab").toString(), QLatin1String("x\t"));
QCOMPARE(s.value("trailingNewline").toString(), QLatin1String("x\n"));
diff --git a/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp b/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp
index 4e105d7dc7..35c5e7cb75 100644
--- a/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp
+++ b/tests/auto/corelib/kernel/qdeadlinetimer/tst_qdeadlinetimer.cpp
@@ -580,11 +580,26 @@ void tst_QDeadlineTimer::stdchrono()
auto now = QDeadlineTimer::current(timerType);
QTest::qSleep(minResolution);
+ auto sampling_start = steady_clock::now();
+ auto steady_deadline = now.deadline<steady_clock>();
+ auto system_deadline = now.deadline<system_clock>();
auto steady_after = steady_clock::now();
auto system_after = system_clock::now();
+ auto sampling_end = steady_clock::now();
+
+ auto sampling_diff = duration_cast<milliseconds>(sampling_end - sampling_start).count();
+ if (sampling_diff > minResolution/2) {
+ qWarning() << "Sampling clock took" << sampling_diff << "ms";
+ QSKIP("Sampling clock took too long, aborting test", Abort);
+ }
+ auto total_diff = duration_cast<milliseconds>(steady_after - steady_before).count();
+ if (total_diff >= 3*minResolution) {
+ qWarning() << "Measurement took" << total_diff << "ms";
+ QSKIP("Measurement took too long, aborting test", Abort);
+ }
{
- auto diff = duration_cast<milliseconds>(steady_after - now.deadline<steady_clock>());
+ auto diff = duration_cast<milliseconds>(steady_after - steady_deadline);
QVERIFY2(diff.count() > minResolution/2, QByteArray::number(qint64(diff.count())));
QVERIFY2(diff.count() < 3*minResolution/2, QByteArray::number(qint64(diff.count())));
QDeadlineTimer dt_after(steady_after, timerType);
@@ -592,7 +607,7 @@ void tst_QDeadlineTimer::stdchrono()
("now = " + QLocale().toString(now.deadlineNSecs()) +
"; after = " + QLocale().toString(dt_after.deadlineNSecs())).toLatin1());
- diff = duration_cast<milliseconds>(now.deadline<steady_clock>() - steady_before);
+ diff = duration_cast<milliseconds>(steady_deadline - steady_before);
QVERIFY2(diff.count() > minResolution/2, QByteArray::number(qint64(diff.count())));
QVERIFY2(diff.count() < 3*minResolution/2, QByteArray::number(qint64(diff.count())));
QDeadlineTimer dt_before(steady_before, timerType);
@@ -601,7 +616,7 @@ void tst_QDeadlineTimer::stdchrono()
"; before = " + QLocale().toString(dt_before.deadlineNSecs())).toLatin1());
}
{
- auto diff = duration_cast<milliseconds>(system_after - now.deadline<system_clock>());
+ auto diff = duration_cast<milliseconds>(system_after - system_deadline);
QVERIFY2(diff.count() > minResolution/2, QByteArray::number(qint64(diff.count())));
QVERIFY2(diff.count() < 3*minResolution/2, QByteArray::number(qint64(diff.count())));
QDeadlineTimer dt_after(system_after, timerType);
@@ -609,7 +624,7 @@ void tst_QDeadlineTimer::stdchrono()
("now = " + QLocale().toString(now.deadlineNSecs()) +
"; after = " + QLocale().toString(dt_after.deadlineNSecs())).toLatin1());
- diff = duration_cast<milliseconds>(now.deadline<system_clock>() - system_before);
+ diff = duration_cast<milliseconds>(system_deadline - system_before);
QVERIFY2(diff.count() > minResolution/2, QByteArray::number(qint64(diff.count())));
QVERIFY2(diff.count() < 3*minResolution/2, QByteArray::number(qint64(diff.count())));
QDeadlineTimer dt_before(system_before, timerType);
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index b1d3ea19d6..05599f9585 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -7416,6 +7416,12 @@ void tst_QObject::checkArgumentsForNarrowing()
FITS(bool, const QObject *&);
FITS(int (*)(bool), void (QObject::*)());
+ {
+ // wg21.link/P1957
+ NARROWS(char*, bool);
+ NARROWS(void (QObject::*)(), bool);
+ }
+
#undef IS_UNSCOPED_ENUM_SIGNED
#undef NARROWS_IF
diff --git a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
index 12279133a2..28922574b8 100644
--- a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
+++ b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
@@ -397,8 +397,6 @@ public:
return true;
}
- QXmlStreamReader reader(&inputFile);
-
/* See testcases.dtd which reads: 'Nonvalidating parsers
* must also accept "invalid" testcases, but validating ones must reject them.' */
if(type == QLatin1String("invalid") || type == QLatin1String("valid"))
@@ -583,6 +581,8 @@ private slots:
void roundTrip() const;
void roundTrip_data() const;
+ void entityExpansionLimit() const;
+
private:
static QByteArray readFile(const QString &filename);
@@ -1755,6 +1755,46 @@ void tst_QXmlStream::roundTrip_data() const
"</root>\n";
}
+void tst_QXmlStream::entityExpansionLimit() const
+{
+ QString xml = QStringLiteral("<?xml version=\"1.0\"?>"
+ "<!DOCTYPE foo ["
+ "<!ENTITY a \"0123456789\" >"
+ "<!ENTITY b \"&a;&a;&a;&a;&a;&a;&a;&a;&a;&a;\" >"
+ "<!ENTITY c \"&b;&b;&b;&b;&b;&b;&b;&b;&b;&b;\" >"
+ "<!ENTITY d \"&c;&c;&c;&c;&c;&c;&c;&c;&c;&c;\" >"
+ "]>"
+ "<foo>&d;&d;&d;</foo>");
+ {
+ QXmlStreamReader reader(xml);
+ QCOMPARE(reader.entityExpansionLimit(), 4096);
+ do {
+ reader.readNext();
+ } while (!reader.atEnd());
+ QCOMPARE(reader.error(), QXmlStreamReader::NotWellFormedError);
+ }
+
+ // &d; expands to 10k characters, minus the 3 removed (&d;) means it should fail
+ // with a limit of 9996 chars and pass with 9997
+ {
+ QXmlStreamReader reader(xml);
+ reader.setEntityExpansionLimit(9996);
+ do {
+ reader.readNext();
+ } while (!reader.atEnd());
+
+ QCOMPARE(reader.error(), QXmlStreamReader::NotWellFormedError);
+ }
+ {
+ QXmlStreamReader reader(xml);
+ reader.setEntityExpansionLimit(9997);
+ do {
+ reader.readNext();
+ } while (!reader.atEnd());
+ QCOMPARE(reader.error(), QXmlStreamReader::NoError);
+ }
+}
+
void tst_QXmlStream::roundTrip() const
{
QFETCH(QString, in);
diff --git a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
index 771a4d0a32..6001829854 100644
--- a/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
+++ b/tests/auto/gui/image/qimagereader/tst_qimagereader.cpp
@@ -1081,7 +1081,7 @@ private slots:
void acceptNewConnection()
{
serverSocket = server.nextPendingConnection();
- connect(serverSocket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(serverSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(remoteHostClosed()));
}
diff --git a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
index a0e8525268..6fe3e20083 100644
--- a/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
+++ b/tests/auto/gui/text/qfontmetrics/tst_qfontmetrics.cpp
@@ -59,6 +59,7 @@ private slots:
void mnemonicTextWidth();
void leadingBelowLine();
void elidedMetrics();
+ void zeroWidthMetrics();
};
void tst_QFontMetrics::same()
@@ -358,5 +359,28 @@ void tst_QFontMetrics::elidedMetrics()
QFontDatabase::removeApplicationFont(id);
}
+void tst_QFontMetrics::zeroWidthMetrics()
+{
+ QString zwnj(QChar(0x200c));
+ QString zwsp(QChar(0x200b));
+
+ QFont font;
+ QFontMetricsF fm(font);
+ QCOMPARE(fm.horizontalAdvance(zwnj), 0);
+ QCOMPARE(fm.horizontalAdvance(zwsp), 0);
+ QCOMPARE(fm.boundingRect(zwnj).width(), 0);
+ QCOMPARE(fm.boundingRect(zwsp).width(), 0);
+
+ QString string1 = QStringLiteral("(") + zwnj + QStringLiteral(")");
+ QString string2 = QStringLiteral("(") + zwnj + zwnj + QStringLiteral(")");
+ QString string3 = QStringLiteral("(") + zwsp + QStringLiteral(")");
+ QString string4 = QStringLiteral("(") + zwsp + zwsp + QStringLiteral(")");
+
+ QCOMPARE(fm.horizontalAdvance(string1), fm.horizontalAdvance(string2));
+ QCOMPARE(fm.horizontalAdvance(string3), fm.horizontalAdvance(string4));
+ QCOMPARE(fm.boundingRect(string1).width(), fm.boundingRect(string2).width());
+ QCOMPARE(fm.boundingRect(string3).width(), fm.boundingRect(string4).width());
+}
+
QTEST_MAIN(tst_QFontMetrics)
#include "tst_qfontmetrics.moc"
diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h
index 641bf1d672..4dd6ce897b 100644
--- a/tests/auto/network-settings.h
+++ b/tests/auto/network-settings.h
@@ -190,7 +190,7 @@ public:
if (!s.peerAddress().isNull())
debug << ", peer=" << s.peerAddress().toString() << ':' << s.peerPort();
debug << ", type=" << s.socketType() << ", state=" << s.state()
- << ", error=" << s.socketError() << ": " << s.errorString();
+ << ", error=" << s.error() << ": " << s.errorString();
return result.toLocal8Bit();
}
#endif // QT_NETWORK_LIB
diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp
index 38db74e52c..904cfd52b0 100644
--- a/tests/auto/network/access/http2/tst_http2.cpp
+++ b/tests/auto/network/access/http2/tst_http2.cpp
@@ -279,7 +279,7 @@ void tst_Http2::singleRequest()
QVERIFY(prefaceOK);
QVERIFY(serverGotSettingsACK);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
}
@@ -444,7 +444,7 @@ void tst_Http2::pushPromise()
QVERIFY(prefaceOK);
QVERIFY(serverGotSettingsACK);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
// Now, the most interesting part!
@@ -466,7 +466,7 @@ void tst_Http2::pushPromise()
QCOMPARE(nSentRequests, 0);
// Decreased by replyFinished():
QCOMPARE(nRequests, 0);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
}
@@ -511,7 +511,7 @@ void tst_Http2::goaway()
QNetworkRequest request(url);
request.setAttribute(QNetworkRequest::Http2AllowedAttribute, QVariant(true));
replies[i] = manager->get(request);
- QCOMPARE(replies[i]->networkError(), QNetworkReply::NoError);
+ QCOMPARE(replies[i]->error(), QNetworkReply::NoError);
void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) =
&QNetworkReply::error;
connect(replies[i], errorSignal, this, &tst_Http2::replyFinishedWithError);
@@ -671,7 +671,7 @@ void tst_Http2::connectToHost()
connect(reply, &QNetworkReply::finished, [this, reply]() {
--nRequests;
eventLoop.exitLoop();
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
// Nothing received back:
QVERIFY(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isNull());
@@ -698,7 +698,7 @@ void tst_Http2::connectToHost()
QVERIFY(prefaceOK);
QVERIFY(serverGotSettingsACK);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
}
@@ -927,10 +927,10 @@ void tst_Http2::replyFinished()
QVERIFY(nRequests);
if (const auto reply = qobject_cast<QNetworkReply *>(sender())) {
- if (reply->networkError() != QNetworkReply::NoError)
+ if (reply->error() != QNetworkReply::NoError)
stopEventLoop();
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
const QVariant http2Used(reply->attribute(QNetworkRequest::Http2WasUsedAttribute));
if (!http2Used.isValid() || !http2Used.toBool())
@@ -960,9 +960,9 @@ void tst_Http2::replyFinishedWithError()
if (const auto reply = qobject_cast<QNetworkReply *>(sender())) {
// For now this is a 'generic' code, it just verifies some error was
// reported without testing its type.
- if (reply->networkError() == QNetworkReply::NoError)
+ if (reply->error() == QNetworkReply::NoError)
stopEventLoop();
- QVERIFY(reply->networkError() != QNetworkReply::NoError);
+ QVERIFY(reply->error() != QNetworkReply::NoError);
}
--nRequests;
diff --git a/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp b/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp
index 4b6e04f467..182e3e9547 100644
--- a/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp
+++ b/tests/auto/network/access/qabstractnetworkcache/tst_qabstractnetworkcache.cpp
@@ -322,10 +322,10 @@ void tst_QAbstractNetworkCache::runTest()
QByteArray secondData = reply2->readAll();
if (!fetchFromCache && cacheLoadControl == QNetworkRequest::AlwaysCache) {
- QCOMPARE(reply2->networkError(), QNetworkReply::ContentNotFoundError);
+ QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError);
QCOMPARE(secondData, QByteArray());
} else {
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QCOMPARE(QString(secondData), QString(goodData));
QCOMPARE(secondData, goodData);
QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
@@ -375,12 +375,12 @@ void tst_QAbstractNetworkCache::checkSynchronous()
QByteArray secondData = reply2->readAll();
if (!fetchFromCache && cacheLoadControl == QNetworkRequest::AlwaysCache) {
- QCOMPARE(reply2->networkError(), QNetworkReply::ContentNotFoundError);
+ QCOMPARE(reply2->error(), QNetworkReply::ContentNotFoundError);
QCOMPARE(secondData, QByteArray());
} else {
- if (reply2->networkError() != QNetworkReply::NoError)
+ if (reply2->error() != QNetworkReply::NoError)
qDebug() << reply2->errorString();
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QCOMPARE(QString(secondData), QString(goodData));
QCOMPARE(secondData, goodData);
QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 5ddcc5ae37..5d46002a7c 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -684,7 +684,7 @@ private:
//qDebug() << "connectSocketSignals" << client;
connect(client.data(), SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
connect(client.data(), SIGNAL(bytesWritten(qint64)), this, SLOT(bytesWrittenSlot()));
- connect(client.data(), SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(client.data(), SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(slotError(QAbstractSocket::SocketError)));
}
@@ -1121,7 +1121,7 @@ protected:
// get the "request" packet
if (!client->waitForReadyRead(2000)) {
- qDebug() << "FastSender:" << client->socketError() << "waiting for \"request\" packet";
+ qDebug() << "FastSender:" << client->error() << "waiting for \"request\" packet";
return;
}
client->readAll(); // we're not interested in the actual contents (e.g. HTTP request)
@@ -1158,7 +1158,7 @@ protected:
while (client->bytesToWrite() > 0) {
qDebug() << "Still having" << client->bytesToWrite() << "bytes to write, doing that now";
if (!client->waitForBytesWritten(10000)) {
- qDebug() << "ERROR: FastSender:" << client->socketError() << "cleaning up residue";
+ qDebug() << "ERROR: FastSender:" << client->error() << "cleaning up residue";
return;
}
}
@@ -1178,7 +1178,7 @@ protected:
while (client->bytesToWrite() > 0) {
if (!client->waitForBytesWritten(10000)) {
- qDebug() << "ERROR: FastSender:" << client->socketError() << "during blocking write";
+ qDebug() << "ERROR: FastSender:" << client->error() << "during blocking write";
return;
}
}
@@ -1436,7 +1436,7 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op,
if (request.attribute(QNetworkRequest::SynchronousRequestAttribute).toBool()) {
if (reply->isFinished())
- code = reply->networkError() != QNetworkReply::NoError ? Failure : Success;
+ code = reply->error() != QNetworkReply::NoError ? Failure : Success;
else
code = Failure;
} else {
@@ -1501,10 +1501,10 @@ static QByteArray msgWaitForFinished(QNetworkReplyPtr &reply)
debug << reply->url();
if (!reply->isFinished())
debug << "timed out.";
- else if (reply->networkError() == QNetworkReply::NoError)
+ else if (reply->error() == QNetworkReply::NoError)
debug << "finished.";
else
- debug << "failed: #" << reply->networkError() << reply->errorString();
+ debug << "failed: #" << reply->error() << reply->errorString();
return result.toLocal8Bit();
}
@@ -1652,7 +1652,7 @@ void tst_QNetworkReply::stateChecking()
QCOMPARE(int(reply->operation()), int(QNetworkAccessManager::GetOperation));
// error and not error are OK since we might change underlying behaviour again
if (!reply->isFinished())
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->url(), url);
reply->abort();
@@ -1669,7 +1669,7 @@ void tst_QNetworkReply::invalidProtocol()
QCOMPARE(result, errorMsg);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::ProtocolUnknownError);
+ QCOMPARE(reply->error(), QNetworkReply::ProtocolUnknownError);
}
void tst_QNetworkReply::getFromData_data()
@@ -1761,7 +1761,7 @@ void tst_QNetworkReply::getFromData()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, req, reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentTypeHeader).toString(), mimeType);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(expected.size()));
@@ -1800,7 +1800,7 @@ void tst_QNetworkReply::getFromFile()
QVERIFY(waitForFinish(reply) != Timeout);
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size());
QCOMPARE(reply->readAll(), data);
@@ -1817,7 +1817,7 @@ void tst_QNetworkReply::getFromFile()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size());
QCOMPARE(qint64(reply->readAll().size()), file.size());
@@ -1856,7 +1856,7 @@ void tst_QNetworkReply::getFromFileSpecial()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), resource.size());
QCOMPARE(reply->readAll(), resource.readAll());
@@ -1890,7 +1890,7 @@ void tst_QNetworkReply::getFromFtp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
QCOMPARE(reply->readAll(), reference.readAll());
@@ -1903,7 +1903,7 @@ void tst_QNetworkReply::getFromFtpAfterError()
invalidReply.reset(manager.get(invalidRequest));
QSignalSpy spy(invalidReply.data(), SIGNAL(error(QNetworkReply::NetworkError)));
QVERIFY(spy.wait());
- QCOMPARE(invalidReply->networkError(), QNetworkReply::ContentNotFoundError);
+ QCOMPARE(invalidReply->error(), QNetworkReply::ContentNotFoundError);
QFile reference(testDataDir + "/rfc3252.txt");
QVERIFY(reference.open(QIODevice::ReadOnly));
@@ -1911,7 +1911,7 @@ void tst_QNetworkReply::getFromFtpAfterError()
QNetworkReplyPtr validReply;
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, validRequest, validReply));
QCOMPARE(validReply->url(), validRequest.url());
- QCOMPARE(validReply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(validReply->error(), QNetworkReply::NoError);
QCOMPARE(validReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
QCOMPARE(validReply->readAll(), reference.readAll());
}
@@ -1944,7 +1944,7 @@ void tst_QNetworkReply::getFromHttp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply->size(), reference.size());
// only compare when the header is set.
@@ -2039,7 +2039,7 @@ void tst_QNetworkReply::headFromHttp()
QVERIFY(time.elapsed() < 8000); //check authentication didn't wait for the server to timeout the http connection (15s on qt test server)
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
// only compare when the header is set.
if (reply->header(QNetworkRequest::ContentLengthHeader).isValid() && referenceSize >= 0)
@@ -2115,8 +2115,8 @@ static QByteArray msgGetErrors(int waitResult, const QNetworkReplyPtr &reply)
QByteArray result ="waitResult=" + QByteArray::number(waitResult);
if (reply->isFinished())
result += ", finished";
- if (reply->networkError() != QNetworkReply::NoError)
- result += ", error: " + QByteArray::number(int(reply->networkError()));
+ if (reply->error() != QNetworkReply::NoError)
+ result += ", error: " + QByteArray::number(int(reply->error()));
return result;
}
@@ -2146,7 +2146,7 @@ void tst_QNetworkReply::getErrors()
reply->setParent(this); // we have expect-fails
if (!reply->isFinished())
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
// now run the request:
const int waitResult = waitForFinish(reply);
@@ -2158,7 +2158,7 @@ void tst_QNetworkReply::getErrors()
// the line below is not necessary
QEXPECT_FAIL("ftp-dir-not-readable", "QFtp cannot provide enough detail", Abort);
#endif
- QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error));
+ QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
QTEST(reply->readAll().isEmpty(), "dataIsEmpty");
@@ -2217,7 +2217,7 @@ void tst_QNetworkReply::putToFile()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -2248,7 +2248,7 @@ void tst_QNetworkReply::putToFtp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -2296,7 +2296,7 @@ void tst_QNetworkReply::putToFtpWithInvalidCredentials()
QVERIFY(r->isFinished());
QCOMPARE(r->url(), url);
- QCOMPARE(r->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(r->error(), QNetworkReply::AuthenticationRequiredError);
r->close();
}
}
@@ -2322,7 +2322,7 @@ void tst_QNetworkReply::putToHttp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created
@@ -2363,7 +2363,7 @@ void tst_QNetworkReply::putToHttpSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created
@@ -2397,7 +2397,7 @@ void tst_QNetworkReply::postToHttp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2429,7 +2429,7 @@ void tst_QNetworkReply::postToHttpSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2692,7 +2692,7 @@ void tst_QNetworkReply::postToHttpMultipart()
multiPart->deleteLater();
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2734,7 +2734,7 @@ void tst_QNetworkReply::multipartSkipIndices() // QTBUG-32534
QNetworkReplyPtr reply;
RUN_REQUEST(runMultipartRequest(request, reply, multiPart, "POST"));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
QByteArray line;
@@ -2780,7 +2780,7 @@ void tst_QNetworkReply::putToHttpMultipart()
multiPart->deleteLater();
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2819,7 +2819,7 @@ void tst_QNetworkReply::putToHttps()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created
@@ -2864,7 +2864,7 @@ void tst_QNetworkReply::putToHttpsSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201); // 201 Created
@@ -2902,7 +2902,7 @@ void tst_QNetworkReply::postToHttps()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2938,7 +2938,7 @@ void tst_QNetworkReply::postToHttpsSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -2983,7 +2983,7 @@ void tst_QNetworkReply::postToHttpsMultipart()
multiPart->deleteLater();
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -3036,7 +3036,7 @@ void tst_QNetworkReply::deleteFromHttp()
QNetworkReplyPtr reply;
runSimpleRequest(QNetworkAccessManager::DeleteOperation, request, reply, 0);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), resultCode);
}
@@ -3086,19 +3086,19 @@ void tst_QNetworkReply::putGetDeleteGetFromHttp()
QNetworkReplyPtr reply;
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PutOperation, putRequest, reply, 0));
- QCOMPARE(reply->networkError(), putError);
+ QCOMPARE(reply->error(), putError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), putResultCode);
runSimpleRequest(QNetworkAccessManager::GetOperation, putRequest, reply, 0);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
runSimpleRequest(QNetworkAccessManager::DeleteOperation, deleteRequest, reply, 0);
- QCOMPARE(reply->networkError(), deleteError);
+ QCOMPARE(reply->error(), deleteError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), deleteResultCode);
runSimpleRequest(QNetworkAccessManager::GetOperation, get2Request, reply, 0);
- QCOMPARE(reply->networkError(), get2Error);
+ QCOMPARE(reply->error(), get2Error);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), get2ResultCode);
}
@@ -3143,7 +3143,7 @@ void tst_QNetworkReply::connectToIPv6Address()
QVERIFY(server.receivedData.contains(hostinfo));
QCOMPARE(content, dataToSend);
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
}
void tst_QNetworkReply::sendCustomRequestToHttp_data()
@@ -3189,7 +3189,7 @@ void tst_QNetworkReply::sendCustomRequestToHttp()
runCustomRequest(request, reply, verb, device);
QCOMPARE(reply->url(), url);
QFETCH(QNetworkReply::NetworkError, error);
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
QFETCH(int, resultCode);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), resultCode);
QFETCH(QByteArray, expectedContent);
@@ -3225,7 +3225,7 @@ void tst_QNetworkReply::ioGetFromData()
QVERIFY(!QTestEventLoop::instance().timeout());
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QFETCH(QByteArray, data);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toInt(), data.size());
@@ -3261,7 +3261,7 @@ void tst_QNetworkReply::ioGetFromFileSpecial()
QVERIFY(!QTestEventLoop::instance().timeout());
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), resource.size());
QCOMPARE(qint64(reader.data.size()), resource.size());
@@ -3294,7 +3294,7 @@ void tst_QNetworkReply::ioGetFromFile()
QVERIFY(!QTestEventLoop::instance().timeout());
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), file.size());
QCOMPARE(qint64(reader.data.size()), file.size());
@@ -3326,7 +3326,7 @@ void tst_QNetworkReply::ioGetFromFtp()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QFETCH(qint64, expectedSize);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), expectedSize);
@@ -3356,8 +3356,8 @@ void tst_QNetworkReply::ioGetFromFtpWithReuse()
QCOMPARE(reply1->url(), request.url());
QCOMPARE(reply2->url(), request.url());
- QCOMPARE(reply1->networkError(), QNetworkReply::NoError);
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply1->error(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QCOMPARE(qint64(reader1.data.size()), reference.size());
QCOMPARE(qint64(reader2.data.size()), reference.size());
@@ -3382,7 +3382,7 @@ void tst_QNetworkReply::ioGetFromHttp()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
@@ -3408,8 +3408,8 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseParallel()
QCOMPARE(reply1->url(), request.url());
QCOMPARE(reply2->url(), request.url());
- QCOMPARE(reply1->networkError(), QNetworkReply::NoError);
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply1->error(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
@@ -3436,7 +3436,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
@@ -3454,7 +3454,7 @@ void tst_QNetworkReply::ioGetFromHttpWithReuseSequential()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
@@ -3577,7 +3577,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth()
QVERIFY(replySync->isFinished()); // synchronous
if (expectedAuth) {
// bad credentials in a synchronous request should just fail
- QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError);
} else {
QCOMPARE(authspy.count(), 0);
@@ -3603,7 +3603,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuth()
QVERIFY(replySync->isFinished()); // synchronous
if (expectedAuth) {
// bad credentials in a synchronous request should just fail
- QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError);
} else {
QCOMPARE(authspy.count(), 0);
@@ -3630,7 +3630,7 @@ void tst_QNetworkReply::ioGetFromHttpWithAuthSynchronous()
QSignalSpy authspy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)));
QNetworkReplyPtr replySync(manager.get(request));
QVERIFY(replySync->isFinished()); // synchronous
- QCOMPARE(replySync->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(replySync->error(), QNetworkReply::AuthenticationRequiredError);
QCOMPARE(authspy.count(), 0);
QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 401);
}
@@ -3735,7 +3735,7 @@ void tst_QNetworkReply::ioGetFromHttpWithProxyAuthSynchronous()
QNetworkReplyPtr replySync(manager.get(request));
manager.setProxy(QNetworkProxy()); // reset
QVERIFY(replySync->isFinished()); // synchronous
- QCOMPARE(replySync->networkError(), QNetworkReply::ProxyAuthenticationRequiredError);
+ QCOMPARE(replySync->error(), QNetworkReply::ProxyAuthenticationRequiredError);
QCOMPARE(authspy.count(), 0);
QCOMPARE(replySync->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 407);
}
@@ -3791,9 +3791,9 @@ void tst_QNetworkReply::ioGetFromHttpWithSocksProxy()
QVERIFY(!reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).isValid());
QVERIFY(reader.data.isEmpty());
- QVERIFY(int(reply->networkError()) > 0);
+ QVERIFY(int(reply->error()) > 0);
QEXPECT_FAIL("", "QTcpSocket doesn't return enough information yet", Continue);
- QCOMPARE(int(reply->networkError()), int(QNetworkReply::ProxyConnectionRefusedError));
+ QCOMPARE(int(reply->error()), int(QNetworkReply::ProxyConnectionRefusedError));
QCOMPARE(authspy.count(), 0);
}
@@ -3873,7 +3873,7 @@ void tst_QNetworkReply::ioGetFromHttpsWithSslHandshakeError()
QCOMPARE(waitForFinish(reply), int(Failure));
- QCOMPARE(reply->networkError(), QNetworkReply::SslHandshakeFailedError);
+ QCOMPARE(reply->error(), QNetworkReply::SslHandshakeFailedError);
QCOMPARE(sslspy.count(), 0);
}
#endif
@@ -3933,7 +3933,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer()
QCOMPARE(reply->url(), request.url());
QCOMPARE(spy.count(), 1);
- QVERIFY(reply->networkError() != QNetworkReply::NoError);
+ QVERIFY(reply->error() != QNetworkReply::NoError);
}
void tst_QNetworkReply::ioGetFromHttpStatus100_data()
@@ -3962,7 +3962,7 @@ void tst_QNetworkReply::ioGetFromHttpStatus100()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), statusCode);
QVERIFY(reply->rawHeader("bla").isNull());
}
@@ -3985,7 +3985,7 @@ void tst_QNetworkReply::ioGetFromHttpNoHeaders()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
}
@@ -4432,7 +4432,7 @@ void tst_QNetworkReply::ioGetWithManyProxies()
#if QT_CONFIG(ftp)
QEXPECT_FAIL("ftp-on-socks", "QFtp is too limited and won't accept non-FTP proxies", Abort);
#endif
- QCOMPARE(reply->networkError(), expectedError);
+ QCOMPARE(reply->error(), expectedError);
// Verify that the factory was called properly
QCOMPARE(proxyFactory->callCount, 1);
@@ -4486,7 +4486,7 @@ void tst_QNetworkReply::ioPutToFileFromFile()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -4519,10 +4519,10 @@ void tst_QNetworkReply::ioPutToFileFromSocket()
socketpair.endPoints[0]->close();
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -4567,10 +4567,10 @@ void tst_QNetworkReply::ioPutToFileFromLocalSocket()
QEXPECT_FAIL("", "QTBUG-18385", Abort);
#endif
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -4619,7 +4619,7 @@ void tst_QNetworkReply::ioPutToFileFromProcess()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -4654,7 +4654,7 @@ void tst_QNetworkReply::ioPutToFtpFromFile()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(reply->readAll().isEmpty());
@@ -4704,7 +4704,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
// verify that the HTTP status code is 201 Created
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 201);
@@ -4719,7 +4719,7 @@ void tst_QNetworkReply::ioPutToHttpFromFile()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
QCOMPARE(reply->readAll(), sourceFile.readAll());
@@ -4745,7 +4745,7 @@ void tst_QNetworkReply::ioPostToHttpFromFile()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
// verify that the HTTP status code is 200 Ok
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
@@ -4835,10 +4835,10 @@ void tst_QNetworkReply::ioPostToHttpFromSocket()
this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
disconnect(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*)),
this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
// verify that the HTTP status code is 200 Ok
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
@@ -4898,10 +4898,10 @@ void tst_QNetworkReply::ioPostToHttpFromSocketSynchronous()
QVERIFY(reply->isFinished());
socketpair.endPoints[0]->close();
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
// verify that the HTTP status code is 200 Ok
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
@@ -5021,7 +5021,7 @@ void tst_QNetworkReply::ioPostToHttpNoBufferFlag()
this, SLOT(authenticationRequired(QNetworkReply*,QAuthenticator*)));
// verify: error code is QNetworkReply::ContentReSendError
- QCOMPARE(reply->networkError(), QNetworkReply::ContentReSendError);
+ QCOMPARE(reply->error(), QNetworkReply::ContentReSendError);
}
#ifndef QT_NO_SSL
@@ -5203,7 +5203,7 @@ void tst_QNetworkReply::ioGetFromBuiltinHttp()
<< "(it received" << reader.totalBytesRead << "bytes in" << elapsedTime << "ms)";
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), (qint64)testData.size());
@@ -5439,7 +5439,7 @@ void tst_QNetworkReply::httpCanReadLine()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->canReadLine());
QVERIFY(!reply->readAll().isEmpty());
@@ -5498,7 +5498,7 @@ void tst_QNetworkReply::rateControl()
sender.wait();
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(sender.transferRate != -1);
int minRate = rate * 1024 * 9 / 10;
@@ -5648,11 +5648,11 @@ void tst_QNetworkReply::chaining()
QCOMPARE(waitForFinish(putReply), int(Success));
QCOMPARE(getReply->url(), QUrl::fromLocalFile(sourceFile.fileName()));
- QCOMPARE(getReply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(getReply->error(), QNetworkReply::NoError);
QCOMPARE(getReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), sourceFile.size());
QCOMPARE(putReply->url(), url);
- QCOMPARE(putReply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(putReply->error(), QNetworkReply::NoError);
QCOMPARE(putReply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), Q_INT64_C(0));
QVERIFY(putReply->readAll().isEmpty());
@@ -5723,7 +5723,7 @@ void tst_QNetworkReply::receiveCookiesFromHttp()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -5755,7 +5755,7 @@ void tst_QNetworkReply::receiveCookiesFromHttpSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::PostOperation, request, reply, data));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -5818,7 +5818,7 @@ void tst_QNetworkReply::sendCookies()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -5847,7 +5847,7 @@ void tst_QNetworkReply::sendCookiesSynchronous()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 Ok
@@ -5940,6 +5940,9 @@ void tst_QNetworkReply::httpProxyCommands()
// wait for the finished signal
QVERIFY(waitForFinish(reply) != Timeout);
+ //qDebug() << reply->error() << reply->errorString();
+ //qDebug() << proxyServer.receivedData;
+
// we don't really care if the request succeeded
// especially since it won't succeed in the HTTPS case
// so just check that the command was correct
@@ -6022,6 +6025,8 @@ void tst_QNetworkReply::httpProxyCommandsSynchronous()
QVERIFY(reply->isFinished()); // synchronous
manager.setProxy(QNetworkProxy());
+ //qDebug() << reply->error() << reply->errorString();
+
// we don't really care if the request succeeded
// especially since it won't succeed in the HTTPS case
// so just check that the command was correct
@@ -6061,11 +6066,11 @@ void tst_QNetworkReply::proxyChange()
QVERIFY(!QTestEventLoop::instance().timeout());
// verify that the replies succeeded
- QCOMPARE(reply1->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply1->error(), QNetworkReply::NoError);
QCOMPARE(reply1->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QCOMPARE(reply1->size(), 1);
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QCOMPARE(reply2->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QVERIFY(reply2->size() > 1);
@@ -6082,7 +6087,7 @@ void tst_QNetworkReply::proxyChange()
QCOMPARE(waitForFinish(reply3), int(Failure));
- QVERIFY(int(reply3->networkError()) > 0);
+ QVERIFY(int(reply3->error()) > 0);
}
#endif // !QT_NO_NETWORKPROXY
@@ -6115,7 +6120,7 @@ void tst_QNetworkReply::authorizationError()
QNetworkRequest request(url);
QNetworkReplyPtr reply(manager.get(request));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError)));
QSignalSpy finishedSpy(reply.data(), SIGNAL(finished()));
@@ -6127,7 +6132,7 @@ void tst_QNetworkReply::authorizationError()
QFETCH(int, finishedSignalCount);
QCOMPARE(finishedSpy.count(), finishedSignalCount);
QFETCH(int, error);
- QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error));
+ QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
QFETCH(int, httpStatusCode);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), httpStatusCode);
@@ -6195,7 +6200,7 @@ void tst_QNetworkReply::httpReUsingConnectionSequential()
connect(reply1, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(2);
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(!reply1->networkError());
+ QVERIFY(!reply1->error());
int reply1port = server.client->peerPort();
if (doDeleteLater)
@@ -6206,7 +6211,7 @@ void tst_QNetworkReply::httpReUsingConnectionSequential()
connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(2);
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(!reply2->networkError());
+ QVERIFY(!reply2->error());
int reply2port = server.client->peerPort(); // should still be the same object
QVERIFY(reply1port > 0);
@@ -6229,7 +6234,7 @@ public:
public slots:
void finishedSlot()
{
- QVERIFY(!reply1->networkError());
+ QVERIFY(!reply1->error());
QFETCH(bool, doDeleteLater);
if (doDeleteLater) {
@@ -6271,7 +6276,7 @@ void tst_QNetworkReply::httpReUsingConnectionFromFinishedSlot()
QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(helper.reply2);
- QVERIFY(!helper.reply2->networkError());
+ QVERIFY(!helper.reply2->error());
QCOMPARE(server.totalConnections, 1);
}
@@ -6298,7 +6303,7 @@ public slots:
requestsFinishedCount++;
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
- QVERIFY(!reply->networkError());
+ QVERIFY(!reply->error());
QCOMPARE(reply->bytesAvailable(), 27906);
if (requestsFinishedCount == 60) {
@@ -6316,7 +6321,7 @@ public slots:
void readyReadSlot()
{
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
- QVERIFY(!reply->networkError());
+ QVERIFY(!reply->error());
if (requestsStartedCount_readyRead < 30 && reply->bytesAvailable() > 27906/2) {
startOne();
@@ -6378,7 +6383,7 @@ void tst_QNetworkReply::ignoreSslErrorsList()
QVERIFY(waitForFinish(reply) != Timeout);
QFETCH(QNetworkReply::NetworkError, expectedNetworkError);
- QCOMPARE(reply->networkError(), expectedNetworkError);
+ QCOMPARE(reply->error(), expectedNetworkError);
}
void tst_QNetworkReply::ignoreSslErrorsListWithSlot_data()
@@ -6409,7 +6414,7 @@ void tst_QNetworkReply::ignoreSslErrorsListWithSlot()
QVERIFY(waitForFinish(reply) != Timeout);
QFETCH(QNetworkReply::NetworkError, expectedNetworkError);
- QCOMPARE(reply->networkError(), expectedNetworkError);
+ QCOMPARE(reply->error(), expectedNetworkError);
}
void tst_QNetworkReply::sslConfiguration_data()
@@ -6488,7 +6493,7 @@ void tst_QNetworkReply::sslConfiguration()
QFETCH(bool, works);
QNetworkReply::NetworkError expectedError = works ? QNetworkReply::NoError : QNetworkReply::SslHandshakeFailedError;
- QCOMPARE(reply->networkError(), expectedError);
+ QCOMPARE(reply->error(), expectedError);
}
#ifdef QT_BUILD_INTERNAL
@@ -6523,7 +6528,7 @@ void tst_QNetworkReply::sslSessionSharing()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(20);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
reply->deleteLater();
// now send several requests at the same time, so we open more sockets and reuse the SSL session
@@ -6548,7 +6553,7 @@ void tst_QNetworkReply::sslSessionSharingHelperSlot()
sslSessionSharingWasUsed = true;
QString urlQueryString = reply->url().query();
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
count++;
@@ -6589,7 +6594,7 @@ void tst_QNetworkReply::sslSessionSharingFromPersistentSession()
connect(warmupReply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(20);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(warmupReply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(warmupReply->error(), QNetworkReply::NoError);
QByteArray sslSession = warmupReply->sslConfiguration().sessionTicket();
QCOMPARE(!sslSession.isEmpty(), sessionPersistenceEnabled);
@@ -6617,7 +6622,7 @@ void tst_QNetworkReply::sslSessionSharingFromPersistentSession()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(20);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
bool sslSessionSharingWasUsedInReply = QSslConfigurationPrivate::peerSessionWasShared(
reply->sslConfiguration());
@@ -6671,7 +6676,7 @@ void tst_QNetworkReply::symbianOpenCDataUrlCrash()
RUN_REQUEST(runSimpleRequest(QNetworkAccessManager::GetOperation, req, reply));
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(598));
}
@@ -6891,7 +6896,7 @@ void tst_QNetworkReply::getFromHttpIntoBuffer2()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
QTestEventLoop::instance().enterLoop(40);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(!QTestEventLoop::instance().timeout());
}
@@ -6909,7 +6914,7 @@ void tst_QNetworkReply::getFromHttpIntoBufferCanReadLine()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->canReadLine());
QCOMPARE(reply->read(1), QByteArray("x"));
QVERIFY(reply->canReadLine());
@@ -6935,7 +6940,7 @@ void tst_QNetworkReply::ioGetFromHttpWithoutContentLength()
QCOMPARE(reply->url(), request.url());
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
}
// Is handled somewhere else too, introduced this special test to have it more accessible
@@ -6957,7 +6962,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenChunkedEncoding()
QVERIFY(!QTestEventLoop::instance().timeout());
QEXPECT_FAIL(0, "We should close the socket and not just do nothing", Continue);
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
}
// TODO:
@@ -6981,7 +6986,7 @@ void tst_QNetworkReply::qtbug12908compressedHttpReply()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->size(), qint64(16384));
QCOMPARE(reply->readAll(), QByteArray(16384, '\0'));
}
@@ -7004,7 +7009,7 @@ void tst_QNetworkReply::compressedHttpReplyBrokenGzip()
QCOMPARE(waitForFinish(reply), int(Failure));
- QCOMPARE(reply->networkError(), QNetworkReply::ProtocolFailure);
+ QCOMPARE(reply->error(), QNetworkReply::ProtocolFailure);
}
// TODO add similar test for FTP
@@ -7059,7 +7064,7 @@ void tst_QNetworkReply::getFromUnreachableIp()
QCOMPARE(waitForFinish(reply), int(Failure));
- QVERIFY(reply->networkError() != QNetworkReply::NoError);
+ QVERIFY(reply->error() != QNetworkReply::NoError);
}
void tst_QNetworkReply::qtbug4121unknownAuthentication()
@@ -7083,7 +7088,7 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication()
QCOMPARE(finishedSpy.count(), 1);
QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
}
#ifndef QT_NO_NETWORKPROXY
@@ -7174,7 +7179,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::ProxyAuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::ProxyAuthenticationRequiredError);
QCOMPARE(authSpy.count(), 0);
QCOMPARE(proxyAuthSpy.count(), 1);
proxyAuthSpy.clear();
@@ -7188,8 +7193,8 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QVERIFY(!QTestEventLoop::instance().timeout());
// Work round known quirk in the old test server (danted -v < v1.1.19):
- if (reply->networkError() != QNetworkReply::HostNotFoundError)
- QCOMPARE(reply->networkError(), QNetworkReply::ProxyAuthenticationRequiredError);
+ if (reply->error() != QNetworkReply::HostNotFoundError)
+ QCOMPARE(reply->error(), QNetworkReply::ProxyAuthenticationRequiredError);
QCOMPARE(authSpy.count(), 0);
QVERIFY(proxyAuthSpy.count() > 0);
proxyAuthSpy.clear();
@@ -7215,7 +7220,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
QVERIFY(authSpy.count() > 0);
authSpy.clear();
if (proxyAuth) {
@@ -7231,7 +7236,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
QVERIFY(authSpy.count() > 0);
authSpy.clear();
if (proxyAuth) {
@@ -7249,7 +7254,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(authSpy.count() > 0);
authSpy.clear();
if (proxyAuth) {
@@ -7264,7 +7269,7 @@ void tst_QNetworkReply::authenticationCacheAfterCancel()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
//should be supplied from cache
QCOMPARE(authSpy.count(), 0);
authSpy.clear();
@@ -7295,7 +7300,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
helper.httpUserName = "httptest";
helper.httpPassword = "httptest";
@@ -7305,7 +7310,7 @@ void tst_QNetworkReply::authenticationWithDifferentRealm()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
}
#endif // !QT_NO_NETWORKPROXY
@@ -7356,7 +7361,7 @@ void tst_QNetworkReply::qtbug13431replyThrottling()
QTestEventLoop::instance().enterLoop(30);
QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(helper.m_reply->isFinished());
- QCOMPARE(helper.m_reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(helper.m_reply->error(), QNetworkReply::NoError);
}
void tst_QNetworkReply::httpWithNoCredentialUsage()
@@ -7405,7 +7410,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage()
QCOMPARE(finishedSpy.count(), 1);
QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
}
}
@@ -7421,7 +7426,7 @@ void tst_QNetworkReply::qtbug15311doubleContentLength()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->size(), qint64(3));
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(3));
QCOMPARE(reply->rawHeader("Content-length"), QByteArray("3, 3"));
@@ -7440,7 +7445,7 @@ void tst_QNetworkReply::qtbug18232gzipContentLengthZero()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->size(), qint64(0));
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(0));
QCOMPARE(reply->readAll(), QByteArray());
@@ -7461,7 +7466,7 @@ void tst_QNetworkReply::qtbug22660gzipNoContentLengthEmptyContent()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->size(), qint64(0));
QVERIFY(!reply->header(QNetworkRequest::ContentLengthHeader).isValid());
QCOMPARE(reply->readAll(), QByteArray());
@@ -7534,7 +7539,7 @@ void tst_QNetworkReply::qtbug27161httpHeaderMayBeDamaged(){
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->size(), qint64(3));
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), qint64(3));
QCOMPARE(reply->rawHeader("Content-length"), QByteArray("3"));
@@ -7585,7 +7590,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
@@ -7595,7 +7600,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true);
@@ -7607,7 +7612,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->rawHeader("Content-length"), QByteArray("4"));
QCOMPARE(reply->readAll(), QByteArray("POST"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
@@ -7619,7 +7624,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
@@ -7630,7 +7635,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true);
@@ -7641,7 +7646,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
server.clearHeaderParserState();
@@ -7651,7 +7656,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), false);
@@ -7662,7 +7667,7 @@ void tst_QNetworkReply::qtbug28035browserDoesNotLoadQtProjectOrgCorrectly() {
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll(), QByteArray("GET"));
QCOMPARE(reply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool(), true);
}
@@ -7813,7 +7818,7 @@ void tst_QNetworkReply::synchronousRequestSslFailure()
QSignalSpy sslErrorsSpy(&manager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)));
runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply, 0);
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::SslHandshakeFailedError);
+ QCOMPARE(reply->error(), QNetworkReply::SslHandshakeFailedError);
QCOMPARE(sslErrorsSpy.count(), 0);
}
#endif
@@ -7855,14 +7860,14 @@ void tst_QNetworkReply::httpAbort()
HttpAbortHelper replyHolder(reply.data());
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::OperationCanceledError);
+ QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError);
QVERIFY(reply->isFinished());
// Abort immediately after the get()
QNetworkReplyPtr reply2(manager.get(request));
connect(reply2, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
reply2->abort();
- QCOMPARE(reply2->networkError(), QNetworkReply::OperationCanceledError);
+ QCOMPARE(reply2->error(), QNetworkReply::OperationCanceledError);
QVERIFY(reply2->isFinished());
// Abort after the finished()
@@ -7873,7 +7878,7 @@ void tst_QNetworkReply::httpAbort()
QVERIFY(reply3->isFinished());
reply3->abort();
- QCOMPARE(reply3->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply3->error(), QNetworkReply::NoError);
}
void tst_QNetworkReply::dontInsertPartialContentIntoTheCache()
@@ -7920,7 +7925,7 @@ void tst_QNetworkReply::httpUserAgent()
QVERIFY2(waitForFinish(reply) == Success, msgWaitForFinished(reply));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(server.receivedData.contains("\r\nUser-Agent: abcDEFghi\r\n"));
}
@@ -7973,7 +7978,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache()
QNetworkReplyPtr reply(manager.get(request));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::AuthenticationRequiredError);
+ QCOMPARE(reply->error(), QNetworkReply::AuthenticationRequiredError);
}
//2) URL with credentials, we are authenticated
@@ -7984,7 +7989,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache()
QNetworkReplyPtr reply(manager.get(request));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll().constData(), "OK");
}
@@ -7996,7 +8001,7 @@ void tst_QNetworkReply::synchronousAuthenticationCache()
QNetworkReplyPtr reply(manager.get(request));
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->readAll().constData(), "OK");
}
}
@@ -8093,7 +8098,7 @@ void tst_QNetworkReply::ftpAuthentication()
runSimpleRequest(QNetworkAccessManager::GetOperation, request, reply);
QCOMPARE(reply->url(), request.url());
- QCOMPARE(reply->networkError(), QNetworkReply::NetworkError(error));
+ QCOMPARE(reply->error(), QNetworkReply::NetworkError(error));
}
#endif
@@ -8201,7 +8206,7 @@ void tst_QNetworkReply::backgroundRequest()
QNetworkSessionPrivate::setUsagePolicies(*session, original);
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
#endif
}
#endif
@@ -8282,7 +8287,7 @@ void tst_QNetworkReply::backgroundRequestInterruption()
QNetworkSessionPrivate::setUsagePolicies(*session, original);
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
#endif
}
#endif
@@ -8433,7 +8438,7 @@ void tst_QNetworkReply::putWithRateLimiting()
rateLimitedUploadDevice.open(QIODevice::ReadOnly);
RUN_REQUEST(runCustomRequest(request, reply,QByteArray("POST"), &rateLimitedUploadDevice));
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200);
QByteArray uploadedData = reply->readAll();
@@ -8481,7 +8486,7 @@ void tst_QNetworkReply::ioHttpSingleRedirect()
// Reply url is set to the redirect url
QCOMPARE(reply->url(), redirectUrl);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(validateRedirectedResponseHeaders(reply));
}
@@ -8518,7 +8523,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects()
QCOMPARE(redSpy.count(), request.maximumRedirectsAllowed());
QCOMPARE(spy.count(), 1);
- QCOMPARE(reply->networkError(), QNetworkReply::TooManyRedirectsError);
+ QCOMPARE(reply->error(), QNetworkReply::TooManyRedirectsError);
// Increase max redirects to allow successful completion
request.setMaximumRedirectsAllowed(3);
@@ -8530,7 +8535,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects()
QCOMPARE(redSpy2.count(), 2);
QCOMPARE(reply2->url(), server3Url);
- QCOMPARE(reply2->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply2->error(), QNetworkReply::NoError);
QVERIFY(validateRedirectedResponseHeaders(reply2));
}
@@ -8588,7 +8593,7 @@ void tst_QNetworkReply::ioHttpRedirectErrors()
watchDog.start(5000);
QCOMPARE(eventLoop.exec(), int(Failure));
- QCOMPARE(reply->networkError(), error);
+ QCOMPARE(reply->error(), error);
}
struct SameOriginRedirector : MiniHttpServer
@@ -8746,7 +8751,7 @@ void tst_QNetworkReply::ioHttpRedirectPolicyErrors()
QCOMPARE(waitForFinish(reply), int(Failure));
QCOMPARE(spy.count(), 1);
- QCOMPARE(reply->networkError(), expectedError);
+ QCOMPARE(reply->error(), expectedError);
}
void tst_QNetworkReply::ioHttpUserVerifiedRedirect_data()
@@ -8889,7 +8894,7 @@ void tst_QNetworkReply::ioHttpRedirectFromLocalToRemote()
QCOMPARE(waitForFinish(reply), int(Success));
QCOMPARE(reply->url(), targetUrl);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->header(QNetworkRequest::ContentLengthHeader).toLongLong(), reference.size());
QCOMPARE(reply->readAll(), reference.readAll());
}
@@ -9008,7 +9013,7 @@ void tst_QNetworkReply::ioHttpRedirectMultipartPost()
multiPart->deleteLater();
QCOMPARE(reply->url(), url);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QCOMPARE(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(), 200); // 200 OK
@@ -9397,7 +9402,7 @@ void tst_QNetworkReply::getWithTimeout()
QCOMPARE(waitForFinish(reply), int(Success));
QCOMPARE(spy.count(), 0);
- QVERIFY(reply->networkError() == QNetworkReply::NoError);
+ QVERIFY(reply->error() == QNetworkReply::NoError);
request.setTransferTimeout(1000);
server.stopTransfer = true;
@@ -9408,7 +9413,7 @@ void tst_QNetworkReply::getWithTimeout()
QCOMPARE(waitForFinish(reply2), int(Failure));
QCOMPARE(spy2.count(), 1);
- QVERIFY(reply2->networkError() == QNetworkReply::OperationCanceledError);
+ QVERIFY(reply2->error() == QNetworkReply::OperationCanceledError);
request.setTransferTimeout(0);
manager.setTransferTimeout(1000);
@@ -9419,7 +9424,7 @@ void tst_QNetworkReply::getWithTimeout()
QCOMPARE(waitForFinish(reply3), int(Failure));
QCOMPARE(spy3.count(), 1);
- QVERIFY(reply3->networkError() == QNetworkReply::OperationCanceledError);
+ QVERIFY(reply3->error() == QNetworkReply::OperationCanceledError);
manager.setTransferTimeout(0);
}
@@ -9437,7 +9442,7 @@ void tst_QNetworkReply::postWithTimeout()
QCOMPARE(waitForFinish(reply), int(Success));
QCOMPARE(spy.count(), 0);
- QVERIFY(reply->networkError() == QNetworkReply::NoError);
+ QVERIFY(reply->error() == QNetworkReply::NoError);
request.setTransferTimeout(1000);
server.stopTransfer = true;
@@ -9448,7 +9453,7 @@ void tst_QNetworkReply::postWithTimeout()
QCOMPARE(waitForFinish(reply2), int(Failure));
QCOMPARE(spy2.count(), 1);
- QVERIFY(reply2->networkError() == QNetworkReply::OperationCanceledError);
+ QVERIFY(reply2->error() == QNetworkReply::OperationCanceledError);
request.setTransferTimeout(0);
manager.setTransferTimeout(1000);
@@ -9459,7 +9464,7 @@ void tst_QNetworkReply::postWithTimeout()
QCOMPARE(waitForFinish(reply3), int(Failure));
QCOMPARE(spy3.count(), 1);
- QVERIFY(reply3->networkError() == QNetworkReply::OperationCanceledError);
+ QVERIFY(reply3->error() == QNetworkReply::OperationCanceledError);
manager.setTransferTimeout(0);
}
diff --git a/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp b/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp
index 1931df3d07..2d0d9f5ffc 100644
--- a/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp
+++ b/tests/auto/network/socket/qhttpsocketengine/tst_qhttpsocketengine.cpp
@@ -270,12 +270,12 @@ void tst_QHttpSocketEngine::errorTest()
socket.setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, hostname, port, username, username));
socket.connectToHost("0.1.2.3", 12345);
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(30);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(int(socket.socketError()), expectedError);
+ QCOMPARE(int(socket.error()), expectedError);
}
//---------------------------------------------------------------------------
diff --git a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp
index da9cdee691..85eec6e783 100644
--- a/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp
+++ b/tests/auto/network/socket/qsocks5socketengine/tst_qsocks5socketengine.cpp
@@ -283,12 +283,12 @@ void tst_QSocks5SocketEngine::errorTest()
socket.setProxy(QNetworkProxy(QNetworkProxy::Socks5Proxy, hostname, port, username, username));
socket.connectToHost("0.1.2.3", 12345);
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(int(socket.socketError()), expectedError);
+ QCOMPARE(int(socket.error()), expectedError);
}
//---------------------------------------------------------------------------
@@ -753,7 +753,7 @@ void tst_QSocks5SocketEngine::downloadBigFile()
QTestEventLoop::instance().exitLoop();
});
- connect(&socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),
+ connect(&socket, &QAbstractSocket::errorOccurred,
[&socket, &stopWatch] (QAbstractSocket::SocketError errorCode)
{
qWarning().noquote().nospace() << QTest::currentTestFunction()
@@ -1006,12 +1006,12 @@ void tst_QSocks5SocketEngine::incomplete()
connect(&socket, SIGNAL(connected()),
&QTestEventLoop::instance(), SLOT(exitLoop()));
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(70);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(socket.socketError(), QAbstractSocket::ProxyConnectionClosedError);
+ QCOMPARE(socket.error(), QAbstractSocket::ProxyConnectionClosedError);
}
//----------------------------------------------------------------------------------
diff --git a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
index 099aa5fb51..6dd390ccbd 100644
--- a/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
+++ b/tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp
@@ -493,7 +493,7 @@ void tst_QTcpSocket::constructing()
QCOMPARE(socket->peerAddress(), QHostAddress());
QCOMPARE(socket->readChannelCount(), 0);
QCOMPARE(socket->writeChannelCount(), 0);
- QCOMPARE(socket->socketError(), QTcpSocket::UnknownSocketError);
+ QCOMPARE(socket->error(), QTcpSocket::UnknownSocketError);
QCOMPARE(socket->errorString(), QString("Unknown error"));
// Check the state of the socket layer?
@@ -603,7 +603,7 @@ void tst_QTcpSocket::bind()
}
bool bindSuccess = socket->bind(addr, port);
- if (!bindSuccess && randomPort && socket->socketError() == QTcpSocket::AddressInUseError) {
+ if (!bindSuccess && randomPort && socket->error() == QTcpSocket::AddressInUseError) {
// we may have been unlucky and hit an already open port, so try another
--attemptsLeft;
continue;
@@ -730,7 +730,7 @@ void tst_QTcpSocket::setInvalidSocketDescriptor()
QVERIFY(!socket->setSocketDescriptor(-5, QTcpSocket::UnconnectedState));
QCOMPARE(socket->socketDescriptor(), (qintptr)-1);
- QCOMPARE(socket->socketError(), QTcpSocket::UnsupportedSocketOperationError);
+ QCOMPARE(socket->error(), QTcpSocket::UnsupportedSocketOperationError);
delete socket;
}
@@ -893,7 +893,7 @@ void tst_QTcpSocket::hostNotFound()
"when we expect 404", Continue);
}
#endif
- QCOMPARE(int(socket->socketError()), int(QTcpSocket::HostNotFoundError));
+ QCOMPARE(int(socket->error()), int(QTcpSocket::HostNotFoundError));
delete socket;
}
@@ -919,7 +919,7 @@ void tst_QTcpSocket::timeoutConnect()
QVERIFY(timer.elapsed() < 150);
QVERIFY(!socket->waitForConnected(1000)); //200ms is too short when using SOCKS proxy authentication
QCOMPARE(socket->state(), QTcpSocket::UnconnectedState);
- QCOMPARE(int(socket->socketError()), int(QTcpSocket::SocketTimeoutError));
+ QCOMPARE(int(socket->error()), int(QTcpSocket::SocketTimeoutError));
QCOMPARE(socket->readChannelCount(), 0);
QCOMPARE(socket->writeChannelCount(), 0);
@@ -1238,7 +1238,7 @@ void tst_QTcpSocket::openCloseOpenClose()
QCOMPARE(socket->localAddress(), QHostAddress());
QCOMPARE((int) socket->peerPort(), 0);
QCOMPARE(socket->peerAddress(), QHostAddress());
- QCOMPARE(socket->socketError(), QTcpSocket::UnknownSocketError);
+ QCOMPARE(socket->error(), QTcpSocket::UnknownSocketError);
QCOMPARE(socket->errorString(), QString("Unknown error"));
QCOMPARE(socket->state(), QTcpSocket::UnconnectedState);
@@ -1392,7 +1392,7 @@ protected:
while (!quit) {
if (socket->waitForDisconnected(500))
break;
- if (socket->socketError() != QAbstractSocket::SocketTimeoutError)
+ if (socket->error() != QAbstractSocket::SocketTimeoutError)
return;
}
@@ -1628,8 +1628,8 @@ void tst_QTcpSocket::readLine()
QVERIFY(!socket->waitForReadyRead(100));
QCOMPARE(socket->readLine(buffer, sizeof(buffer)), qint64(0));
- QVERIFY(socket->socketError() == QAbstractSocket::SocketTimeoutError
- || socket->socketError() == QAbstractSocket::RemoteHostClosedError);
+ QVERIFY(socket->error() == QAbstractSocket::SocketTimeoutError
+ || socket->error() == QAbstractSocket::RemoteHostClosedError);
QCOMPARE(socket->bytesAvailable(), qint64(0));
socket->close();
@@ -1778,11 +1778,11 @@ void tst_QTcpSocket::dontCloseOnTimeout()
QTcpSocket *socket = newSocket();
socket->connectToHost(serverAddress, server.serverPort());
QVERIFY(!socket->waitForReadyRead(100));
- QCOMPARE(socket->socketError(), QTcpSocket::SocketTimeoutError);
+ QCOMPARE(socket->error(), QTcpSocket::SocketTimeoutError);
QVERIFY(socket->isOpen());
QVERIFY(!socket->waitForDisconnected(100));
- QCOMPARE(socket->socketError(), QTcpSocket::SocketTimeoutError);
+ QCOMPARE(socket->error(), QTcpSocket::SocketTimeoutError);
QVERIFY(socket->isOpen());
delete socket;
@@ -2019,14 +2019,14 @@ void tst_QTcpSocket::remoteCloseError()
QCOMPARE(clientSocket->bytesAvailable(), qint64(5));
qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError");
- QSignalSpy errorSpy(clientSocket, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy errorSpy(clientSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
QSignalSpy disconnectedSpy(clientSocket, SIGNAL(disconnected()));
clientSocket->write("World");
serverSocket->disconnectFromHost();
tmpSocket = clientSocket;
- connect(clientSocket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(clientSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(remoteCloseErrorSlot()));
enterLoop(30);
@@ -2034,7 +2034,7 @@ void tst_QTcpSocket::remoteCloseError()
QCOMPARE(disconnectedSpy.count(), 1);
QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(clientSocket->socketError(), QAbstractSocket::RemoteHostClosedError);
+ QCOMPARE(clientSocket->error(), QAbstractSocket::RemoteHostClosedError);
delete serverSocket;
@@ -2079,7 +2079,7 @@ void tst_QTcpSocket::nestedEventLoopInErrorSlot()
{
QTcpSocket *socket = newSocket();
QPointer<QTcpSocket> p(socket);
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(enterLoopSlot()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SLOT(enterLoopSlot()));
socket->connectToHost("hostnotfoundhostnotfound.qt-project.org", 9999);
enterLoop(30);
@@ -2109,7 +2109,7 @@ void tst_QTcpSocket::connectToHostError()
QFETCH(int, port);
QFETCH(QAbstractSocket::SocketError, expectedError);
- connect(socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error),[&](QAbstractSocket::SocketError socketError){
+ connect(socket, &QAbstractSocket::errorOccurred, [&](QAbstractSocket::SocketError socketError){
error = socketError;
});
socket->connectToHost(host, port); // no service running here, one suspects
@@ -2326,7 +2326,7 @@ void tst_QTcpSocket::abortiveClose()
qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError");
QSignalSpy readyReadSpy(clientSocket, SIGNAL(readyRead()));
- QSignalSpy errorSpy(clientSocket, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy errorSpy(clientSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
connect(clientSocket, SIGNAL(disconnected()), this, SLOT(exitLoopSlot()));
QTimer::singleShot(0, this, SLOT(abortiveClose_abortSlot()));
@@ -2402,7 +2402,7 @@ void tst_QTcpSocket::zeroAndMinusOneReturns()
socket->write("GET / HTTP/1.0\r\n\r\n");
QVERIFY(socket->waitForDisconnected(15000));
- QCOMPARE(socket->socketError(), QAbstractSocket::RemoteHostClosedError);
+ QCOMPARE(socket->error(), QAbstractSocket::RemoteHostClosedError);
QCOMPARE(socket->write("BLUBBER"), qint64(-1));
QVERIFY(socket->getChar(c));
@@ -2439,19 +2439,19 @@ void tst_QTcpSocket::connectionRefused()
QTcpSocket *socket = newSocket();
QSignalSpy stateSpy(socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)));
- QSignalSpy errorSpy(socket, SIGNAL(error(QAbstractSocket::SocketError)));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ QSignalSpy errorSpy(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
socket->connectToHost(QtNetworkSettings::httpServerName(), 144);
enterLoop(10);
- disconnect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
+ disconnect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
&QTestEventLoop::instance(), SLOT(exitLoop()));
QVERIFY2(!timeout(), "Network timeout");
QCOMPARE(socket->state(), QAbstractSocket::UnconnectedState);
- QCOMPARE(socket->socketError(), QAbstractSocket::ConnectionRefusedError);
+ QCOMPARE(socket->error(), QAbstractSocket::ConnectionRefusedError);
QCOMPARE(stateSpy.count(), 3);
QCOMPARE(qvariant_cast<QAbstractSocket::SocketState>(stateSpy.at(0).at(0)), QAbstractSocket::HostLookupState);
@@ -2574,7 +2574,7 @@ void tst_QTcpSocket::connectToMultiIP()
socket->connectToHost("multi.dev.qt-project.org", 81);
QVERIFY(!socket->waitForConnected(2000));
QVERIFY(stopWatch.elapsed() < 2000);
- QCOMPARE(socket->socketError(), QAbstractSocket::SocketTimeoutError);
+ QCOMPARE(socket->error(), QAbstractSocket::SocketTimeoutError);
delete socket;
#endif
@@ -2760,7 +2760,7 @@ void tst_QTcpSocket::taskQtBug5799ConnectionErrorWaitForConnected()
socket.waitForConnected(10000);
QVERIFY2(timer.elapsed() < 9900, "Connection to closed port timed out instead of refusing, something is wrong");
QVERIFY2(socket.state() == QAbstractSocket::UnconnectedState, "Socket connected unexpectedly!");
- QVERIFY2(socket.socketError() == QAbstractSocket::ConnectionRefusedError,
+ QVERIFY2(socket.error() == QAbstractSocket::ConnectionRefusedError,
QString("Could not reach server: %1").arg(socket.errorString()).toLocal8Bit());
}
@@ -2773,13 +2773,13 @@ void tst_QTcpSocket::taskQtBug5799ConnectionErrorEventLoop()
// check that we get a proper error connecting to port 12346
// This testcase uses an event loop
QTcpSocket socket;
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
socket.connectToHost(QtNetworkSettings::httpServerName(), 12346);
QTestEventLoop::instance().enterLoop(10);
QVERIFY2(!QTestEventLoop::instance().timeout(), "Connection to closed port timed out instead of refusing, something is wrong");
QVERIFY2(socket.state() == QAbstractSocket::UnconnectedState, "Socket connected unexpectedly!");
- QVERIFY2(socket.socketError() == QAbstractSocket::ConnectionRefusedError,
+ QVERIFY2(socket.error() == QAbstractSocket::ConnectionRefusedError,
QString("Could not reach server: %1").arg(socket.errorString()).toLocal8Bit());
}
@@ -2789,12 +2789,12 @@ void tst_QTcpSocket::taskQtBug7054TimeoutErrorResetting()
socket->connectToHost(QtNetworkSettings::httpServerName(), 443);
QVERIFY(socket->waitForConnected(5*1000));
- QCOMPARE(socket->socketError(), QAbstractSocket::UnknownSocketError);
+ QCOMPARE(socket->error(), QAbstractSocket::UnknownSocketError);
// We connected to the HTTPS port. Wait two seconds to receive data. We will receive
// nothing because we would need to start the SSL handshake
QVERIFY(!socket->waitForReadyRead(2*1000));
- QCOMPARE(socket->socketError(), QAbstractSocket::SocketTimeoutError);
+ QCOMPARE(socket->error(), QAbstractSocket::SocketTimeoutError);
// Now write some crap to make the server disconnect us. 4 lines are enough.
socket->write("a\r\nb\r\nc\r\nd\r\n");
@@ -2804,7 +2804,7 @@ void tst_QTcpSocket::taskQtBug7054TimeoutErrorResetting()
// should get a better error since the server disconnected us
QVERIFY(!socket->waitForReadyRead(2*1000));
// It must NOT be the SocketTimeoutError that had been set before
- QCOMPARE(socket->socketError(), QAbstractSocket::RemoteHostClosedError);
+ QCOMPARE(socket->error(), QAbstractSocket::RemoteHostClosedError);
}
#ifndef QT_NO_NETWORKPROXY
@@ -2862,7 +2862,7 @@ void tst_QTcpSocket::invalidProxy()
// note: the following test is not a hard failure.
// Sometimes, error codes change for the better
- QTEST(int(socket->socketError()), "expectedError");
+ QTEST(int(socket->error()), "expectedError");
delete socket;
}
@@ -2982,7 +2982,7 @@ void tst_QTcpSocket::proxyFactory()
// note: the following test is not a hard failure.
// Sometimes, error codes change for the better
- QTEST(int(socket->socketError()), "expectedError");
+ QTEST(int(socket->error()), "expectedError");
delete socket;
}
@@ -3209,7 +3209,7 @@ void tst_QTcpSocket::readNotificationsAfterBind()
QAbstractSocket socket(QAbstractSocket::TcpSocket, nullptr);
QVERIFY2(socket.bind(), "Bind error!");
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
QSignalSpy spyReadyRead(&socket, SIGNAL(readyRead()));
socket.connectToHost(QtNetworkSettings::serverName(), 12346);
diff --git a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
index 88898cd8a8..cc41260d59 100644
--- a/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
+++ b/tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
@@ -337,7 +337,7 @@ void tst_QUdpSocket::constructing()
QCOMPARE(socket.canReadLine(), false);
QCOMPARE(socket.readLine(), QByteArray());
QCOMPARE(socket.socketDescriptor(), (qintptr)-1);
- QCOMPARE(socket.socketError(), QUdpSocket::UnknownSocketError);
+ QCOMPARE(socket.error(), QUdpSocket::UnknownSocketError);
QCOMPARE(socket.errorString(), QString("Unknown error"));
// Check the state of the socket api
@@ -575,7 +575,7 @@ void tst_QUdpSocket::ipv6Loop()
int paulPort;
if (!peter.bind(QHostAddress(QHostAddress::LocalHostIPv6), 0)) {
- QCOMPARE(peter.socketError(), QUdpSocket::UnsupportedSocketOperationError);
+ QCOMPARE(peter.error(), QUdpSocket::UnsupportedSocketOperationError);
return;
}
@@ -883,7 +883,7 @@ void tst_QUdpSocket::writeDatagram()
qRegisterMetaType<QAbstractSocket::SocketError>("QAbstractSocket::SocketError");
for(int i=0;;i++) {
- QSignalSpy errorspy(&client, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy errorspy(&client, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
QSignalSpy bytesspy(&client, SIGNAL(bytesWritten(qint64)));
qint64 written = client.writeDatagram(QByteArray(i * 1024, 'w'), serverAddress,
@@ -897,7 +897,7 @@ void tst_QUdpSocket::writeDatagram()
QCOMPARE(errorspy.count(), 1);
QCOMPARE(*static_cast<const int *>(errorspy.at(0).at(0).constData()),
int(QUdpSocket::DatagramTooLargeError));
- QCOMPARE(client.socketError(), QUdpSocket::DatagramTooLargeError);
+ QCOMPARE(client.error(), QUdpSocket::DatagramTooLargeError);
break;
}
QCOMPARE(bytesspy.count(), 1);
@@ -1044,7 +1044,7 @@ void tst_QUdpSocket::writeToNonExistingPeer()
QUdpSocket sConnected;
QSignalSpy sConnectedReadyReadSpy(&sConnected, SIGNAL(readyRead()));
- QSignalSpy sConnectedErrorSpy(&sConnected, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy sConnectedErrorSpy(&sConnected, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
sConnected.connectToHost(peerAddress, peerPort, QIODevice::ReadWrite);
QVERIFY(sConnected.waitForConnected(10000));
@@ -1054,14 +1054,14 @@ void tst_QUdpSocket::writeToNonExistingPeer()
// the second one should fail!
QTest::qSleep(1000); // do not process events
QCOMPARE(sConnected.write("", 1), qint64(-1));
- QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError));
+ QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError));
// the third one will succeed...
QCOMPARE(sConnected.write("", 1), qint64(1));
QTestEventLoop::instance().enterLoop(1);
QCOMPARE(sConnectedReadyReadSpy.count(), 0);
QCOMPARE(sConnectedErrorSpy.count(), 1);
- QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError));
+ QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError));
// we should now get a read error
QCOMPARE(sConnected.write("", 1), qint64(1));
@@ -1071,12 +1071,12 @@ void tst_QUdpSocket::writeToNonExistingPeer()
QCOMPARE(sConnected.bytesAvailable(), Q_INT64_C(0));
QCOMPARE(sConnected.pendingDatagramSize(), Q_INT64_C(-1));
QCOMPARE(sConnected.readDatagram(buf, 2), Q_INT64_C(-1));
- QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError));
+ QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError));
QCOMPARE(sConnected.write("", 1), qint64(1));
QTest::qSleep(1000); // do not process events
QCOMPARE(sConnected.read(buf, 2), Q_INT64_C(0));
- QCOMPARE(int(sConnected.socketError()), int(QUdpSocket::ConnectionRefusedError));
+ QCOMPARE(int(sConnected.error()), int(QUdpSocket::ConnectionRefusedError));
// we should still be connected
QCOMPARE(int(sConnected.state()), int(QUdpSocket::ConnectedState));
diff --git a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
index 8e579f7b5e..27476f451e 100644
--- a/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
+++ b/tests/auto/network/ssl/qocsp/tst_qocsp.cpp
@@ -409,7 +409,7 @@ private:
static QString certDirPath;
- void (QSslSocket::*socketErrorSignal)(QAbstractSocket::SocketError) = &QAbstractSocket::error;
+ void (QSslSocket::*socketErrorSignal)(QAbstractSocket::SocketError) = &QAbstractSocket::errorOccurred;
void (QSslSocket::*tlsErrorsSignal)(const QList<QSslError> &) = &QSslSocket::sslErrors;
void (QTestEventLoop::*exitLoopSlot)() = &QTestEventLoop::exitLoop;
@@ -605,7 +605,7 @@ void tst_QOcsp::malformedResponse()
loop.enterLoopMSecs(handshakeTimeoutMS);
QVERIFY(!clientSocket.isEncrypted());
- QCOMPARE(clientSocket.socketError(), QAbstractSocket::SslHandshakeFailedError);
+ QCOMPARE(clientSocket.error(), QAbstractSocket::SslHandshakeFailedError);
}
void tst_QOcsp::expiredResponse_data()
diff --git a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
index 18b449a953..c793a6a98b 100644
--- a/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp
@@ -533,7 +533,7 @@ void tst_QSslSocket::constructing()
QCOMPARE(socket.write(0, 0), qint64(-1));
QTest::ignoreMessage(QtWarningMsg, writeNotOpenMessage);
QCOMPARE(socket.write(QByteArray()), qint64(-1));
- QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError);
+ QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
QVERIFY(!socket.flush());
QVERIFY(!socket.isValid());
QCOMPARE(socket.localAddress(), QHostAddress());
@@ -1229,7 +1229,7 @@ protected:
configuration.setProtocol(protocol);
if (ignoreSslErrors)
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SIGNAL(socketError(QAbstractSocket::SocketError)));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SIGNAL(socketError(QAbstractSocket::SocketError)));
connect(socket, &QSslSocket::alertReceived, this, &SslServer::gotAlert);
connect(socket, &QSslSocket::alertSent, this, &SslServer::alertSent);
@@ -1360,8 +1360,8 @@ void tst_QSslSocket::protocolServerSide()
socket = &client;
QFETCH(QSsl::SslProtocol, clientProtocol);
socket->setProtocol(clientProtocol);
- // upon SSL wrong version error, error will be triggered, not sslErrors
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ // upon SSL wrong version error, errorOccurred will be triggered, not sslErrors
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -1373,16 +1373,16 @@ void tst_QSslSocket::protocolServerSide()
QAbstractSocket::SocketState expectedState = (works) ? QAbstractSocket::ConnectedState : QAbstractSocket::UnconnectedState;
// Determine whether the client or the server caused the event loop
// to quit due to a socket error, and investigate the culprit.
- if (client.socketError() != QAbstractSocket::UnknownSocketError) {
+ if (client.error() != QAbstractSocket::UnknownSocketError) {
// It can happen that the client, after TCP connection established, before
// incomingConnection() slot fired, hits TLS initialization error and stops
// the loop, so the server socket is not created yet.
if (server.socket)
- QVERIFY(server.socket->socketError() == QAbstractSocket::UnknownSocketError);
+ QVERIFY(server.socket->error() == QAbstractSocket::UnknownSocketError);
QCOMPARE(client.state(), expectedState);
- } else if (server.socket->socketError() != QAbstractSocket::UnknownSocketError) {
- QVERIFY(client.socketError() == QAbstractSocket::UnknownSocketError);
+ } else if (server.socket->error() != QAbstractSocket::UnknownSocketError) {
+ QVERIFY(client.error() == QAbstractSocket::UnknownSocketError);
QCOMPARE(server.socket->state(), expectedState);
}
@@ -1421,8 +1421,8 @@ void tst_QSslSocket::serverCipherPreferences()
sslConfig.setCiphers({QSslCipher("AES256-SHA"), QSslCipher("AES128-SHA")});
socket->setSslConfiguration(sslConfig);
- // upon SSL wrong version error, error will be triggered, not sslErrors
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ // upon SSL wrong version error, errorOccurred will be triggered, not sslErrors
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -1453,8 +1453,8 @@ void tst_QSslSocket::serverCipherPreferences()
sslConfig.setCiphers({QSslCipher("AES256-SHA"), QSslCipher("AES128-SHA")});
socket->setSslConfiguration(sslConfig);
- // upon SSL wrong version error, error will be triggered, not sslErrors
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ // upon SSL wrong version error, errorOccurred will be triggered, not sslErrors
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -1544,7 +1544,7 @@ void tst_QSslSocket::setLocalCertificateChain()
const QScopedPointer<QSslSocket, QScopedPointerDeleteLater> client(new QSslSocket);
socket = client.data();
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
socket->connectToHostEncrypted(QHostAddress(QHostAddress::LocalHost).toString(), server.serverPort());
@@ -1994,7 +1994,7 @@ void tst_QSslSocket::setEmptyKey()
QTestEventLoop::instance().enterLoop(2);
QCOMPARE(socket.state(), QAbstractSocket::ConnectedState);
- QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError);
+ QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
}
void tst_QSslSocket::spontaneousWrite()
@@ -2534,8 +2534,8 @@ void tst_QSslSocket::closeWhileEmittingSocketError()
clientConfig.setPeerVerifyMode(QSslSocket::VerifyNone);
clientSocket.setSslConfiguration(clientConfig);
- QSignalSpy socketErrorSpy(&clientSocket, SIGNAL(error(QAbstractSocket::SocketError)));
- void (QSslSocket::*errorSignal)(QAbstractSocket::SocketError) = &QSslSocket::error;
+ QSignalSpy socketErrorSpy(&clientSocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
+ void (QSslSocket::*errorSignal)(QAbstractSocket::SocketError) = &QSslSocket::errorOccurred;
connect(&clientSocket, errorSignal, &handshake, &BrokenPskHandshake::socketError);
clientSocket.connectToHostEncrypted(QStringLiteral("127.0.0.1"), handshake.serverPort());
@@ -2635,7 +2635,7 @@ void tst_QSslSocket::ignoreSslErrorsList()
socket.ignoreSslErrors(expectedSslErrors);
QFETCH(int, expectedSslErrorSignalCount);
- QSignalSpy sslErrorsSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy sslErrorsSpy(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
socket.connectToHostEncrypted(QtNetworkSettings::httpServerName(), 443);
@@ -2766,11 +2766,11 @@ void tst_QSslSocket::writeBigChunk()
// no better way to do this right now since the error is the same as the default error.
if (socket->errorString().startsWith(QLatin1String("Unable to write data")))
{
- qWarning() << socket->socketError() << socket->errorString();
+ qWarning() << socket->error() << socket->errorString();
QFAIL("Error while writing! Check if the OpenSSL BIO size is limited?!");
}
// also check the error string. If another error (than UnknownError) occurred, it should be different than before
- QVERIFY2(errorBefore == errorAfter || socket->socketError() == QAbstractSocket::RemoteHostClosedError,
+ QVERIFY2(errorBefore == errorAfter || socket->error() == QAbstractSocket::RemoteHostClosedError,
QByteArray("unexpected error: ").append(qPrintable(errorAfter)));
// check that everything has been written to OpenSSL
@@ -2929,13 +2929,13 @@ void tst_QSslSocket::resume()
QSignalSpy sslErrorSpy(&socket, SIGNAL(sslErrors(QList<QSslError>)));
QSignalSpy encryptedSpy(&socket, SIGNAL(encrypted()));
- QSignalSpy errorSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy errorSpy(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
connect(&socket, SIGNAL(sslErrors(QList<QSslError>)), &QTestEventLoop::instance(), SLOT(exitLoop()));
connect(&socket, SIGNAL(encrypted()), &QTestEventLoop::instance(), SLOT(exitLoop()));
connect(&socket, SIGNAL(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)),
this, SLOT(proxyAuthenticationRequired(QNetworkProxy,QAuthenticator*)));
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &QTestEventLoop::instance(), SLOT(exitLoop()));
socket.connectToHostEncrypted(QtNetworkSettings::imapServerName(), 993);
QTestEventLoop::instance().enterLoop(10);
@@ -2965,7 +2965,7 @@ void tst_QSslSocket::resume()
QCOMPARE(encryptedSpy.count(), 0);
QVERIFY(!socket.isEncrypted());
QCOMPARE(errorSpy.count(), 1);
- QCOMPARE(socket.socketError(), QAbstractSocket::SslHandshakeFailedError);
+ QCOMPARE(socket.error(), QAbstractSocket::SslHandshakeFailedError);
}
}
@@ -3246,7 +3246,7 @@ void tst_QSslSocket::dhServer()
QSslSocket client;
socket = &client;
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -3280,7 +3280,7 @@ void tst_QSslSocket::dhServerCustomParamsNull()
QSslSocket client;
socket = &client;
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -3325,7 +3325,7 @@ void tst_QSslSocket::dhServerCustomParams()
QSslSocket client;
socket = &client;
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -3360,7 +3360,7 @@ void tst_QSslSocket::ecdhServer()
QSslSocket client;
socket = &client;
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -3552,7 +3552,7 @@ void tst_QSslSocket::readBufferMaxSize()
QSslSocketPtr client(new QSslSocket);
socket = client.data();
- connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
+ connect(socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), &loop, SLOT(quit()));
connect(socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(ignoreErrorSlot()));
connect(socket, SIGNAL(encrypted()), &loop, SLOT(quit()));
@@ -3813,7 +3813,7 @@ void tst_QSslSocket::simplePskConnect()
QSignalSpy sslErrorsSpy(&socket, SIGNAL(sslErrors(QList<QSslError>)));
QVERIFY(sslErrorsSpy.isValid());
- QSignalSpy socketErrorsSpy(&socket, SIGNAL(error(QAbstractSocket::SocketError)));
+ QSignalSpy socketErrorsSpy(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)));
QVERIFY(socketErrorsSpy.isValid());
QSignalSpy peerVerifyErrorSpy(&socket, SIGNAL(peerVerifyError(QSslError)));
@@ -3827,7 +3827,7 @@ void tst_QSslSocket::simplePskConnect()
connect(&socket, SIGNAL(modeChanged(QSslSocket::SslMode)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(encrypted()), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(exitLoop()));
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(exitLoop()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(peerVerifyError(QSslError)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(exitLoop()));
@@ -4095,7 +4095,7 @@ void tst_QSslSocket::pskServer()
connect(&socket, SIGNAL(modeChanged(QSslSocket::SslMode)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(encrypted()), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(sslErrors(QList<QSslError>)), this, SLOT(exitLoop()));
- connect(&socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(exitLoop()));
+ connect(&socket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(peerVerifyError(QSslError)), this, SLOT(exitLoop()));
connect(&socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(exitLoop()));
@@ -4275,7 +4275,7 @@ void tst_QSslSocket::signatureAlgorithm()
QEventLoop loop;
QTimer::singleShot(5000, &loop, &QEventLoop::quit);
- connect(socket, QOverload<QAbstractSocket::SocketError>::of(&QAbstractSocket::error), &loop, &QEventLoop::quit);
+ connect(socket, &QAbstractSocket::errorOccurred, &loop, &QEventLoop::quit);
connect(socket, QOverload<const QList<QSslError> &>::of(&QSslSocket::sslErrors), this, &tst_QSslSocket::ignoreErrorSlot);
connect(socket, &QSslSocket::encrypted, &loop, &QEventLoop::quit);
@@ -4333,9 +4333,9 @@ void tst_QSslSocket::unsupportedProtocols()
// early, preventing any real connection from ever starting.
QSslSocket socket;
socket.setProtocol(unsupportedProtocol);
- QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError);
+ QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
socket.connectToHostEncrypted(QStringLiteral("doesnotmatter.org"), 1010);
- QCOMPARE(socket.socketError(), QAbstractSocket::SslInvalidUserDataError);
+ QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError);
QCOMPARE(socket.state(), QAbstractSocket::UnconnectedState);
}
{
@@ -4345,14 +4345,14 @@ void tst_QSslSocket::unsupportedProtocols()
QVERIFY(server.listen());
QSslSocket socket;
- QCOMPARE(socket.socketError(), QAbstractSocket::UnknownSocketError);
+ QCOMPARE(socket.error(), QAbstractSocket::UnknownSocketError);
socket.connectToHost(QHostAddress::LocalHost, server.serverPort());
QVERIFY(socket.waitForConnected(timeoutMS));
socket.setProtocol(unsupportedProtocol);
socket.startClientEncryption();
- QCOMPARE(socket.socketError(), QAbstractSocket::SslInvalidUserDataError);
+ QCOMPARE(socket.error(), QAbstractSocket::SslInvalidUserDataError);
}
{
// 2. waitForEncrypted: client-side, blocking API plus requires from us
@@ -4376,7 +4376,7 @@ void tst_QSslSocket::unsupportedProtocols()
loop.enterLoopMSecs(timeoutMS);
QVERIFY(!loop.timeout());
QVERIFY(server.socket);
- QCOMPARE(server.socket->socketError(), QAbstractSocket::SslInvalidUserDataError);
+ QCOMPARE(server.socket->error(), QAbstractSocket::SslInvalidUserDataError);
}
}
diff --git a/tests/auto/other/networkselftest/tst_networkselftest.cpp b/tests/auto/other/networkselftest/tst_networkselftest.cpp
index 0f50718328..396e23da0c 100644
--- a/tests/auto/other/networkselftest/tst_networkselftest.cpp
+++ b/tests/auto/other/networkselftest/tst_networkselftest.cpp
@@ -428,7 +428,7 @@ void tst_NetworkSelfTest::serverReachability()
QVERIFY2(timer.elapsed() < 9900, "Connection to closed port timed out instead of refusing, something is wrong");
QVERIFY2(socket.state() == QAbstractSocket::UnconnectedState, "Socket connected unexpectedly!");
- QVERIFY2(socket.socketError() == QAbstractSocket::ConnectionRefusedError,
+ QVERIFY2(socket.error() == QAbstractSocket::ConnectionRefusedError,
QString("Could not reach server: %1").arg(socket.errorString()).toLocal8Bit());
}
@@ -458,7 +458,7 @@ void tst_NetworkSelfTest::remotePortsOpen()
socket.connectToHost(QtNetworkSettings::serverName(), portNumber);
if (!socket.waitForConnected(10000)) {
- if (socket.socketError() == QAbstractSocket::SocketTimeoutError)
+ if (socket.error() == QAbstractSocket::SocketTimeoutError)
QFAIL(QString("Network timeout connecting to the server on port %1").arg(portNumber).toLocal8Bit());
else
QFAIL(QString("Error connecting to server on port %1: %2").arg(portNumber).arg(socket.errorString()).toLocal8Bit());
diff --git a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
index dae274a8b6..5b7ded0ecb 100644
--- a/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
+++ b/tests/auto/widgets/dialogs/qwizard/tst_qwizard.cpp
@@ -586,7 +586,7 @@ void tst_QWizard::addPage()
#define CHECK_VISITED(wizard, list) \
do { \
QList<int> myList = list; \
- QCOMPARE((wizard).visitedPages(), myList); \
+ QCOMPARE((wizard).visitedIds(), myList); \
Q_FOREACH(int id, myList) \
QVERIFY((wizard).hasVisitedPage(id)); \
} while (0)
@@ -2293,7 +2293,7 @@ void tst_QWizard::removePage()
wizard.restart();
QCOMPARE(wizard.pageIds().size(), 4);
- QCOMPARE(wizard.visitedPages().size(), 1);
+ QCOMPARE(wizard.visitedIds().size(), 1);
QCOMPARE(spy.count(), 0);
// Removing a non-existent page
@@ -2331,14 +2331,14 @@ void tst_QWizard::removePage()
wizard.setPage(2, page2); // restore
wizard.restart();
wizard.next();
- QCOMPARE(wizard.visitedPages().size(), 2);
+ QCOMPARE(wizard.visitedIds().size(), 2);
QCOMPARE(wizard.currentPage(), page1);
QCOMPARE(spy.count(), 0);
wizard.removePage(2);
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 2);
- QCOMPARE(wizard.visitedPages().size(), 2);
+ QCOMPARE(wizard.visitedIds().size(), 2);
QVERIFY(!wizard.pageIds().contains(2));
QCOMPARE(wizard.currentPage(), page1);
@@ -2347,14 +2347,14 @@ void tst_QWizard::removePage()
wizard.restart();
wizard.next();
QCOMPARE(spy.count(), 0);
- QCOMPARE(wizard.visitedPages().size(), 2);
+ QCOMPARE(wizard.visitedIds().size(), 2);
QCOMPARE(wizard.currentPage(), page1);
wizard.removePage(0);
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 0);
- QCOMPARE(wizard.visitedPages().size(), 1);
- QVERIFY(!wizard.visitedPages().contains(0));
+ QCOMPARE(wizard.visitedIds().size(), 1);
+ QVERIFY(!wizard.visitedIds().contains(0));
QVERIFY(!wizard.pageIds().contains(0));
QCOMPARE(wizard.currentPage(), page1);
@@ -2363,14 +2363,14 @@ void tst_QWizard::removePage()
wizard.restart();
wizard.next();
QCOMPARE(spy.count(), 0);
- QCOMPARE(wizard.visitedPages().size(), 2);
+ QCOMPARE(wizard.visitedIds().size(), 2);
QCOMPARE(wizard.currentPage(), page1);
wizard.removePage(1);
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 1);
- QCOMPARE(wizard.visitedPages().size(), 1);
- QVERIFY(!wizard.visitedPages().contains(1));
+ QCOMPARE(wizard.visitedIds().size(), 1);
+ QVERIFY(!wizard.visitedIds().contains(1));
QVERIFY(!wizard.pageIds().contains(1));
QCOMPARE(wizard.currentPage(), page0);
@@ -2379,8 +2379,8 @@ void tst_QWizard::removePage()
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 0);
- QCOMPARE(wizard.visitedPages().size(), 1);
- QVERIFY(!wizard.visitedPages().contains(0));
+ QCOMPARE(wizard.visitedIds().size(), 1);
+ QVERIFY(!wizard.visitedIds().contains(0));
QCOMPARE(wizard.pageIds().size(), 2);
QVERIFY(!wizard.pageIds().contains(0));
QCOMPARE(wizard.currentPage(), page2);
@@ -2389,8 +2389,8 @@ void tst_QWizard::removePage()
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 2);
- QCOMPARE(wizard.visitedPages().size(), 1);
- QVERIFY(!wizard.visitedPages().contains(2));
+ QCOMPARE(wizard.visitedIds().size(), 1);
+ QVERIFY(!wizard.visitedIds().contains(2));
QCOMPARE(wizard.pageIds().size(), 1);
QVERIFY(!wizard.pageIds().contains(2));
QCOMPARE(wizard.currentPage(), page3);
@@ -2399,7 +2399,7 @@ void tst_QWizard::removePage()
QCOMPARE(spy.count(), 1);
arguments = spy.takeFirst();
QCOMPARE(arguments.at(0).toInt(), 3);
- QVERIFY(wizard.visitedPages().empty());
+ QVERIFY(wizard.visitedIds().empty());
QVERIFY(wizard.pageIds().empty());
QCOMPARE(wizard.currentPage(), nullptr);
}
diff --git a/tests/auto/widgets/kernel/qwidget/BLACKLIST b/tests/auto/widgets/kernel/qwidget/BLACKLIST
index cf35491ec0..70ea8433a6 100644
--- a/tests/auto/widgets/kernel/qwidget/BLACKLIST
+++ b/tests/auto/widgets/kernel/qwidget/BLACKLIST
@@ -8,11 +8,6 @@ b2qt
opensuse-42.3
[restoreVersion1Geometry]
ubuntu-16.04
-[updateWhileMinimized]
-ubuntu-18.04
-rhel-7.4
-ubuntu-16.04
-rhel-7.6
[focusProxyAndInputMethods]
rhel-7.6
opensuse-leap
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index f0c490b598..1f2060942b 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -8074,7 +8074,17 @@ void tst_QWidget::updateWhileMinimized()
QTest::qWait(10);
if (m_platform == QStringLiteral("winrt"))
QEXPECT_FAIL("", "WinRT: This fails. QTBUG-68297.", Abort);
- QCOMPARE(widget.numPaintEvents, 0);
+ int count = 0;
+ // mutter/GNOME Shell doesn't unmap when minimizing window.
+ // More details at https://gitlab.gnome.org/GNOME/mutter/issues/185
+ if (m_platform == QStringLiteral("xcb")) {
+ const QString desktop = qgetenv("XDG_CURRENT_DESKTOP");
+ qDebug() << "xcb: XDG_CURRENT_DESKTOP=" << desktop;
+ if (desktop == QStringLiteral("ubuntu:GNOME")
+ || desktop == QStringLiteral("GNOME-Classic:GNOME"))
+ count = 1;
+ }
+ QCOMPARE(widget.numPaintEvents, count);
// Restore window.
widget.showNormal();
diff --git a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
index 9eae1f10ea..9659d89833 100644
--- a/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
+++ b/tests/auto/widgets/widgets/qdatetimeedit/tst_qdatetimeedit.cpp
@@ -296,6 +296,13 @@ private slots:
void stepModifierPressAndHold_data();
void stepModifierPressAndHold();
+
+ void springForward_data();
+ void springForward();
+
+ void stepIntoDSTGap_data();
+ void stepIntoDSTGap();
+
private:
EditorDateEdit* testWidget;
QWidget *testFocusWidget;
@@ -4387,5 +4394,229 @@ void tst_QDateTimeEdit::stepModifierPressAndHold()
QCOMPARE(value.toDate(), expectedDate);
}
+/*
+ The following tests verify correct handling of the spring forward gap; which
+ hour is skipped, and on which day, depends on the local time zone. We try to
+ make it reasonably robust by discovering the first day of spring in a given
+ year, but we won't try to handle every situation.
+
+ If this function returns an invalid QDateTime, then the tests should be skipped.
+*/
+static QDateTime findSpring(int year, const QTimeZone &timeZone)
+{
+ if (!timeZone.hasTransitions())
+ return QDateTime();
+
+ // Southern hemisphere spring is after midsummer
+ const QDateTime midSummer = QDate(year, 6, 21).startOfDay();
+ const QTimeZone::OffsetData transition =
+ midSummer.isDaylightTime() ? timeZone.previousTransition(midSummer)
+ : timeZone.nextTransition(midSummer);
+ const QDateTime spring = transition.atUtc.toLocalTime();
+ // there might have been DST at some point, but not in the year we care about
+ if (spring.date().year() != year || !spring.isDaylightTime())
+ return QDateTime();
+
+ return spring;
+};
+
+/*!
+ Test that typing in a time that is invalid due to spring forward gap
+ produces reasonable results.
+*/
+void tst_QDateTimeEdit::springForward_data()
+{
+ QTest::addColumn<QDateTime>("start");
+ QTest::addColumn<QAbstractSpinBox::CorrectionMode>("correctionMode");
+ QTest::addColumn<QTime>("inputTime");
+ QTest::addColumn<QDateTime>("expected");
+
+ const QTimeZone timeZone = QTimeZone::systemTimeZone();
+ if (!timeZone.hasDaylightTime())
+ QSKIP("This test needs to run in a timezone that observes DST!");
+
+ const QDateTime springTransition = findSpring(2019, timeZone);
+ if (!springTransition.isValid())
+ QSKIP("Failed to obtain valid spring forward datetime for 2019!");
+
+ const QDate springDate = springTransition.date();
+ const int gapWidth = timeZone.daylightTimeOffset(springTransition.addDays(1));
+ const QTime springGap = springTransition.time().addSecs(-gapWidth);
+ const QTime springGapMiddle = springTransition.time().addSecs(-gapWidth/2);
+
+ QTest::addRow("forward to %s, correct to previous", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(springDate, springGap.addSecs(-gapWidth))
+ << QAbstractSpinBox::CorrectToPreviousValue
+ << springGap
+ << QDateTime(springDate, springGap.addSecs(-gapWidth));
+
+ QTest::addRow("back to %s, correct to previous", qPrintable(springGap.toString("hh:mm")))
+ << springTransition
+ << QAbstractSpinBox::CorrectToPreviousValue
+ << springGap
+ << springTransition;
+
+ QTest::addRow("forward to %s, correct to nearest", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(springDate, springGap.addSecs(-gapWidth))
+ << QAbstractSpinBox::CorrectToNearestValue
+ << springGapMiddle
+ << springTransition;
+
+ QTest::addRow("back to %s, correct to nearest", qPrintable(springGap.toString("hh:mm")))
+ << springTransition
+ << QAbstractSpinBox::CorrectToNearestValue
+ << springGapMiddle
+ << springTransition;
+
+ QTest::addRow("jump to %s, correct to nearest", qPrintable(springGapMiddle.toString("hh:mm")))
+ << QDateTime(QDate(1980, 5, 10), springGap)
+ << QAbstractSpinBox::CorrectToNearestValue
+ << springGapMiddle
+ << springTransition;
+}
+
+void tst_QDateTimeEdit::springForward()
+{
+ QFETCH(QDateTime, start);
+ QFETCH(QAbstractSpinBox::CorrectionMode, correctionMode);
+ QFETCH(QTime, inputTime);
+ QFETCH(QDateTime, expected);
+
+ QDateTimeEdit edit;
+ edit.setDisplayFormat(QLatin1String("dd.MM.yyyy hh:mm"));
+ edit.setCorrectionMode(correctionMode);
+
+ // we always want to start with a valid time
+ QVERIFY(start.isValid());
+ edit.setDateTime(start);
+
+ edit.setSelectedSection(QDateTimeEdit::DaySection);
+ const QDate date = expected.date();
+ const QString day = QString::number(date.day()).rightJustified(2, QLatin1Char('0'));
+ const QString month = QString::number(date.month()).rightJustified(2, QLatin1Char('0'));
+ const QString year = QString::number(date.year());
+ const QString hour = QString::number(inputTime.hour()).rightJustified(2, QLatin1Char('0'));
+ const QString minute = QString::number(inputTime.minute()).rightJustified(2, QLatin1Char('0'));
+ QTest::keyClicks(&edit, day);
+ QTest::keyClicks(&edit, month);
+ QTest::keyClicks(&edit, year);
+ QTest::keyClicks(&edit, hour);
+ QTest::keyClicks(&edit, minute);
+ QTest::keyClick(&edit, Qt::Key_Return, {});
+
+ QCOMPARE(edit.dateTime(), expected);
+}
+
+/*!
+ Test that using the up/down spinners to modify a valid time into a time that
+ is invalid due to daylight-saving changes produces reasonable results.
+
+ 2007 is a year in which the DST transition in most tested places was not on the
+ last or first day of the month, which allows us to test the various steps.
+*/
+void tst_QDateTimeEdit::stepIntoDSTGap_data()
+{
+ QTest::addColumn<QDateTime>("start");
+ QTest::addColumn<QDateTimeEdit::Section>("section");
+ QTest::addColumn<int>("steps");
+ QTest::addColumn<QDateTime>("end");
+
+ const QTimeZone timeZone = QTimeZone::systemTimeZone();
+ if (!timeZone.hasDaylightTime())
+ QSKIP("This test needs to run in a timezone that observes DST!");
+
+ const QDateTime springTransition = findSpring(2007, timeZone);
+ if (!springTransition.isValid())
+ QSKIP("Failed to obtain valid spring forward datetime for 2007!");
+
+ const QDate spring = springTransition.date();
+ const int gapWidth = timeZone.daylightTimeOffset(springTransition.addDays(1));
+ const QTime springGap = springTransition.time().addSecs(-gapWidth);
+
+ // change hour
+ if (springGap.hour() != 0) {
+ QTest::addRow("hour up into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring, springGap.addSecs(-3600))
+ << QDateTimeEdit::HourSection
+ << +1
+ << springTransition;
+
+ // 3:00:10 into 2:00:10 should get us to 1:00:10
+ QTest::addRow("hour down into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring, springGap.addSecs(3610))
+ << QDateTimeEdit::HourSection
+ << -1
+ << QDateTime(spring, springGap.addSecs(-3590));
+ }
+
+ // change day
+ if (spring.day() != 1) {
+ // today's 2:05 is tomorrow's 3:05
+ QTest::addRow("day up into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addDays(-1), springGap.addSecs(300))
+ << QDateTimeEdit::DaySection
+ << +1
+ << springTransition.addSecs(300);
+ }
+
+ if (spring.day() != spring.daysInMonth()) {
+ QTest::addRow("day down into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addDays(1), springGap)
+ << QDateTimeEdit::DaySection
+ << -1
+ << springTransition;
+ }
+
+ // 2018-03-25 - change month
+ QTest::addRow("month up into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addMonths(-1), springGap)
+ << QDateTimeEdit::MonthSection
+ << +1
+ << springTransition;
+ QTest::addRow("month down into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addMonths(1), springGap)
+ << QDateTimeEdit::MonthSection
+ << -1
+ << springTransition;
+
+ // 2018-03-25 - change year
+ QTest::addRow("year up into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addYears(-1), springGap)
+ << QDateTimeEdit::YearSection
+ << +1
+ << springTransition;
+ QTest::addRow("year down into %s gap", qPrintable(springGap.toString("hh:mm")))
+ << QDateTime(spring.addYears(1), springGap)
+ << QDateTimeEdit::YearSection
+ << -1
+ << springTransition;
+}
+
+void tst_QDateTimeEdit::stepIntoDSTGap()
+{
+ QFETCH(QDateTime, start);
+ QFETCH(QDateTimeEdit::Section, section);
+ QFETCH(int, steps);
+ QFETCH(QDateTime, end);
+
+ QDateTimeEdit edit;
+ edit.setDisplayFormat(QLatin1String("dd.MM.yyyy hh:mm"));
+
+ // we always want to start with a valid time
+ QVERIFY(start.isValid());
+ edit.setDateTime(start);
+
+ edit.setSelectedSection(section);
+
+ // we want to end with a valid value
+ QVERIFY(end.isValid());
+
+ const auto stepCount = qAbs(steps);
+ for (int step = 0; step < stepCount; ++step)
+ QTest::keyClick(&edit, steps > 0 ? Qt::Key_Up : Qt::Key_Down, {});
+
+ QCOMPARE(edit.dateTime(), end);
+}
+
QTEST_MAIN(tst_QDateTimeEdit)
#include "tst_qdatetimeedit.moc"
diff --git a/tests/auto/xml/sax/qxmlinputsource/tst_qxmlinputsource.cpp b/tests/auto/xml/sax/qxmlinputsource/tst_qxmlinputsource.cpp
index 5dce69bd8c..afdcc825d8 100644
--- a/tests/auto/xml/sax/qxmlinputsource/tst_qxmlinputsource.cpp
+++ b/tests/auto/xml/sax/qxmlinputsource/tst_qxmlinputsource.cpp
@@ -149,7 +149,7 @@ public slots:
void requestFinished(QNetworkReply *reply)
{
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
reply->deleteLater();
}
diff --git a/tests/baselineserver/shared/baselineprotocol.cpp b/tests/baselineserver/shared/baselineprotocol.cpp
index d11369f3d2..16915b7c02 100644
--- a/tests/baselineserver/shared/baselineprotocol.cpp
+++ b/tests/baselineserver/shared/baselineprotocol.cpp
@@ -545,7 +545,7 @@ bool BaselineProtocol::receiveBlock(Command *cmd, QByteArray *block)
QString BaselineProtocol::errorMessage()
{
QString ret = errMsg;
- if (socket.socketError() >= 0)
+ if (socket.error() >= 0)
ret += QLS(" Socket state: ") + socket.errorString();
return ret;
}
diff --git a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
index 1a8c8de0c8..95ee094f00 100644
--- a/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/benchmarks/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -537,7 +537,7 @@ void tst_qnetworkreply::echoPerformance()
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
QTestEventLoop::instance().enterLoop(5);
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(reply->networkError() == QNetworkReply::NoError);
+ QVERIFY(reply->error() == QNetworkReply::NoError);
delete reply;
}
}
@@ -562,7 +562,7 @@ void tst_qnetworkreply::preConnectEncrypted()
QPair<QNetworkReply *, qint64> normalResult = runGetRequest(&manager, request);
QNetworkReply *normalReply = normalResult.first;
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(normalReply->networkError() == QNetworkReply::NoError);
+ QVERIFY(normalReply->error() == QNetworkReply::NoError);
qint64 normalElapsed = normalResult.second;
// clear all caches again
@@ -581,7 +581,7 @@ void tst_qnetworkreply::preConnectEncrypted()
QPair<QNetworkReply *, qint64> preConnectResult = runGetRequest(&manager, request);
QNetworkReply *preConnectReply = normalResult.first;
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(preConnectReply->networkError() == QNetworkReply::NoError);
+ QVERIFY(preConnectReply->error() == QNetworkReply::NoError);
qint64 preConnectElapsed = preConnectResult.second;
qDebug() << request.url().toString() << "full request:" << normalElapsed
<< "ms, pre-connect request:" << preConnectElapsed << "ms, difference:"
@@ -636,7 +636,7 @@ void tst_qnetworkreply::uploadPerformance()
QTimer::singleShot(5000, &generator, SLOT(stop()));
QTestEventLoop::instance().enterLoop(30);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(!QTestEventLoop::instance().timeout());
}
@@ -662,7 +662,7 @@ void tst_qnetworkreply::httpUploadPerformance()
reader.exit();
reader.wait();
QVERIFY(reply->isFinished());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(!QTestEventLoop::instance().timeout());
qDebug() << "tst_QNetworkReply::httpUploadPerformance" << elapsed << "msec, "
@@ -723,7 +723,7 @@ void tst_qnetworkreply::httpDownloadPerformance()
QTime time;
time.start();
QTestEventLoop::instance().enterLoop(40);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(!QTestEventLoop::instance().timeout());
qint64 elapsed = time.elapsed();
@@ -805,7 +805,7 @@ void tst_qnetworkreply::httpDownloadPerformanceDownloadBuffer()
QBENCHMARK_ONCE {
QTestEventLoop::instance().enterLoop(40);
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
QVERIFY(reply->isFinished());
QVERIFY(!QTestEventLoop::instance().timeout());
}
@@ -840,7 +840,7 @@ public slots:
}
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if (reply) {
- QVERIFY(reply->networkError() == QNetworkReply::NoError);
+ QVERIFY(reply->error() == QNetworkReply::NoError);
qDebug() << "time =" << timeOneRequest.elapsed() << "ms";
timeList.append(timeOneRequest.elapsed());
}
@@ -895,7 +895,7 @@ void tst_qnetworkreply::runHttpsUploadRequest(const QByteArray &data, const QNet
connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
QTestEventLoop::instance().enterLoop(15);
QVERIFY(!QTestEventLoop::instance().timeout());
- QCOMPARE(reply->networkError(), QNetworkReply::NoError);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
reply->deleteLater();
}
@@ -935,7 +935,7 @@ void tst_qnetworkreply::preConnect()
QPair<QNetworkReply *, qint64> normalResult = runGetRequest(&manager, request);
QNetworkReply *normalReply = normalResult.first;
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(normalReply->networkError() == QNetworkReply::NoError);
+ QVERIFY(normalReply->error() == QNetworkReply::NoError);
qint64 normalElapsed = normalResult.second;
// clear all caches again
@@ -955,7 +955,7 @@ void tst_qnetworkreply::preConnect()
QPair<QNetworkReply *, qint64> preConnectResult = runGetRequest(&manager, request);
QNetworkReply *preConnectReply = normalResult.first;
QVERIFY(!QTestEventLoop::instance().timeout());
- QVERIFY(preConnectReply->networkError() == QNetworkReply::NoError);
+ QVERIFY(preConnectReply->error() == QNetworkReply::NoError);
qint64 preConnectElapsed = preConnectResult.second;
qDebug() << request.url().toString() << "full request:" << normalElapsed
<< "ms, pre-connect request:" << preConnectElapsed << "ms, difference:"
diff --git a/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/fromcbor.pro b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/fromcbor.pro
new file mode 100644
index 0000000000..6c988c2434
--- /dev/null
+++ b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/fromcbor.pro
@@ -0,0 +1,10 @@
+QT -= gui
+CONFIG += console
+CONFIG -= app_bundle
+SOURCES += main.cpp
+FUZZ_ENGINE = $$(LIB_FUZZING_ENGINE)
+isEmpty(FUZZ_ENGINE) {
+ QMAKE_LFLAGS += -fsanitize=fuzzer
+} else {
+ LIBS += $$FUZZ_ENGINE
+}
diff --git a/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/main.cpp b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/main.cpp
new file mode 100644
index 0000000000..5e2a440d1b
--- /dev/null
+++ b/tests/libfuzzer/corelib/serialization/qcborvalue/fromcbor/main.cpp
@@ -0,0 +1,34 @@
+/****************************************************************************
+**
+** Copyright (C) 2020 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:GPL-EXCEPT$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see https://www.qt.io/terms-conditions. For further
+** information use the contact form at https://www.qt.io/contact-us.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3 as published by the Free Software
+** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
+** included in the packaging of this file. Please review the following
+** information to ensure the GNU General Public License requirements will
+** be met: https://www.gnu.org/licenses/gpl-3.0.html.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QCborValue>
+
+extern "C" int LLVMFuzzerTestOneInput(const char *Data, size_t Size) {
+ QCborValue::fromCbor(QByteArray::fromRawData(Data, Size));
+ return 0;
+}
diff --git a/tests/manual/bearerex/datatransferer.cpp b/tests/manual/bearerex/datatransferer.cpp
index 0eeeb090ae..b4409ce52c 100644
--- a/tests/manual/bearerex/datatransferer.cpp
+++ b/tests/manual/bearerex/datatransferer.cpp
@@ -53,7 +53,7 @@ DataTransfererQTcp::DataTransfererQTcp(QObject* parent)
connect(&m_qsocket, SIGNAL(readyRead()), this, SLOT(readyRead()));
connect(&m_qsocket, SIGNAL(connected()), this, SLOT(connected()));
- connect(&m_qsocket, SIGNAL(error(QAbstractSocket::SocketError)),
+ connect(&m_qsocket, SIGNAL(errorOccurred(QAbstractSocket::SocketError)),
this, SLOT(error(QAbstractSocket::SocketError)));
}