diff options
author | hjk <[email protected]> | 2010-06-15 09:13:22 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2010-06-15 11:43:20 +0200 |
commit | 69a4ed32559069b36350a667d70958fbed258a74 (patch) | |
tree | 758f015a439bbc219bc5b8c6754c75acdbc37517 /src/plugins/debugger/debuggerrunner.cpp | |
parent | 83e479824e88bb7e9ce0cd8705c66ca99d1a69b8 (diff) |
debugger: move ModulesHandler from DebuggerManager to DebuggerRunControl
Diffstat (limited to 'src/plugins/debugger/debuggerrunner.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerrunner.cpp | 55 |
1 files changed, 46 insertions, 9 deletions
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index 94b225e948e..a5884daeb54 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -31,6 +31,9 @@ #include "debuggermanager.h" #include "debuggeroutputwindow.h" +#include "idebuggerengine.h" +#include "moduleshandler.h" + #include <projectexplorer/debugginghelper.h> #include <projectexplorer/environment.h> #include <projectexplorer/project.h> @@ -46,6 +49,7 @@ #include <QtCore/QDir> #include <QtCore/QFileInfo> +#include <QtGui/QAbstractItemView> #include <QtGui/QTextDocument> using namespace ProjectExplorer; @@ -142,19 +146,22 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget(RunConfiguration * class DebuggerRunControl::Private { public: - Private(DebuggerRunControl *parent); + Private(DebuggerRunControl *parent, DebuggerManager *manager, + const DebuggerStartParameters &startParameters); + ~Private(); public: DebuggerRunControl *q; DebuggerStartParameters m_startParameters; DebuggerManager *m_manager; + Internal::IDebuggerEngine *m_engine; bool m_running; + ModulesHandler *m_modulesHandler; /* // FIXME: Move from DebuggerManager BreakHandler *m_breakHandler; - ModulesHandler *m_modulesHandler; RegisterHandler *m_registerHandler; SnapshotHandler *m_snapshotHandler; StackHandler *m_stackHandler; @@ -163,9 +170,23 @@ public: */ }; -DebuggerRunControl::Private::Private(DebuggerRunControl *parent) - : q(parent) +DebuggerRunControl::Private::Private(DebuggerRunControl *parent, + DebuggerManager *manager, + const DebuggerStartParameters &startParameters) + : q(parent), + m_startParameters(startParameters), + m_manager(manager), + m_engine(0) { + m_running = false; + m_modulesHandler = new ModulesHandler(q); +} + +DebuggerRunControl::Private::~Private() +{ +#define doDelete(ptr) delete ptr; ptr = 0 + doDelete(m_modulesHandler); +#undef doDelete } @@ -178,11 +199,8 @@ DebuggerRunControl::Private::Private(DebuggerRunControl *parent) DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager, const DebuggerStartParameters &startParameters) : RunControl(0, ProjectExplorer::Constants::DEBUGMODE), - d(new Private(this)) + d(new Private(this, manager, startParameters)) { - d->m_startParameters = startParameters; - d->m_manager = manager; - d->m_running = false; connect(d->m_manager, SIGNAL(debuggingFinished()), this, SLOT(debuggingFinished()), Qt::QueuedConnection); @@ -298,7 +316,7 @@ const DebuggerStartParameters &DebuggerRunControl::sp() const ModulesHandler *DebuggerRunControl::modulesHandler() const { - return d->m_manager->modulesHandler(); + return d->m_modulesHandler; } BreakHandler *DebuggerRunControl::breakHandler() const @@ -331,4 +349,23 @@ SnapshotHandler *DebuggerRunControl::snapshotHandler() const return d->m_manager->snapshotHandler(); } +void DebuggerRunControl::cleanup() +{ + modulesHandler()->removeAll(); +} + +Internal::IDebuggerEngine *DebuggerRunControl::engine() +{ + QTC_ASSERT(d->m_engine, /**/); + return d->m_engine; +} + +void DebuggerRunControl::startDebugger(IDebuggerEngine *engine) +{ + d->m_engine = engine; + d->m_engine->setRunControl(this); + d->m_manager->modulesWindow()->setModel(d->m_modulesHandler->model()); + d->m_engine->startDebugger(); +} + } // namespace Debugger |