diff options
Diffstat (limited to 'src/plugins/qmltooling/qmldbg_tcp')
-rw-r--r-- | src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp | 30 | ||||
-rw-r--r-- | src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h | 2 |
2 files changed, 23 insertions, 9 deletions
diff --git a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp index fbdb201b04..86e1a70841 100644 --- a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp +++ b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.cpp @@ -54,7 +54,8 @@ class QTcpServerConnectionPrivate { public: QTcpServerConnectionPrivate(); - int port; + int portFrom; + int portTo; bool block; QString hostaddress; QTcpSocket *socket; @@ -65,7 +66,8 @@ public: }; QTcpServerConnectionPrivate::QTcpServerConnectionPrivate() : - port(0), + portFrom(0), + portTo(0), block(false), socket(0), protocol(0), @@ -135,10 +137,12 @@ bool QTcpServerConnection::waitForMessage() return d->protocol->waitForReadyRead(-1); } -void QTcpServerConnection::setPort(int port, bool block, const QString &hostaddress) +void QTcpServerConnection::setPortRange(int portFrom, int portTo, bool block, + const QString &hostaddress) { Q_D(QTcpServerConnection); - d->port = port; + d->portFrom = portFrom; + d->portTo = portTo; d->block = block; d->hostaddress = hostaddress; @@ -163,10 +167,20 @@ void QTcpServerConnection::listen() } else { hostaddress = QHostAddress::Any; } - if (d->tcpServer->listen(hostaddress, d->port)) - qDebug("QML Debugger: Waiting for connection on port %d...", d->port); - else - qWarning("QML Debugger: Unable to listen to port %d.", d->port); + int port = d->portFrom; + do { + if (d->tcpServer->listen(hostaddress, port)) { + qDebug("QML Debugger: Waiting for connection on port %d...", port); + break; + } + ++port; + } while (port <= d->portTo); + if (port > d->portTo) { + if (d->portFrom == d->portTo) + qWarning("QML Debugger: Unable to listen to port %d.", d->portFrom); + else + qWarning("QML Debugger: Unable to listen to ports %d - %d.", d->portFrom, d->portTo); + } } diff --git a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h index 33157906c8..525ed50e51 100644 --- a/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h +++ b/src/plugins/qmltooling/qmldbg_tcp/qtcpserverconnection.h @@ -61,7 +61,7 @@ public: ~QTcpServerConnection(); void setServer(QQmlDebugServer *server); - void setPort(int port, bool bock, const QString &hostaddress); + void setPortRange(int portFrom, int portTo, bool bock, const QString &hostaddress); bool isConnected() const; void send(const QList<QByteArray> &messages); |