diff options
author | Ulf Hermann <ulf.hermann@digia.com> | 2014-05-05 18:01:02 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@digia.com> | 2014-05-08 13:40:31 +0200 |
commit | ba5c136a6da15f81d35df73557ffd6ad5ef3eed0 (patch) | |
tree | 731392584d4239a7ee18e869f89956ef0811622c | |
parent | 10252364bb0cab8dda311b9c24867d353df3ea95 (diff) | |
download | qt-creator-ba5c136a6da15f81d35df73557ffd6ad5ef3eed0.tar.gz |
QmlDebugClient: Check for gotHello to determine if connection is open
The isConnected() method was misleading as it only checked for the
network socket to be connected. Sending data before the hello message
arrives is a pretty stupid idea and the debug clients need a way to
detect that. The new isOpen method stresses that it's about the
logical protocol, not the network socket.
Change-Id: I84f093d91d7a21d20a8f3d14730c9f189ec35bde
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r-- | src/libs/qmldebug/declarativetoolsclient.cpp | 30 | ||||
-rw-r--r-- | src/libs/qmldebug/qmldebugclient.cpp | 10 | ||||
-rw-r--r-- | src/libs/qmldebug/qmldebugclient.h | 2 | ||||
-rw-r--r-- | src/libs/qmldebug/qmltoolsclient.cpp | 22 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 4 |
5 files changed, 33 insertions, 35 deletions
diff --git a/src/libs/qmldebug/declarativetoolsclient.cpp b/src/libs/qmldebug/declarativetoolsclient.cpp index 98304b85dd..a08a672f74 100644 --- a/src/libs/qmldebug/declarativetoolsclient.cpp +++ b/src/libs/qmldebug/declarativetoolsclient.cpp @@ -235,7 +235,7 @@ QList<int> DeclarativeToolsClient::currentObjects() const void DeclarativeToolsClient::setCurrentObjects(const QList<int> &debugIds) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; if (debugIds == m_currentDebugIds) @@ -289,7 +289,7 @@ void DeclarativeToolsClient::setObjectIdList( void DeclarativeToolsClient::clearComponentCache() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -308,7 +308,7 @@ void DeclarativeToolsClient::reload(const QHash<QString, { Q_UNUSED(changesHash); - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -324,7 +324,7 @@ void DeclarativeToolsClient::reload(const QHash<QString, void DeclarativeToolsClient::setDesignModeBehavior(bool inDesignMode) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -341,7 +341,7 @@ void DeclarativeToolsClient::setDesignModeBehavior(bool inDesignMode) void DeclarativeToolsClient::setAnimationSpeed(qreal slowDownFactor) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -359,7 +359,7 @@ void DeclarativeToolsClient::setAnimationSpeed(qreal slowDownFactor) void DeclarativeToolsClient::setAnimationPaused(bool paused) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -376,7 +376,7 @@ void DeclarativeToolsClient::setAnimationPaused(bool paused) void DeclarativeToolsClient::changeToSelectTool() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -394,7 +394,7 @@ void DeclarativeToolsClient::changeToSelectTool() void DeclarativeToolsClient::changeToSelectMarqueeTool() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -412,7 +412,7 @@ void DeclarativeToolsClient::changeToSelectMarqueeTool() void DeclarativeToolsClient::changeToZoomTool() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -430,7 +430,7 @@ void DeclarativeToolsClient::changeToZoomTool() void DeclarativeToolsClient::showAppOnTop(bool showOnTop) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -449,7 +449,7 @@ void DeclarativeToolsClient::createQmlObject(const QString &qmlText, const QStringList &imports, const QString &filename, int order) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -472,7 +472,7 @@ void DeclarativeToolsClient::createQmlObject(const QString &qmlText, void DeclarativeToolsClient::destroyQmlObject(int debugId) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); @@ -487,7 +487,7 @@ void DeclarativeToolsClient::destroyQmlObject(int debugId) void DeclarativeToolsClient::reparentQmlObject(int debugId, int newParent) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); @@ -506,7 +506,7 @@ void DeclarativeToolsClient::reparentQmlObject(int debugId, int newParent) void DeclarativeToolsClient::applyChangesToQmlFile() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; // TODO @@ -514,7 +514,7 @@ void DeclarativeToolsClient::applyChangesToQmlFile() void DeclarativeToolsClient::applyChangesFromQmlFile() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; // TODO diff --git a/src/libs/qmldebug/qmldebugclient.cpp b/src/libs/qmldebug/qmldebugclient.cpp index d9cf8fa932..1a7f8656f8 100644 --- a/src/libs/qmldebug/qmldebugclient.cpp +++ b/src/libs/qmldebug/qmldebugclient.cpp @@ -82,7 +82,7 @@ QmlDebugConnectionPrivate::QmlDebugConnectionPrivate(QmlDebugConnection *c) void QmlDebugConnectionPrivate::advertisePlugins() { - if (!q->isConnected() || !gotHello) + if (!q->isOpen()) return; QPacket pack; @@ -230,9 +230,9 @@ QmlDebugConnection::~QmlDebugConnection() } } -bool QmlDebugConnection::isConnected() const +bool QmlDebugConnection::isOpen() const { - return socketState() == QAbstractSocket::ConnectedState; + return socketState() == QAbstractSocket::ConnectedState && d->gotHello; } void QmlDebugConnection::close() @@ -340,9 +340,7 @@ float QmlDebugClient::serviceVersion() const QmlDebugClient::State QmlDebugClient::state() const { Q_D(const QmlDebugClient); - if (!d->connection - || !d->connection->isConnected() - || !d->connection->d->gotHello) + if (!d->connection || !d->connection->isOpen()) return NotConnected; if (d->connection->d->serverPlugins.contains(d->name)) diff --git a/src/libs/qmldebug/qmldebugclient.h b/src/libs/qmldebug/qmldebugclient.h index e4109f97d7..c865f410a5 100644 --- a/src/libs/qmldebug/qmldebugclient.h +++ b/src/libs/qmldebug/qmldebugclient.h @@ -48,7 +48,7 @@ public: void connectToHost(const QString &hostName, quint16 port); - bool isConnected() const; + bool isOpen() const; QAbstractSocket::SocketState socketState() const; void close(); QString errorString() const; diff --git a/src/libs/qmldebug/qmltoolsclient.cpp b/src/libs/qmldebug/qmltoolsclient.cpp index d6d857e9ea..3607c51779 100644 --- a/src/libs/qmldebug/qmltoolsclient.cpp +++ b/src/libs/qmldebug/qmltoolsclient.cpp @@ -127,7 +127,7 @@ QList<int> QmlToolsClient::currentObjects() const void QmlToolsClient::setCurrentObjects(const QList<int> &debugIds) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; if (debugIds == m_currentDebugIds) @@ -153,7 +153,7 @@ void QmlToolsClient::setObjectIdList( void QmlToolsClient::clearComponentCache() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -168,7 +168,7 @@ void QmlToolsClient::clearComponentCache() void QmlToolsClient::reload(const QHash<QString, QByteArray> &changesHash) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; m_reloadQueryId = m_requestId; @@ -185,7 +185,7 @@ void QmlToolsClient::reload(const QHash<QString, QByteArray> &changesHash) void QmlToolsClient::setDesignModeBehavior(bool inDesignMode) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -203,7 +203,7 @@ void QmlToolsClient::setDesignModeBehavior(bool inDesignMode) void QmlToolsClient::setAnimationSpeed(qreal slowDownFactor) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -244,7 +244,7 @@ void QmlToolsClient::changeToZoomTool() void QmlToolsClient::showAppOnTop(bool showOnTop) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -262,7 +262,7 @@ void QmlToolsClient::createQmlObject(const QString &qmlText, const QStringList &imports, const QString &filename, int order) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; @@ -284,7 +284,7 @@ void QmlToolsClient::createQmlObject(const QString &qmlText, void QmlToolsClient::destroyQmlObject(int debugId) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); @@ -299,7 +299,7 @@ void QmlToolsClient::destroyQmlObject(int debugId) void QmlToolsClient::reparentQmlObject(int debugId, int newParent) { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; QByteArray message; QDataStream ds(&message, QIODevice::WriteOnly); @@ -315,7 +315,7 @@ void QmlToolsClient::reparentQmlObject(int debugId, int newParent) void QmlToolsClient::applyChangesToQmlFile() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; // TODO @@ -323,7 +323,7 @@ void QmlToolsClient::applyChangesToQmlFile() void QmlToolsClient::applyChangesFromQmlFile() { - if (!m_connection || !m_connection->isConnected()) + if (!m_connection || !m_connection->isOpen()) return; // TODO diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index 5501d50515..906573dde1 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -243,7 +243,7 @@ void QmlProfilerClientManager::connectToClient() bool QmlProfilerClientManager::isConnected() const { - return d->connection && d->connection->isConnected(); + return d->connection && d->connection->isOpen(); } void QmlProfilerClientManager::disconnectClient() @@ -260,7 +260,7 @@ void QmlProfilerClientManager::tryToConnect() { ++d->connectionAttempts; - if (d->connection && d->connection->isConnected()) { + if (d->connection && d->connection->isOpen()) { d->connectionTimer.stop(); d->connectionAttempts = 0; } else if (d->connectionAttempts == 50) { |