OSDN Git Service

debugger: make watchers visible after project load again
authorhjk <qtc-committer@nokia.com>
Tue, 23 Nov 2010 12:44:37 +0000 (13:44 +0100)
committerhjk <qtc-committer@nokia.com>
Tue, 23 Nov 2010 12:45:18 +0000 (13:45 +0100)
src/plugins/debugger/debuggerplugin.cpp
src/plugins/debugger/watchhandler.cpp
src/plugins/debugger/watchhandler.h

index cab0f62..8289e41 100644 (file)
@@ -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();
 }
 
index d88296c..13d024a 100644 (file)
@@ -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;
 }
 
index 2b5f8bc..cfdc9fc 100644 (file)
@@ -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();