From 8049a0276d21e8eedbac2adad8df988543a5128b Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Wed, 6 Oct 2010 16:32:47 +0200 Subject: [PATCH] QmlJSInspector: Fix disconnect() warnings on users app shutdown Don't try to disconnect from the proxy if you haven't been connected before, e.g. because the QmlJSObserverService is missing. Reviewed-by: Christiaan Janssen --- src/plugins/qmljsinspector/qmljsinspector.cpp | 5 +++++ src/plugins/qmljsinspector/qmljsinspector.h | 1 + src/plugins/qmljsinspector/qmljsinspectorplugin.cpp | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmljsinspector/qmljsinspector.cpp b/src/plugins/qmljsinspector/qmljsinspector.cpp index 6c25985f643..47a4783bd85 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.cpp +++ b/src/plugins/qmljsinspector/qmljsinspector.cpp @@ -261,6 +261,11 @@ void InspectorUi::debugQueryUpdated(QDeclarativeDebugQuery::State newState) disconnect(m_debugQuery,SIGNAL(stateChanged(QDeclarativeDebugQuery::State)),this,SLOT(debugQueryUpdated(QDeclarativeDebugQuery::State))); } +bool InspectorUi::isConnected() const +{ + return m_clientProxy; +} + void InspectorUi::connected(ClientProxy *clientProxy) { m_clientProxy = clientProxy; diff --git a/src/plugins/qmljsinspector/qmljsinspector.h b/src/plugins/qmljsinspector/qmljsinspector.h index ae56e4eca1a..ebcd795ddbb 100644 --- a/src/plugins/qmljsinspector/qmljsinspector.h +++ b/src/plugins/qmljsinspector/qmljsinspector.h @@ -103,6 +103,7 @@ public: bool isShadowBuildProject() const; void setupUi(); + bool isConnected() const; void connected(ClientProxy *clientProxy); void disconnected(); void setDebuggerEngine(Debugger::QmlEngine *qmlEngine); diff --git a/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp b/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp index a89f00d0baa..ff787e020b4 100644 --- a/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp +++ b/src/plugins/qmljsinspector/qmljsinspectorplugin.cpp @@ -140,7 +140,8 @@ void InspectorPlugin::objectAdded(QObject *object) void InspectorPlugin::aboutToRemoveObject(QObject *obj) { if (m_clientProxy && m_clientProxy->qmlAdapter() == obj) { - m_inspectorUi->disconnected(); + if (m_inspectorUi->isConnected()) + m_inspectorUi->disconnected(); delete m_clientProxy; m_clientProxy = 0; } -- GitLab