aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/debugger/debuggerengine.cpp
diff options
context:
space:
mode:
authorAurindam Jana <[email protected]>2012-02-15 12:35:43 +0100
committerhjk <[email protected]>2012-02-20 17:51:05 +0100
commit147396d764aff1b5ca5cf2a50b43efb37e02291c (patch)
tree02e6c8eede50310c3b28540c422c3d8941d5ceea /src/plugins/debugger/debuggerengine.cpp
parenta8ab1fd70ff4fa2822714e3ba4f4badba1808d02 (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.cpp24
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();