From 02bdd61245da529ff99cdebc939b33fefe398f48 Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Fri, 19 Mar 2010 14:27:26 +1000 Subject: Revert "Don't emit open signal on session close/error." This reverts commit 39818f933b958d504b9cc18487658209d1df22da. --- src/network/access/qnetworkaccessmanager.cpp | 2 -- src/network/access/qnetworkreplyimpl.cpp | 10 ---------- src/network/access/qnetworkreplyimpl_p.h | 2 -- src/network/bearer/qnetworksession.cpp | 9 +++++---- src/network/bearer/qnetworksession_p.h | 4 +++- src/plugins/bearer/qnetworksession_impl.cpp | 19 +++++++++---------- src/plugins/bearer/qnetworksession_impl.h | 2 +- .../auto/qnetworksession/test/tst_qnetworksession.cpp | 3 --- 8 files changed, 18 insertions(+), 33 deletions(-) diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index 8fe1857..197d89e 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -944,8 +944,6 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera if (req.url().scheme() != QLatin1String("file") && !req.url().scheme().isEmpty()) { connect(this, SIGNAL(networkSessionConnected()), reply, SLOT(_q_networkSessionConnected())); - if (d->networkSession) - connect(d->networkSession, SIGNAL(closed()), reply, SLOT(_q_networkSessionClosed())); } QNetworkReplyImplPrivate *priv = reply->d_func(); priv->manager = this; diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index 9ef2ed8..7fc0097 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -262,16 +262,6 @@ void QNetworkReplyImplPrivate::_q_networkSessionConnected() } } -void QNetworkReplyImplPrivate::_q_networkSessionClosed() -{ - if (state != Finished) { - state = Working; - error(QNetworkReply::UnknownNetworkError, - QCoreApplication::translate("QNetworkReply", "Network session closed.")); - finished(); - } -} - void QNetworkReplyImplPrivate::_q_networkSessionFailed() { // Abort waiting replies. diff --git a/src/network/access/qnetworkreplyimpl_p.h b/src/network/access/qnetworkreplyimpl_p.h index 8e498d5..fcb3397 100644 --- a/src/network/access/qnetworkreplyimpl_p.h +++ b/src/network/access/qnetworkreplyimpl_p.h @@ -100,7 +100,6 @@ public: Q_PRIVATE_SLOT(d_func(), void _q_bufferOutgoingData()) Q_PRIVATE_SLOT(d_func(), void _q_bufferOutgoingDataFinished()) Q_PRIVATE_SLOT(d_func(), void _q_networkSessionConnected()) - Q_PRIVATE_SLOT(d_func(), void _q_networkSessionClosed()) Q_PRIVATE_SLOT(d_func(), void _q_networkSessionFailed()) }; @@ -135,7 +134,6 @@ public: void _q_bufferOutgoingData(); void _q_bufferOutgoingDataFinished(); void _q_networkSessionConnected(); - void _q_networkSessionClosed(); void _q_networkSessionFailed(); void setup(QNetworkAccessManager::Operation op, const QNetworkRequest &request, diff --git a/src/network/bearer/qnetworksession.cpp b/src/network/bearer/qnetworksession.cpp index d05f20e..cf9f4b2 100644 --- a/src/network/bearer/qnetworksession.cpp +++ b/src/network/bearer/qnetworksession.cpp @@ -231,7 +231,7 @@ QNetworkSession::QNetworkSession(const QNetworkConfiguration& connectionConfig, d->q = this; d->publicConfig = connectionConfig; d->syncStateWithInterface(); - connect(d, SIGNAL(opened()), this, SIGNAL(opened())); + connect(d, SIGNAL(quitPendingWaitsForOpened()), this, SIGNAL(opened())); connect(d, SIGNAL(error(QNetworkSession::SessionError)), this, SIGNAL(error(QNetworkSession::SessionError))); connect(d, SIGNAL(stateChanged(QNetworkSession::State)), @@ -308,9 +308,10 @@ bool QNetworkSession::waitForOpened(int msecs) return false; QEventLoop* loop = new QEventLoop(this); - connect(d, SIGNAL(opened()), loop, SLOT(quit())); - connect(d, SIGNAL(closed()), loop, SLOT(quit())); - connect(d, SIGNAL(error(QNetworkSession::SessionError)), loop, SLOT(quit())); + QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()), + loop, SLOT(quit())); + QObject::connect(this, SIGNAL(error(QNetworkSession::SessionError)), + loop, SLOT(quit())); //final call if (msecs>=0) diff --git a/src/network/bearer/qnetworksession_p.h b/src/network/bearer/qnetworksession_p.h index 5eef8e3..76691b3 100644 --- a/src/network/bearer/qnetworksession_p.h +++ b/src/network/bearer/qnetworksession_p.h @@ -116,7 +116,9 @@ protected: } Q_SIGNALS: - void opened(); + //releases any pending waitForOpened() calls + void quitPendingWaitsForOpened(); + void error(QNetworkSession::SessionError error); void stateChanged(QNetworkSession::State state); void closed(); diff --git a/src/plugins/bearer/qnetworksession_impl.cpp b/src/plugins/bearer/qnetworksession_impl.cpp index ddda04f..db1759c 100644 --- a/src/plugins/bearer/qnetworksession_impl.cpp +++ b/src/plugins/bearer/qnetworksession_impl.cpp @@ -103,7 +103,7 @@ void QNetworkSessionPrivateImpl::syncStateWithInterface() connect(sessionManager(), SIGNAL(forcedSessionClose(QNetworkConfiguration)), this, SLOT(forcedSessionClose(QNetworkConfiguration))); - sessionOpened = false; + opened = false; isOpen = false; state = QNetworkSession::Invalid; lastError = QNetworkSession::UnknownSessionError; @@ -153,7 +153,7 @@ void QNetworkSessionPrivateImpl::open() emit QNetworkSessionPrivate::error(lastError); return; } - sessionOpened = true; + opened = true; if ((activeConfig.state() & QNetworkConfiguration::Active) != QNetworkConfiguration::Active && (activeConfig.state() & QNetworkConfiguration::Discovered) == QNetworkConfiguration::Discovered) { @@ -165,7 +165,7 @@ void QNetworkSessionPrivateImpl::open() isOpen = (activeConfig.state() & QNetworkConfiguration::Active) == QNetworkConfiguration::Active; if (isOpen) - emit opened(); + emit quitPendingWaitsForOpened(); } } @@ -175,7 +175,7 @@ void QNetworkSessionPrivateImpl::close() lastError = QNetworkSession::OperationNotSupportedError; emit QNetworkSessionPrivate::error(lastError); } else if (isOpen) { - sessionOpened = false; + opened = false; isOpen = false; emit closed(); } @@ -196,7 +196,7 @@ void QNetworkSessionPrivateImpl::stop() sessionManager()->forceSessionClose(activeConfig); } - sessionOpened = false; + opened = false; isOpen = false; emit closed(); } @@ -364,10 +364,10 @@ void QNetworkSessionPrivateImpl::updateStateFromActiveConfig() state = engine->sessionStateForId(activeConfig.identifier()); bool oldActive = isOpen; - isOpen = (state == QNetworkSession::Connected) ? sessionOpened : false; + isOpen = (state == QNetworkSession::Connected) ? opened : false; if (!oldActive && isOpen) - emit opened(); + emit quitPendingWaitsForOpened(); if (oldActive && !isOpen) emit closed(); @@ -398,7 +398,7 @@ void QNetworkSessionPrivateImpl::configurationChanged(QNetworkConfigurationPriva void QNetworkSessionPrivateImpl::forcedSessionClose(const QNetworkConfiguration &config) { if (activeConfig == config) { - sessionOpened = false; + opened = false; isOpen = false; emit closed(); @@ -416,7 +416,7 @@ void QNetworkSessionPrivateImpl::connectionError(const QString &id, switch (error) { case QBearerEngineImpl::OperationNotSupported: lastError = QNetworkSession::OperationNotSupportedError; - sessionOpened = false; + opened = false; break; case QBearerEngineImpl::InterfaceLookupError: case QBearerEngineImpl::ConnectError: @@ -426,7 +426,6 @@ void QNetworkSessionPrivateImpl::connectionError(const QString &id, } emit QNetworkSessionPrivate::error(lastError); - emit closed(); } } diff --git a/src/plugins/bearer/qnetworksession_impl.h b/src/plugins/bearer/qnetworksession_impl.h index c31e540..c644174 100644 --- a/src/plugins/bearer/qnetworksession_impl.h +++ b/src/plugins/bearer/qnetworksession_impl.h @@ -114,7 +114,7 @@ private Q_SLOTS: void decrementTimeout(); private: - bool sessionOpened; + bool opened; QBearerEngineImpl *engine; diff --git a/tests/auto/qnetworksession/test/tst_qnetworksession.cpp b/tests/auto/qnetworksession/test/tst_qnetworksession.cpp index 35f7ba7..4b56f77 100644 --- a/tests/auto/qnetworksession/test/tst_qnetworksession.cpp +++ b/tests/auto/qnetworksession/test/tst_qnetworksession.cpp @@ -628,9 +628,6 @@ void tst_QNetworkSession::sessionOpenCloseStop() QVERIFY(session.state() == previousState); - QVERIFY(sessionOpenedSpy.isEmpty()); - QCOMPARE(sessionClosedSpy.count(), 1); - if (error == QNetworkSession::OperationNotSupportedError) { // The session needed to bring up the interface, // but the operation is not supported. -- cgit v0.12