From ba82227ae88ed8bc7d92c6f85e42cce4c896962e Mon Sep 17 00:00:00 2001 From: Kai Koehne <kai.koehne@nokia.com> Date: Thu, 2 Sep 2010 14:40:13 +0200 Subject: [PATCH] QmlObserver: Disable "Observer" mode when no debugging client is attached --- .../qmljsdebugger/include/qdeclarativedesigndebugserver.h | 3 +++ .../qmljsdebugger/qdeclarativedesigndebugserver.cpp | 5 +++++ src/tools/qml/qmlobserver/qmlruntime.cpp | 3 +++ 3 files changed, 11 insertions(+) diff --git a/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h b/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h index a6efe3a440e..d69fa3c2dee 100644 --- a/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h +++ b/share/qtcreator/qmljsdebugger/include/qdeclarativedesigndebugserver.h @@ -75,6 +75,8 @@ public Q_SLOTS: void contextPathUpdated(const QStringList &contextPath); Q_SIGNALS: + void debuggingClientChanged(bool hasDebuggingClient); + void currentObjectsChanged(const QList<QObject*> &objects); void designModeBehaviorChanged(bool inDesignMode); void reloadRequested(); @@ -96,6 +98,7 @@ Q_SIGNALS: void clearComponentCacheRequested(); protected: + virtual void enabledChanged(bool enabled); virtual void messageReceived(const QByteArray &); private: diff --git a/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp b/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp index cbb64752bba..c6bf9d4d369 100644 --- a/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp +++ b/share/qtcreator/qmljsdebugger/qdeclarativedesigndebugserver.cpp @@ -58,6 +58,11 @@ QDeclarativeDesignDebugServer *QDeclarativeDesignDebugServer::instance() return qmlDesignDebugServer(); } +void QDeclarativeDesignDebugServer::enabledChanged(bool enabled) +{ + emit debuggingClientChanged(enabled); +} + void QDeclarativeDesignDebugServer::messageReceived(const QByteArray &message) { QDataStream ds(message); diff --git a/src/tools/qml/qmlobserver/qmlruntime.cpp b/src/tools/qml/qmlobserver/qmlruntime.cpp index 4ebc3ae7637..58328110b6c 100644 --- a/src/tools/qml/qmlobserver/qmlruntime.cpp +++ b/src/tools/qml/qmlobserver/qmlruntime.cpp @@ -55,6 +55,7 @@ #endif #include <qdeclarativedesignview.h> +#include <qdeclarativedesigndebugserver.h> #include <utils/crumblepath.h> #include "qmlruntime.h" @@ -785,8 +786,10 @@ void QDeclarativeViewer::createMenu() designModeBehaviorAction->setShortcut(QKeySequence("Ctrl+D")); designModeBehaviorAction->setCheckable(true); designModeBehaviorAction->setChecked(canvas->designModeBehavior()); + designModeBehaviorAction->setEnabled(QDeclarativeDesignDebugServer::hasDebuggingClient()); connect(designModeBehaviorAction, SIGNAL(triggered(bool)), this, SLOT(setDesignModeBehavior(bool))); connect(canvas, SIGNAL(designModeBehaviorChanged(bool)), designModeBehaviorAction, SLOT(setChecked(bool))); + connect(QDeclarativeDesignDebugServer::instance(), SIGNAL(debuggingClientChanged(bool)), designModeBehaviorAction, SLOT(setEnabled(bool))); QAction *proxyAction = new QAction(tr("HTTP &Proxy..."), this); connect(proxyAction, SIGNAL(triggered()), this, SLOT(showProxySettings())); -- GitLab