From ba811dfb7171efd94ae67687be97fd02b7fa5e07 Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Tue, 23 Nov 2010 13:44:37 +0100 Subject: [PATCH] debugger: make watchers visible after project load again --- src/plugins/debugger/debuggerplugin.cpp | 57 +++++++++++++++---------- src/plugins/debugger/watchhandler.cpp | 4 +- src/plugins/debugger/watchhandler.h | 8 ++-- 3 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index cab0f62cc63..8289e416fc6 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -467,6 +467,37 @@ void AttachRemoteParameters::clear() attachTarget.clear(); } + +/////////////////////////////////////////////////////////////////////// +// +// DummyEngine +// +/////////////////////////////////////////////////////////////////////// + +class DummyEngine : public DebuggerEngine +{ + Q_OBJECT + +public: + DummyEngine() : DebuggerEngine(DebuggerStartParameters()) {} + virtual ~DummyEngine() {} + + virtual void setupEngine() {} + virtual void setupInferior() {} + virtual void runEngine() {} + virtual void shutdownEngine() {} + virtual void shutdownInferior() {} + virtual void executeDebuggerCommand(const QString &) {} + virtual unsigned debuggerCapabilities() const { return 0; } +}; + +static DebuggerEngine *dummyEngine() +{ + static DummyEngine dummy; + return &dummy; +} + + /////////////////////////////////////////////////////////////////////// // // DebugMode @@ -2463,30 +2494,10 @@ void DebuggerPluginPrivate::startDebugger(RunControl *rc) } -class DummyEngine : public DebuggerEngine -{ - Q_OBJECT - -public: - DummyEngine() : DebuggerEngine(DebuggerStartParameters()) {} - virtual ~DummyEngine() {} - - virtual void setupEngine() {} - virtual void setupInferior() {} - virtual void runEngine() {} - virtual void shutdownEngine() {} - virtual void shutdownInferior() {} - virtual void executeDebuggerCommand(const QString &) {} - virtual unsigned debuggerCapabilities() const { return 0; } -}; - - void DebuggerPluginPrivate::connectEngine(DebuggerEngine *engine) { - static DummyEngine dummyEngine; - if (!engine) - engine = &dummyEngine; + engine = dummyEngine(); if (m_currentEngine == engine) return; @@ -2914,7 +2925,7 @@ void DebuggerPluginPrivate::activateDebugMode() void DebuggerPluginPrivate::sessionLoaded() { m_breakHandler->loadSessionData(); - WatchHandler::loadSessionData(); + dummyEngine()->watchHandler()->loadSessionData(); synchronizeWatchers(); } @@ -2931,7 +2942,7 @@ void DebuggerPluginPrivate::aboutToUnloadSession() void DebuggerPluginPrivate::aboutToSaveSession() { - WatchHandler::saveSessionData(); + dummyEngine()->watchHandler()->loadSessionData(); m_breakHandler->saveSessionData(); } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index d88296c864a..13d024ae307 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -1492,10 +1492,10 @@ void WatchHandler::updateWatchers() void WatchHandler::loadWatchers() { + m_watcherNames.clear(); QVariant value = debuggerCore()->sessionValue("Watchers"); foreach (const QString &exp, value.toStringList()) - m_watcherNames[exp.toLatin1()] = watcherCounter++; - + watchExpression(exp); //qDebug() << "LOAD WATCHERS: " << m_watchers; } diff --git a/src/plugins/debugger/watchhandler.h b/src/plugins/debugger/watchhandler.h index 2b5f8bcc76b..cfdc9fc0cbd 100644 --- a/src/plugins/debugger/watchhandler.h +++ b/src/plugins/debugger/watchhandler.h @@ -155,8 +155,8 @@ public: const WatchData *findItem(const QByteArray &iname) const; QModelIndex itemIndex(const QByteArray &iname) const; - static void loadSessionData(); - static void saveSessionData(); + void loadSessionData(); + void saveSessionData(); void removeTooltip(); bool isExpandedIName(const QByteArray &iname) const @@ -182,8 +182,8 @@ public: private: friend class WatchModel; - static void loadWatchers(); - static void saveWatchers(); + void loadWatchers(); + void saveWatchers(); static void loadTypeFormats(); static void saveTypeFormats(); -- GitLab