From d509ec9707b3c4ce7efd7af27a18d171913c5682 Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Fri, 10 Dec 2010 13:47:31 +1000 Subject: simplify waitForOpened() and don't exclude socket events so they might be used pings and so on... Merge-request: 899 Reviewed-by: Aaron McCarthy --- src/network/bearer/qnetworksession.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/network/bearer/qnetworksession.cpp b/src/network/bearer/qnetworksession.cpp index dedbbf9..eac0456 100644 --- a/src/network/bearer/qnetworksession.cpp +++ b/src/network/bearer/qnetworksession.cpp @@ -313,19 +313,16 @@ bool QNetworkSession::waitForOpened(int msecs) if (d->state != Connecting) return false; - QEventLoop* loop = new QEventLoop(this); - QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()), - loop, SLOT(quit())); - QObject::connect(this, SIGNAL(error(QNetworkSession::SessionError)), - loop, SLOT(quit())); + QEventLoop loop; + QObject::connect(d, SIGNAL(quitPendingWaitsForOpened()), &loop, SLOT(quit())); + QObject::connect(this, SIGNAL(error(QNetworkSession::SessionError)), &loop, SLOT(quit())); //final call if (msecs >= 0) - QTimer::singleShot(msecs, loop, SLOT(quit())); + QTimer::singleShot(msecs, &loop, SLOT(quit())); - loop->exec(); - loop->disconnect(); - loop->deleteLater(); + // enter the event loop and wait for opened/error/timeout + loop.exec(QEventLoop::ExcludeUserInputEvents | QEventLoop::WaitForMoreEvents); return d->isOpen; } -- cgit v0.12