From 2ee019b46f5d71aa573da4c8e5f83d8254ce7f84 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Mon, 6 Jul 2015 14:33:49 +0200 Subject: [PATCH] QmlProfiler: Don't try to reconnect while already connecting Hanging connection attempts will be aborted in response to the "retry" message box now. Change-Id: I63775eed9d7677a62293ba5c96a43e839ba285b4 Task-number: QTCREATORBUG-14685 Reviewed-by: Andreas Holzammer Reviewed-by: Joerg Bornemann --- src/libs/qmldebug/qmldebugclient.cpp | 5 +++++ src/libs/qmldebug/qmldebugclient.h | 1 + src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 6 +++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/libs/qmldebug/qmldebugclient.cpp b/src/libs/qmldebug/qmldebugclient.cpp index 1a084122144..d0f4782eb2d 100644 --- a/src/libs/qmldebug/qmldebugclient.cpp +++ b/src/libs/qmldebug/qmldebugclient.cpp @@ -295,6 +295,11 @@ bool QmlDebugConnection::isOpen() const return d->gotHello; } +bool QmlDebugConnection::isConnecting() const +{ + return !isOpen() && d->device; +} + void QmlDebugConnection::close() { if (d->device && d->device->isOpen()) diff --git a/src/libs/qmldebug/qmldebugclient.h b/src/libs/qmldebug/qmldebugclient.h index ef1bad9671d..01c871ba09c 100644 --- a/src/libs/qmldebug/qmldebugclient.h +++ b/src/libs/qmldebug/qmldebugclient.h @@ -57,6 +57,7 @@ public: void connectToHost(const QString &hostName, quint16 port); bool isOpen() const; + bool isConnecting() const; void close(); signals: diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index 190fec5a5c1..c45a5a55817 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -215,7 +215,7 @@ void QmlProfilerClientManager::disconnectClientSignals() void QmlProfilerClientManager::connectToClient() { - if (!d->connection || d->connection->isOpen()) + if (!d->connection || d->connection->isOpen() || d->connection->isConnecting()) return; d->connection->connectToHost(d->tcpHost, d->tcpPort); @@ -290,6 +290,10 @@ void QmlProfilerClientManager::logState(const QString &msg) void QmlProfilerClientManager::retryMessageBoxFinished(int result) { + QTC_ASSERT(!d->connection->isOpen(), return); + if (d->connection->isConnecting()) + d->connection->disconnect(); + switch (result) { case QMessageBox::Retry: { d->connectionAttempts = 0;