From af46c3d947fdf450e9b2a5037f8c6e8f1c907886 Mon Sep 17 00:00:00 2001
From: Olivier Goffart <olivier.goffart@nokia.com>
Date: Wed, 25 Aug 2010 16:48:35 +0200
Subject: [PATCH] qml debugger: make the application output work

---
 src/plugins/debugger/debuggerengine.h  |  2 +-
 src/plugins/debugger/debuggerrunner.h  |  2 ++
 src/plugins/debugger/qml/qmlengine.cpp | 20 +++++++++++++++++++-
 src/plugins/debugger/qml/qmlengine.h   |  2 ++
 4 files changed, 24 insertions(+), 2 deletions(-)

diff --git a/src/plugins/debugger/debuggerengine.h b/src/plugins/debugger/debuggerengine.h
index 4c041f9262b..ab30b99fb2e 100644
--- a/src/plugins/debugger/debuggerengine.h
+++ b/src/plugins/debugger/debuggerengine.h
@@ -326,7 +326,7 @@ protected:
     void setState(DebuggerState state, bool forced = false);
     void setRunInWrapperEngine(bool value);
 
-private:
+protected:
     DebuggerRunControl *runControl() const;
 
 private:
diff --git a/src/plugins/debugger/debuggerrunner.h b/src/plugins/debugger/debuggerrunner.h
index a369efb937f..724ba495c0c 100644
--- a/src/plugins/debugger/debuggerrunner.h
+++ b/src/plugins/debugger/debuggerrunner.h
@@ -47,6 +47,7 @@ class DebuggerStartParameters;
 
 namespace Internal {
 class DebuggerEngine;
+class QmlEngine;
 }
 
 //DEBUGGER_EXPORT QDebug operator<<(QDebug str, const DebuggerStartParameters &);
@@ -136,6 +137,7 @@ private:
     DebuggerEngineType m_enabledEngines;
     QString m_errorMessage;
     QString m_settingsIdHint;
+    friend class Internal::QmlEngine;
 };
 
 } // namespace Debugger
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index f0b3577213b..6eeb9aa0465 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -35,6 +35,7 @@
 #include "debuggerdialogs.h"
 #include "debuggerstringutils.h"
 #include "debuggeruiswitcher.h"
+#include "debuggerrunner.h"
 
 #include "breakhandler.h"
 #include "moduleshandler.h"
@@ -129,7 +130,15 @@ void QmlEngine::setupInferior()
 {
     QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
 
-    connect(&m_applicationLauncher, SIGNAL(processExited(int)), SLOT(disconnected()));
+    connect(&m_applicationLauncher, SIGNAL(processExited(int)),
+            this, SLOT(disconnected()));
+    connect(&m_applicationLauncher, SIGNAL(appendMessage(QString,bool)),
+            this, SLOT(slotMessage(QString, bool)));
+    connect(&m_applicationLauncher, SIGNAL(appendOutput(QString, bool)),
+            this, SLOT(slotAddToOutputWindow(QString, bool)));
+    connect(&m_applicationLauncher, SIGNAL(bringToForegroundRequested(qint64)),
+            runControl(), SLOT(bringApplicationToForeground(qint64)));
+
     m_applicationLauncher.setEnvironment(startParameters().environment);
     m_applicationLauncher.setWorkingDirectory(startParameters().workingDirectory);
 
@@ -638,6 +647,15 @@ void QmlEngine::disconnected()
     notifyInferiorExited();
 }
 
+void QmlEngine::slotAddToOutputWindow(QString line, bool onStdErr)
+{
+    emit runControl()->addToOutputWindowInline(runControl(), line, onStdErr);
+}
+
+void QmlEngine::slotMessage(QString err , bool isError)
+{
+    emit runControl()->appendMessage(runControl(), err, isError);
+}
 
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/qml/qmlengine.h b/src/plugins/debugger/qml/qmlengine.h
index 2a25a0e6ce9..81e98774369 100644
--- a/src/plugins/debugger/qml/qmlengine.h
+++ b/src/plugins/debugger/qml/qmlengine.h
@@ -123,6 +123,8 @@ private slots:
     void connectionStartupFailed();
     void connectionError();
 
+    void slotMessage(QString, bool);
+    void slotAddToOutputWindow(QString, bool);
 private:
     void expandObject(const QByteArray &iname, quint64 objectId);
     void sendPing();
-- 
GitLab