From 075a8dc8317637452a4da07a9348b035b40cacc8 Mon Sep 17 00:00:00 2001 From: Ulf Hermann Date: Wed, 13 Apr 2016 11:15:06 +0200 Subject: [PATCH] Qml Debugger: Eliminate client state callback The sender()/qobject_cast construct is ugly, unnecessary and it doesn't work if the method is called directly, rather than through a signal. Change-Id: I0ac09ad04b956fb4cac38a89162a9dc0055d1831 Reviewed-by: hjk --- src/plugins/debugger/qml/qmlengine.cpp | 19 +++++-------------- src/plugins/debugger/qml/qmlengine.h | 1 - 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp index c23d4b3d153..b8a7c2d5326 100644 --- a/src/plugins/debugger/qml/qmlengine.cpp +++ b/src/plugins/debugger/qml/qmlengine.cpp @@ -301,7 +301,10 @@ QmlEngine::QmlEngine(const DebuggerRunParameters &startParameters, DebuggerEngin d->msgClient = new QDebugMessageClient(d->connection); connect(d->msgClient, &QDebugMessageClient::newState, - this, &QmlEngine::clientStateChanged); + this, [this](QmlDebugClient::State state) { + logServiceStateChange(d->msgClient->name(), d->msgClient->serviceVersion(), state); + }); + connect(d->msgClient, &QDebugMessageClient::message, this, &appendDebugOutput); } @@ -1208,18 +1211,6 @@ void QmlEngine::connectionStateChanged(QAbstractSocket::SocketState socketState) showConnectionStateMessage(QmlDebugConnection::socketStateToString(socketState)); } -void QmlEngine::clientStateChanged(QmlDebugClient::State state) -{ - QString serviceName; - float version = 0; - if (QmlDebugClient *client = qobject_cast(sender())) { - serviceName = client->name(); - version = client->serviceVersion(); - } - - logServiceStateChange(serviceName, version, state); -} - void QmlEngine::checkConnectionState() { if (!isConnected()) { @@ -2472,7 +2463,7 @@ void QmlEnginePrivate::handleLookup(const QVariantMap &response) void QmlEnginePrivate::stateChanged(State state) { - engine->clientStateChanged(state); + engine->logServiceStateChange(name(), serviceVersion(), state); if (state == QmlDebugClient::Enabled) { /// Start session. diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h index b81d4693e71..e1e3f6b64c2 100644 --- a/src/plugins/debugger/qml/qmlengine.h +++ b/src/plugins/debugger/qml/qmlengine.h @@ -135,7 +135,6 @@ private: void connectionErrorOccurred(QAbstractSocket::SocketError socketError); void connectionStateChanged(QAbstractSocket::SocketState socketState); - void clientStateChanged(QmlDebug::QmlDebugClient::State state); void checkConnectionState(); void showConnectionStateMessage(const QString &message); bool isConnected() const;