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