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