diff options
author | hjk <[email protected]> | 2010-06-15 08:22:02 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2010-06-15 11:43:20 +0200 |
commit | 83e479824e88bb7e9ce0cd8705c66ca99d1a69b8 (patch) | |
tree | 35424fa9e72a150bd237893cad309fefcd215d6e /src/plugins/debugger/debuggerrunner.cpp | |
parent | c364e5522e20859bf233a9c04d3758965e62630a (diff) |
debugger: add model accessors to run control
Plan is to move the models themselves from DebuggerManager to
DebuggerRunControl.
Diffstat (limited to 'src/plugins/debugger/debuggerrunner.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerrunner.cpp | 132 |
1 files changed, 106 insertions, 26 deletions
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp index f5b0a34e296..94b225e948e 100644 --- a/src/plugins/debugger/debuggerrunner.cpp +++ b/src/plugins/debugger/debuggerrunner.cpp @@ -52,14 +52,14 @@ using namespace ProjectExplorer; using namespace Debugger::Internal; -namespace Debugger { - //////////////////////////////////////////////////////////////////////// // // DebuggerRunControlFactory // //////////////////////////////////////////////////////////////////////// +namespace Debugger { + // A factory to create DebuggerRunControls DebuggerRunControlFactory::DebuggerRunControlFactory(DebuggerManager *manager) : m_manager(manager) @@ -112,8 +112,8 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu return sp; } -RunControl *DebuggerRunControlFactory::create(RunConfiguration *runConfiguration, - const QString &mode) +RunControl *DebuggerRunControlFactory::create + (RunConfiguration *runConfiguration, const QString &mode) { QTC_ASSERT(mode == ProjectExplorer::Constants::DEBUGMODE, return 0); DebuggerStartParameters sp = localStartParameters(runConfiguration); @@ -133,6 +133,41 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget(RunConfiguration * } +//////////////////////////////////////////////////////////////////////// +// +// DebuggerRunControl::Private +// +//////////////////////////////////////////////////////////////////////// + +class DebuggerRunControl::Private +{ +public: + Private(DebuggerRunControl *parent); + +public: + DebuggerRunControl *q; + + DebuggerStartParameters m_startParameters; + DebuggerManager *m_manager; + bool m_running; + +/* + // FIXME: Move from DebuggerManager + BreakHandler *m_breakHandler; + ModulesHandler *m_modulesHandler; + RegisterHandler *m_registerHandler; + SnapshotHandler *m_snapshotHandler; + StackHandler *m_stackHandler; + ThreadsHandler *m_threadsHandler; + WatchHandler *m_watchHandler; +*/ +}; + +DebuggerRunControl::Private::Private(DebuggerRunControl *parent) + : q(parent) +{ +} + //////////////////////////////////////////////////////////////////////// // @@ -143,35 +178,41 @@ QWidget *DebuggerRunControlFactory::createConfigurationWidget(RunConfiguration * DebuggerRunControl::DebuggerRunControl(DebuggerManager *manager, const DebuggerStartParameters &startParameters) : RunControl(0, ProjectExplorer::Constants::DEBUGMODE), - m_startParameters(startParameters), - m_manager(manager), - m_running(false) + d(new Private(this)) { - connect(m_manager, SIGNAL(debuggingFinished()), + d->m_startParameters = startParameters; + d->m_manager = manager; + d->m_running = false; + connect(d->m_manager, SIGNAL(debuggingFinished()), this, SLOT(debuggingFinished()), Qt::QueuedConnection); - connect(m_manager, SIGNAL(messageAvailable(QString, bool)), + connect(d->m_manager, SIGNAL(messageAvailable(QString, bool)), this, SLOT(slotMessageAvailable(QString, bool))); - connect(m_manager, SIGNAL(inferiorPidChanged(qint64)), + connect(d->m_manager, SIGNAL(inferiorPidChanged(qint64)), this, SLOT(bringApplicationToForeground(qint64)), Qt::QueuedConnection); connect(this, SIGNAL(stopRequested()), - m_manager, SLOT(exitDebugger())); + d->m_manager, SLOT(exitDebugger())); - if (m_startParameters.environment.empty()) - m_startParameters.environment = ProjectExplorer::Environment().toStringList(); - m_startParameters.useTerminal = false; + if (d->m_startParameters.environment.empty()) + d->m_startParameters.environment = ProjectExplorer::Environment().toStringList(); + d->m_startParameters.useTerminal = false; } +DebuggerRunControl::~DebuggerRunControl() +{ + delete d; +} + QString DebuggerRunControl::displayName() const { - return m_startParameters.displayName; + return d->m_startParameters.displayName; } void DebuggerRunControl::setCustomEnvironment(ProjectExplorer::Environment env) { - m_startParameters.environment = env.toStringList(); + d->m_startParameters.environment = env.toStringList(); } void DebuggerRunControl::init() @@ -180,13 +221,13 @@ void DebuggerRunControl::init() void DebuggerRunControl::start() { - m_running = true; + d->m_running = true; QString errorMessage; QString settingsCategory; QString settingsPage; - if (m_manager->checkDebugConfiguration(m_startParameters.toolChainType, + if (d->m_manager->checkDebugConfiguration(d->m_startParameters.toolChainType, &errorMessage, &settingsCategory, &settingsPage)) { - m_manager->startNewDebugger(this); + d->m_manager->startNewDebugger(this); emit started(); } else { appendMessage(this, errorMessage, true); @@ -199,13 +240,13 @@ void DebuggerRunControl::start() void DebuggerRunControl::showMessage(const QString &msg, int channel, int timeout) { - if (!m_manager) + if (!d->m_manager) return; - DebuggerOutputWindow *ow = m_manager->debuggerOutputWindow(); + DebuggerOutputWindow *ow = d->m_manager->debuggerOutputWindow(); QTC_ASSERT(ow, return); switch (channel) { case StatusBar: - m_manager->showStatusMessage(msg, timeout); + d->m_manager->showStatusMessage(msg, timeout); ow->showOutput(LogStatus, msg); break; case AppOutput: @@ -233,22 +274,61 @@ void DebuggerRunControl::slotMessageAvailable(const QString &data, bool isError) emit appendMessage(this, data, isError); } - void DebuggerRunControl::stop() { - m_running = false; + d->m_running = false; emit stopRequested(); } void DebuggerRunControl::debuggingFinished() { - m_running = false; + d->m_running = false; emit finished(); } bool DebuggerRunControl::isRunning() const { - return m_running; + return d->m_running; +} + +const DebuggerStartParameters &DebuggerRunControl::sp() const +{ + return d->m_startParameters; +} + +ModulesHandler *DebuggerRunControl::modulesHandler() const +{ + return d->m_manager->modulesHandler(); +} + +BreakHandler *DebuggerRunControl::breakHandler() const +{ + return d->m_manager->breakHandler(); +} + +RegisterHandler *DebuggerRunControl::registerHandler() const +{ + return d->m_manager->registerHandler(); +} + +StackHandler *DebuggerRunControl::stackHandler() const +{ + return d->m_manager->stackHandler(); +} + +ThreadsHandler *DebuggerRunControl::threadsHandler() const +{ + return d->m_manager->threadsHandler(); +} + +WatchHandler *DebuggerRunControl::watchHandler() const +{ + return d->m_manager->watchHandler(); +} + +SnapshotHandler *DebuggerRunControl::snapshotHandler() const +{ + return d->m_manager->snapshotHandler(); } } // namespace Debugger |