summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@theqtcompany.com>2015-11-02 15:45:18 +0100
committerUlf Hermann <ulf.hermann@theqtcompany.com>2015-11-03 10:44:56 +0000
commitccc4fe54e51dfd19cb266a7cae5f130f9c3929af (patch)
tree58c1701d4a5f07742b2f81688d1c2ad07af0cab4
parentb85d8290a78d2c2e0ce34cf33a99b99c05bb88a0 (diff)
downloadqt-creator-ccc4fe54e51dfd19cb266a7cae5f130f9c3929af.tar.gz
QmlProfiler: Delete debug connection on error or if params change
Now that we don't recreate the debug connection anymore when (re)trying to connect, we have to do it explicitly when changing the connection parameters or when a connection attempt fails and we need to cancel the "Connecting" state. Change-Id: Ib2b6b4fb1e39e64fe3c9f2bf90b6e43043d05a9e Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp14
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerclientmanager.h2
2 files changed, 16 insertions, 0 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
index a81b092a1d..04f2ac0eb6 100644
--- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
@@ -105,6 +105,7 @@ void QmlProfilerClientManager::setTcpConnection(QString host, quint64 port)
{
d->tcpHost = host;
d->tcpPort = port;
+ disconnectClient();
}
void QmlProfilerClientManager::clearBufferedData()
@@ -135,6 +136,8 @@ void QmlProfilerClientManager::connectClient(quint16 port)
connect(d->connection, SIGNAL(errorMessage(QString)), this, SLOT(logState(QString)));
connect(d->connection, SIGNAL(opened()), this, SLOT(qmlDebugConnectionOpened()));
connect(d->connection, SIGNAL(closed()), this, SLOT(qmlDebugConnectionClosed()));
+ connect(d->connection, &QmlDebugConnection::error,
+ this, &QmlProfilerClientManager::qmlDebugConnectionError);
d->connectionTimer.start();
d->tcpPort = port;
}
@@ -276,6 +279,17 @@ void QmlProfilerClientManager::qmlDebugConnectionClosed()
emit connectionClosed();
}
+void QmlProfilerClientManager::qmlDebugConnectionError(QDebugSupport::Error error)
+{
+ logState(tr("Debug connection error %1").arg(error));
+ if (d->connection->isOpen()) {
+ disconnectClient();
+ emit connectionClosed();
+ } else {
+ disconnectClient();
+ }
+}
+
void QmlProfilerClientManager::logState(const QString &msg)
{
QString state = QLatin1String("QML Profiler: ") + msg;
diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
index 6014e4607b..0cbf88dc56 100644
--- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
+++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h
@@ -33,6 +33,7 @@
#include "qmlprofilerstatemanager.h"
#include <qmldebug/qmlprofilereventlocation.h>
+#include <qmldebug/qmldebugclient.h>
#include <QObject>
#include <QStringList>
@@ -71,6 +72,7 @@ private slots:
void tryToConnect();
void qmlDebugConnectionOpened();
void qmlDebugConnectionClosed();
+ void qmlDebugConnectionError(QDebugSupport::Error error);
void logState(const QString &);
void retryMessageBoxFinished(int result);