diff options
author | Aurindam Jana <[email protected]> | 2012-02-15 12:35:43 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2012-02-20 17:51:05 +0100 |
commit | 147396d764aff1b5ca5cf2a50b43efb37e02291c (patch) | |
tree | 02e6c8eede50310c3b28540c422c3d8941d5ceea /src/plugins/debugger/debuggerengine.cpp | |
parent | a8ab1fd70ff4fa2822714e3ba4f4badba1808d02 (diff) |
ScriptConsole: Refactor to QtMessageLogWindow
Move QML/JS independent classes to common Debugger
code. A Debugger Engine needs to override
evaluateScriptExpression() to provide engine
specific script evaluation.
Change-Id: I02b23b380a3eb1b12003b30ded0b7d075e44dfed
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/debugger/debuggerengine.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerengine.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp index 743e0c1350f..80efc3261e1 100644 --- a/src/plugins/debugger/debuggerengine.cpp +++ b/src/plugins/debugger/debuggerengine.cpp @@ -50,6 +50,7 @@ #include "stackhandler.h" #include "threadshandler.h" #include "watchhandler.h" +#include "qtmessageloghandler.h" #include <coreplugin/icore.h> #include <coreplugin/idocument.h> @@ -301,6 +302,7 @@ public: StackHandler m_stackHandler; ThreadsHandler m_threadsHandler; WatchHandler m_watchHandler; + QtMessageLogHandler m_qtMessageHandler; QFutureInterface<void> m_progress; DisassemblerAgent m_disassemblerAgent; @@ -434,6 +436,11 @@ WatchHandler *DebuggerEngine::watchHandler() const : &d->m_watchHandler; } +QtMessageLogHandler *DebuggerEngine::qtMessageLogHandler() const +{ + return &d->m_qtMessageHandler; +} + SourceFilesHandler *DebuggerEngine::sourceFilesHandler() const { return d->m_masterEngine @@ -513,6 +520,14 @@ QAbstractItemModel *DebuggerEngine::sourceFilesModel() const return model; } +QAbstractItemModel *DebuggerEngine::qtMessageLogModel() const +{ + QAbstractItemModel *model = qtMessageLogHandler()->model(); + if (model->objectName().isEmpty()) // Make debugging easier. + model->setObjectName(objectName() + QLatin1String("QtMessageLogModel")); + return model; +} + void DebuggerEngine::fetchMemory(MemoryAgent *, QObject *, quint64 addr, quint64 length) { @@ -541,6 +556,9 @@ void DebuggerEngine::showMessage(const QString &msg, int channel, int timeout) c } //if (msg.size() && msg.at(0).isUpper() && msg.at(1).isUpper()) // qDebug() << qPrintable(msg) << "IN STATE" << state(); + if (channel == QtMessageLogOutput) + qtMessageLogHandler()->appendMessage(QtMessageLogHandler::UndefinedType, msg); + debuggerCore()->showMessage(msg, channel, timeout); if (d->m_runControl) { d->m_runControl->showMessage(msg, channel); @@ -1617,6 +1635,12 @@ void DebuggerEngine::executeDebuggerCommand(const QString &) showStatusMessage(tr("This debugger cannot handle user input.")); } +bool DebuggerEngine::evaluateScriptExpression(const QString &) +{ + showStatusMessage(tr("This debugger cannot handle user input.")); + return false; +} + BreakHandler *DebuggerEngine::breakHandler() const { return debuggerCore()->breakHandler(); |