From 8f8eb99991216c0833c23a0f068e036a70e3b060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Sat, 29 Feb 2020 11:39:58 +0100 Subject: [PATCH] QNetworkReply: Deprecate 'error' signal, use 'errorOccurred' instead MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ChangeLog][Deprecation Notice] QNetworkReply::error() (the signal) is deprecated; superseded by errorOccurred() Change-Id: I4f1ef410fd22d34ddf87e89cc5709cc60703af95 Reviewed-by: MÃ¥rten Nordheim --- examples/xml/rsslisting/rsslisting.cpp | 2 +- src/network/access/qnetworkreply.cpp | 15 ++++++- src/network/access/qnetworkreply.h | 4 ++ src/network/access/qnetworkreplydataimpl.cpp | 2 +- src/network/access/qnetworkreplyhttpimpl.cpp | 2 +- src/network/access/qnetworkreplyimpl.cpp | 4 +- tests/auto/network/access/http2/tst_http2.cpp | 2 +- .../tst_qhttpnetworkconnection.cpp | 6 +-- .../tst_qnetworkaccessmanager.cpp | 2 +- .../qnetworkreply/tst_qnetworkreply.cpp | 42 +++++++++---------- tests/auto/network/access/spdy/tst_spdy.cpp | 2 +- 11 files changed, 48 insertions(+), 35 deletions(-) diff --git a/examples/xml/rsslisting/rsslisting.cpp b/examples/xml/rsslisting/rsslisting.cpp index d1b43735316..143ad6dcbad 100644 --- a/examples/xml/rsslisting/rsslisting.cpp +++ b/examples/xml/rsslisting/rsslisting.cpp @@ -131,7 +131,7 @@ void RSSListing::get(const QUrl &url) currentReply = manager.get(request); connect(currentReply, SIGNAL(readyRead()), this, SLOT(readyRead())); connect(currentReply, SIGNAL(metaDataChanged()), this, SLOT(metaDataChanged())); - connect(currentReply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(error(QNetworkReply::NetworkError))); + connect(currentReply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), this, SLOT(error(QNetworkReply::NetworkError))); } /* diff --git a/src/network/access/qnetworkreply.cpp b/src/network/access/qnetworkreply.cpp index fb30bfd4f18..22c522756c5 100644 --- a/src/network/access/qnetworkreply.cpp +++ b/src/network/access/qnetworkreply.cpp @@ -91,7 +91,7 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() content. \note Do not delete the object in the slot connected to the - error() or finished() signal. Use deleteLater(). + errorOccurred() or finished() signal. Use deleteLater(). \sa QNetworkRequest, QNetworkAccessManager */ @@ -219,6 +219,7 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() the server response was detected \sa error() + \sa errorOccurred() */ /*! @@ -362,6 +363,14 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() /*! \fn void QNetworkReply::error(QNetworkReply::NetworkError code) + \obsolete + + Use errorOccurred() instead. +*/ + +/*! + \fn void QNetworkReply::errorOccurred(QNetworkReply::NetworkError code) + \since 5.15 This signal is emitted when the reply detects an error in processing. The finished() signal will probably follow, indicating @@ -442,7 +451,7 @@ QNetworkReplyPrivate::QNetworkReplyPrivate() QNetworkAccessManager functions to do that. */ QNetworkReply::QNetworkReply(QObject *parent) - : QIODevice(*new QNetworkReplyPrivate, parent) + : QNetworkReply(*new QNetworkReplyPrivate, parent) { } @@ -452,6 +461,8 @@ QNetworkReply::QNetworkReply(QObject *parent) QNetworkReply::QNetworkReply(QNetworkReplyPrivate &dd, QObject *parent) : QIODevice(dd, parent) { + // Support the deprecated error() signal: + connect(this, &QNetworkReply::errorOccurred, this, QOverload::of(&QNetworkReply::error)); } /*! diff --git a/src/network/access/qnetworkreply.h b/src/network/access/qnetworkreply.h index 4a402daa91a..82349f9e2a3 100644 --- a/src/network/access/qnetworkreply.h +++ b/src/network/access/qnetworkreply.h @@ -156,7 +156,11 @@ public Q_SLOTS: Q_SIGNALS: void metaDataChanged(); void finished(); +#if QT_DEPRECATED_SINCE(5,15) + QT_DEPRECATED_X("Use QNetworkReply::errorOccurred(QNetworkReply::NetworkError) instead") void error(QNetworkReply::NetworkError); +#endif + void errorOccurred(QNetworkReply::NetworkError); #if QT_CONFIG(ssl) void encrypted(); void sslErrors(const QList &errors); diff --git a/src/network/access/qnetworkreplydataimpl.cpp b/src/network/access/qnetworkreplydataimpl.cpp index 924c905b1ac..2f750204469 100644 --- a/src/network/access/qnetworkreplydataimpl.cpp +++ b/src/network/access/qnetworkreplydataimpl.cpp @@ -88,7 +88,7 @@ QNetworkReplyDataImpl::QNetworkReplyDataImpl(QObject *parent, const QNetworkRequ const QString msg = QCoreApplication::translate("QNetworkAccessDataBackend", "Invalid URI: %1").arg(url.toString()); setError(QNetworkReply::ProtocolFailure, msg); - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, + QMetaObject::invokeMethod(this, "errorOccurred", Qt::QueuedConnection, Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ProtocolFailure)); QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); } diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index 12f402cabd9..2a9d2812569 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -2265,7 +2265,7 @@ void QNetworkReplyHttpImplPrivate::error(QNetworkReplyImpl::NetworkError code, c // note: might not be a good idea, since users could decide to delete us // which would delete the backend too... // maybe we should protect the backend - emit q->error(code); + emit q->errorOccurred(code); } void QNetworkReplyHttpImplPrivate::_q_metaDataChanged() diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index 51bb3861864..a0b4ace470c 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -855,7 +855,7 @@ void QNetworkReplyImplPrivate::error(QNetworkReplyImpl::NetworkError code, const // note: might not be a good idea, since users could decide to delete us // which would delete the backend too... // maybe we should protect the backend - emit q->error(code); + emit q->errorOccurred(code); } void QNetworkReplyImplPrivate::metaDataChanged() @@ -1128,7 +1128,7 @@ QDisabledNetworkReply::QDisabledNetworkReply(QObject *parent, "Network access is disabled."); setError(UnknownNetworkError, msg); - QMetaObject::invokeMethod(this, "error", Qt::QueuedConnection, + QMetaObject::invokeMethod(this, "errorOccurred", Qt::QueuedConnection, Q_ARG(QNetworkReply::NetworkError, UnknownNetworkError)); QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); } diff --git a/tests/auto/network/access/http2/tst_http2.cpp b/tests/auto/network/access/http2/tst_http2.cpp index 6f94692cb19..6a07ae78fbd 100644 --- a/tests/auto/network/access/http2/tst_http2.cpp +++ b/tests/auto/network/access/http2/tst_http2.cpp @@ -513,7 +513,7 @@ void tst_Http2::goaway() replies[i] = manager->get(request); QCOMPARE(replies[i]->error(), QNetworkReply::NoError); void (QNetworkReply::*errorSignal)(QNetworkReply::NetworkError) = - &QNetworkReply::error; + &QNetworkReply::errorOccurred; connect(replies[i], errorSignal, this, &tst_Http2::replyFinishedWithError); // Since we're using self-signed certificates, ignore SSL errors: replies[i]->ignoreSslErrors(); diff --git a/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp b/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp index 57fa5a613c4..e8d4c773f0a 100644 --- a/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp +++ b/tests/auto/network/access/qhttpnetworkconnection/tst_qhttpnetworkconnection.cpp @@ -1005,10 +1005,8 @@ void tst_QHttpNetworkConnection::overlappingCloseAndWrite() for (int i = 0; i < 10; ++i) { QNetworkRequest request(url); QNetworkReply *reply = accessManager.get(request); - // Not using Qt5 connection syntax here because of overly baroque syntax to discern between - // different error() methods. - QObject::connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), - &server, SLOT(onReply(QNetworkReply::NetworkError))); + QObject::connect(reply, &QNetworkReply::errorOccurred, + &server, &TestTcpServer::onReply); } QTRY_COMPARE(server.errorCodeReports, 10); diff --git a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp index 752655ee947..b5ded86d586 100644 --- a/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp +++ b/tests/auto/network/access/qnetworkaccessmanager/tst_qnetworkaccessmanager.cpp @@ -87,7 +87,7 @@ void tst_QNetworkAccessManager::networkAccessible() // When network is not accessible, all requests fail QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("http://www.example.org"))); QSignalSpy finishedSpy(reply, &QNetworkReply::finished); - QSignalSpy errorSpy(reply, QOverload::of(&QNetworkReply::error)); + QSignalSpy errorSpy(reply, &QNetworkReply::errorOccurred); QVERIFY(finishedSpy.wait()); QCOMPARE(reply->isFinished(), true); QCOMPARE(reply->errorString(), QStringLiteral("Network access is disabled.")); diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp index 65f355ca255..7d065f1248e 100644 --- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp @@ -1371,7 +1371,7 @@ QString tst_QNetworkReply::runMultipartRequest(const QNetworkRequest &request, // the code below is copied from tst_QNetworkReply::runSimpleRequest, see below reply->setParent(this); connect(reply, SIGNAL(finished()), SLOT(finished())); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); + connect(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(gotError())); multiPart->setParent(reply.data()); returnCode = Timeout; @@ -1431,7 +1431,7 @@ QString tst_QNetworkReply::runSimpleRequest(QNetworkAccessManager::Operation op, code = Failure; } else { connect(reply, SIGNAL(finished()), SLOT(finished())); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); + connect(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(gotError())); int count = 0; loop = new QEventLoop; @@ -1466,7 +1466,7 @@ QString tst_QNetworkReply::runCustomRequest(const QNetworkRequest &request, reply.reset(manager.sendCustomRequest(request, verb, data)); reply->setParent(this); connect(reply, SIGNAL(finished()), SLOT(finished())); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); + connect(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(gotError())); returnCode = Timeout; loop = new QEventLoop; @@ -1503,7 +1503,7 @@ int tst_QNetworkReply::waitForFinish(QNetworkReplyPtr &reply) int count = 0; connect(reply, SIGNAL(finished()), SLOT(finished())); - connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), SLOT(gotError())); + connect(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError)), SLOT(gotError())); returnCode = Success; loop = new QEventLoop; QSignalSpy spy(reply.data(), SIGNAL(downloadProgress(qint64,qint64))); @@ -1890,7 +1890,7 @@ void tst_QNetworkReply::getFromFtpAfterError() QNetworkRequest invalidRequest(QUrl("ftp://" + QtNetworkSettings::ftpServerName() + "/qtest/invalid.txt")); QNetworkReplyPtr invalidReply; invalidReply.reset(manager.get(invalidRequest)); - QSignalSpy spy(invalidReply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(invalidReply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QVERIFY(spy.wait()); QCOMPARE(invalidReply->error(), QNetworkReply::ContentNotFoundError); @@ -3911,7 +3911,7 @@ void tst_QNetworkReply::ioGetFromHttpBrokenServer() QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); QNetworkReplyPtr reply(manager.get(request)); - QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply), int(Failure)); @@ -5447,7 +5447,7 @@ void tst_QNetworkReply::rateControl() QNetworkRequest request("debugpipe://localhost:" + QString::number(sender.serverPort())); QNetworkReplyPtr reply(manager.get(request)); reply->setReadBufferSize(32768); - QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); RateControlledReader reader(sender, reply.data(), rate, 20); @@ -5861,7 +5861,7 @@ void tst_QNetworkReply::nestedEventLoops() QNetworkReplyPtr reply(manager.get(request)); QSignalSpy finishedspy(reply.data(), SIGNAL(finished())); - QSignalSpy errorspy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorspy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), SLOT(nestedEventLoops_slot())); QTestEventLoop::instance().enterLoop(20); @@ -6094,7 +6094,7 @@ void tst_QNetworkReply::authorizationError() QCOMPARE(reply->error(), QNetworkReply::NoError); - QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QSignalSpy finishedSpy(reply.data(), SIGNAL(finished())); // now run the request: QCOMPARE(waitForFinish(reply), int(Failure)); @@ -7050,7 +7050,7 @@ void tst_QNetworkReply::qtbug4121unknownAuthentication() QSignalSpy authSpy(&manager, SIGNAL(authenticationRequired(QNetworkReply*,QAuthenticator*))); QSignalSpy finishedSpy(&manager, SIGNAL(finished(QNetworkReply*))); - QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -7371,7 +7371,7 @@ void tst_QNetworkReply::httpWithNoCredentialUsage() request.setAttribute(QNetworkRequest::AuthenticationReuseAttribute, QNetworkRequest::Manual); QNetworkReplyPtr reply(manager.get(request)); - QSignalSpy errorSpy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection); QTestEventLoop::instance().enterLoop(10); @@ -8083,7 +8083,7 @@ void tst_QNetworkReply::emitErrorForAllReplies() // QTBUG-36890 QNetworkRequest request(urls.at(a)); QNetworkReply *reply = manager.get(request); replies.append(reply); - QSignalSpy *errorSpy = new QSignalSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy *errorSpy = new QSignalSpy(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError))); errorSpies.append(errorSpy); QSignalSpy *finishedSpy = new QSignalSpy(reply, SIGNAL(finished())); finishedSpies.append(finishedSpy); @@ -8474,7 +8474,7 @@ void tst_QNetworkReply::ioHttpChangeMaxRedirects() QNetworkReplyPtr reply(manager.get(request)); QSignalSpy redSpy(reply.data(), SIGNAL(redirected(QUrl))); - QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply), int(Failure)); @@ -8538,7 +8538,7 @@ void tst_QNetworkReply::ioHttpRedirectErrors() QTimer watchDog; watchDog.setSingleShot(true); - reply->connect(reply.data(), QOverload().of(&QNetworkReply::error), + reply->connect(reply.data(), &QNetworkReply::errorOccurred, [&eventLoop](QNetworkReply::NetworkError){ eventLoop.exit(Failure); }); @@ -8704,7 +8704,7 @@ void tst_QNetworkReply::ioHttpRedirectPolicyErrors() if (ssl) reply->ignoreSslErrors(); - QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply), int(Failure)); QCOMPARE(spy.count(), 1); @@ -9352,7 +9352,7 @@ void tst_QNetworkReply::getWithTimeout() QNetworkRequest request(QUrl("http://localhost:" + QString::number(server.serverPort()))); QNetworkReplyPtr reply(manager.get(request)); - QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply), int(Success)); @@ -9363,7 +9363,7 @@ void tst_QNetworkReply::getWithTimeout() server.stopTransfer = true; QNetworkReplyPtr reply2(manager.get(request)); - QSignalSpy spy2(reply2.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy2(reply2.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply2), int(Failure)); @@ -9374,7 +9374,7 @@ void tst_QNetworkReply::getWithTimeout() manager.setTransferTimeout(1000); QNetworkReplyPtr reply3(manager.get(request)); - QSignalSpy spy3(reply3.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy3(reply3.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply3), int(Failure)); @@ -9392,7 +9392,7 @@ void tst_QNetworkReply::postWithTimeout() request.setRawHeader("Content-Type", "application/octet-stream"); QByteArray postData("Just some nonsense"); QNetworkReplyPtr reply(manager.post(request, postData)); - QSignalSpy spy(reply.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy(reply.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply), int(Success)); @@ -9403,7 +9403,7 @@ void tst_QNetworkReply::postWithTimeout() server.stopTransfer = true; QNetworkReplyPtr reply2(manager.post(request, postData)); - QSignalSpy spy2(reply2.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy2(reply2.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply2), int(Failure)); @@ -9414,7 +9414,7 @@ void tst_QNetworkReply::postWithTimeout() manager.setTransferTimeout(1000); QNetworkReplyPtr reply3(manager.post(request, postData)); - QSignalSpy spy3(reply3.data(), SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy spy3(reply3.data(), SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QCOMPARE(waitForFinish(reply3), int(Failure)); diff --git a/tests/auto/network/access/spdy/tst_spdy.cpp b/tests/auto/network/access/spdy/tst_spdy.cpp index 5701f4911cc..1b0b3aec6b7 100644 --- a/tests/auto/network/access/spdy/tst_spdy.cpp +++ b/tests/auto/network/access/spdy/tst_spdy.cpp @@ -581,7 +581,7 @@ void tst_Spdy::errors() if (ignoreSslErrors) reply->ignoreSslErrors(); QSignalSpy finishedSpy(reply, SIGNAL(finished())); - QSignalSpy errorSpy(reply, SIGNAL(error(QNetworkReply::NetworkError))); + QSignalSpy errorSpy(reply, SIGNAL(errorOccurred(QNetworkReply::NetworkError))); QObject::connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));