OSDN Git Service

debugger: hot fix for not activated editors while stepping
authorhjk <qtc-committer@nokia.com>
Thu, 16 Dec 2010 09:44:21 +0000 (10:44 +0100)
committerhjk <qtc-committer@nokia.com>
Thu, 16 Dec 2010 09:44:48 +0000 (10:44 +0100)
src/plugins/debugger/debuggerengine.cpp
src/plugins/debugger/memoryagent.cpp
src/plugins/debugger/memoryagent.h

index 5978ed7..f120520 100644 (file)
@@ -533,6 +533,11 @@ void DebuggerEngine::gotoLocation(const QString &file, int line, bool setMarker)
 
     if (setMarker)
         d->m_locationMark.reset(new LocationMark(file, line));
+
+    // FIXME: Breaks with split views.
+    if (!d->m_memoryAgent.hasVisibleEditor())
+        editorManager->activateEditor(editors.back());
+    //qDebug() << "MEMORY: " << d->m_memoryAgent.hasVisibleEditor();
 }
 
 void DebuggerEngine::gotoLocation(const StackFrame &frame, bool setMarker)
index 60de486..2b11f56 100644 (file)
@@ -161,5 +161,14 @@ void MemoryAgent::updateContents()
             QMetaObject::invokeMethod(editor->widget(), "updateContents");
 }
 
+bool MemoryAgent::hasVisibleEditor() const
+{
+    QList<IEditor *> visible = EditorManager::instance()->visibleEditors();
+    foreach (QPointer<IEditor> editor, m_editors)
+        if (visible.contains(editor.data()))
+            return true;
+    return false;
+}
+
 } // namespace Internal
 } // namespace Debugger
index 2391779..51b4117 100644 (file)
@@ -52,6 +52,7 @@ public:
     ~MemoryAgent();
 
     enum { BinBlockSize = 1024 };
+    bool hasVisibleEditor() const;
 
 public slots:
     // Called by engine to create a new view.