From c5f13cedf92b4a3cbbf54e661071d34fd853906f Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Wed, 23 Sep 2009 10:45:32 +0200 Subject: [PATCH] debugger: partial refactoring of debugger engine creation --- src/plugins/debugger/cdb/cdbdebugengine.cpp | 20 +++++----- src/plugins/debugger/cdb/cdbdebugengine.h | 1 + src/plugins/debugger/debuggermanager.cpp | 39 ++++++++++++-------- src/plugins/debugger/script/scriptengine.cpp | 14 ++++--- src/plugins/debugger/tcf/tcfengine.cpp | 18 ++++----- 5 files changed, 50 insertions(+), 42 deletions(-) diff --git a/src/plugins/debugger/cdb/cdbdebugengine.cpp b/src/plugins/debugger/cdb/cdbdebugengine.cpp index 853a774bb2c..b4e9f6fd67b 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.cpp +++ b/src/plugins/debugger/cdb/cdbdebugengine.cpp @@ -1685,25 +1685,21 @@ bool CdbDebugEnginePrivate::setSymbolPaths(const QStringList &s, QString *errorM return true; } -} // namespace Internal -} // namespace Debugger - // Accessed by DebuggerManager -Debugger::Internal::IDebuggerEngine *createWinEngine(Debugger::Internal::DebuggerManager *parent, - bool cmdLineEnabled, - QList<Core::IOptionsPage*> *opts) +IDebuggerEngine *createWinEngine(DebuggerManager *parent, + bool cmdLineEnabled, + QList<Core::IOptionsPage*> *opts) { // Create options page - QSharedPointer<Debugger::Internal::CdbOptions> options(new Debugger::Internal::CdbOptions); + QSharedPointer<CdbOptions> options(new CdbOptions); options->fromSettings(Core::ICore::instance()->settings()); - Debugger::Internal::CdbOptionsPage *optionsPage = new Debugger::Internal::CdbOptionsPage(options); + CdbOptionsPage *optionsPage = new CdbOptionsPage(options); opts->push_back(optionsPage); if (!cmdLineEnabled || !options->enabled) return 0; // Create engine QString errorMessage; - Debugger::Internal::IDebuggerEngine *engine = - Debugger::Internal::CdbDebugEngine::create(parent, options, &errorMessage); + IDebuggerEngine *engine = CdbDebugEngine::create(parent, options, &errorMessage); if (!engine) { optionsPage->setFailureMessage(errorMessage); qWarning("%s\n" ,qPrintable(errorMessage)); @@ -1711,3 +1707,7 @@ Debugger::Internal::IDebuggerEngine *createWinEngine(Debugger::Internal::Debugge QObject::connect(optionsPage, SIGNAL(debuggerPathsChanged()), engine, SLOT(syncDebuggerPaths())); return engine; } + +} // namespace Internal +} // namespace Debugger + diff --git a/src/plugins/debugger/cdb/cdbdebugengine.h b/src/plugins/debugger/cdb/cdbdebugengine.h index 18b66041652..6b57235fa34 100644 --- a/src/plugins/debugger/cdb/cdbdebugengine.h +++ b/src/plugins/debugger/cdb/cdbdebugengine.h @@ -99,6 +99,7 @@ public: virtual void reloadRegisters(); virtual void reloadSourceFiles(); virtual void reloadFullStack() {} + virtual void addOptionPages(QList<Core::IOptionsPage*> *) const; public slots: void syncDebuggerPaths(); diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 8c5c75fdb2d..b581883f1d9 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -82,11 +82,17 @@ #include <QtGui/QToolButton> #include <QtGui/QToolTip> +namespace Debugger { +namespace Internal { -// The creation functions take a list of options pages they can add to. -// This allows for having a "enabled" toggle on the page indepently -// of the engine. -using namespace Debugger::Internal; +IDebuggerEngine *createGdbEngine(DebuggerManager *parent); +IDebuggerEngine *createScriptEngine(DebuggerManager *parent); +IDebuggerEngine *createTcfEngine(DebuggerManager *parent); + +// The createWinEngine function takes a list of options pages it can add to. +// This allows for having a "enabled" toggle on the page independently +// of the engine. That's good for not enabling the related ActiveX control +// unnecessarily. IDebuggerEngine *createWinEngine(DebuggerManager *, bool /* cmdLineEnabled */, QList<Core::IOptionsPage*> *) #ifdef CDB_ENABLED @@ -94,14 +100,6 @@ IDebuggerEngine *createWinEngine(DebuggerManager *, bool /* cmdLineEnabled */, Q #else { return 0; } #endif -IDebuggerEngine *createScriptEngine(DebuggerManager *parent, QList<Core::IOptionsPage*> *); -IDebuggerEngine *createTcfEngine(DebuggerManager *parent, QList<Core::IOptionsPage*> *); - - -namespace Debugger { -namespace Internal { - -IDebuggerEngine *createGdbEngine(DebuggerManager *parent); QDebug operator<<(QDebug str, const DebuggerStartParameters &p) @@ -443,15 +441,24 @@ void DebuggerManager::init() QList<Core::IOptionsPage*> DebuggerManager::initializeEngines(unsigned enabledTypeFlags) { QList<Core::IOptionsPage*> rc; + if (enabledTypeFlags & GdbEngineType) { gdbEngine = createGdbEngine(this); gdbEngine->addOptionPages(&rc); } + winEngine = createWinEngine(this, (enabledTypeFlags & CdbEngineType), &rc); - if (enabledTypeFlags & ScriptEngineType) - scriptEngine = createScriptEngine(this, &rc); - if (enabledTypeFlags & TcfEngineType) - tcfEngine = createTcfEngine(this, &rc); + + if (enabledTypeFlags & ScriptEngineType) { + scriptEngine = createScriptEngine(this); + scriptEngine->addOptionPages(&rc); + } + + if (enabledTypeFlags & TcfEngineType) { + tcfEngine = createTcfEngine(this); + tcfEngine->addOptionPages(&rc); + } + m_engine = 0; if (Debugger::Constants::Internal::debug) qDebug() << Q_FUNC_INFO << gdbEngine << winEngine << scriptEngine << rc.size(); diff --git a/src/plugins/debugger/script/scriptengine.cpp b/src/plugins/debugger/script/scriptengine.cpp index d73dc189b62..7f1caec3560 100644 --- a/src/plugins/debugger/script/scriptengine.cpp +++ b/src/plugins/debugger/script/scriptengine.cpp @@ -65,10 +65,6 @@ #include <QtScript/QScriptValue> #include <QtScript/QScriptValueIterator> -using namespace Debugger; -using namespace Debugger::Internal; -using namespace Debugger::Constants; - //#define DEBUG_SCRIPT 1 #if DEBUG_SCRIPT # define SDEBUG(s) qDebug() << s @@ -77,13 +73,17 @@ using namespace Debugger::Constants; #endif # define XSDEBUG(s) qDebug() << s + +namespace Debugger { +namespace Internal { + /////////////////////////////////////////////////////////////////////// // // ScriptEngine // /////////////////////////////////////////////////////////////////////// -class Debugger::Internal::ScriptAgent : public QScriptEngineAgent +class ScriptAgent : public QScriptEngineAgent { public: ScriptAgent(ScriptEngine *debugger, QScriptEngine *script); @@ -733,8 +733,10 @@ void ScriptEngine::updateSubItem(const WatchData &data0) QTC_ASSERT(false, return); } -IDebuggerEngine *createScriptEngine(DebuggerManager *parent, QList<Core::IOptionsPage*> *) +IDebuggerEngine *createScriptEngine(DebuggerManager *parent) { return new ScriptEngine(parent); } +} // namespace Internal +} // namespace Debugger diff --git a/src/plugins/debugger/tcf/tcfengine.cpp b/src/plugins/debugger/tcf/tcfengine.cpp index fe0eebf96a9..cc88654ee2d 100644 --- a/src/plugins/debugger/tcf/tcfengine.cpp +++ b/src/plugins/debugger/tcf/tcfengine.cpp @@ -57,11 +57,6 @@ #include <QtNetwork/QTcpSocket> - -using namespace Debugger; -using namespace Debugger::Internal; -using namespace Debugger::Constants; - #define DEBUG_TCF 1 #if DEBUG_TCF # define SDEBUG(s) qDebug() << s @@ -74,7 +69,9 @@ using namespace Debugger::Constants; #define STRINGIFY(x) STRINGIFY_INTERNAL(x) #define CB(callback) &TcfEngine::callback, STRINGIFY(callback) -QByteArray C(const QByteArray &ba1, +//#define USE_CONGESTION_CONTROL + +static QByteArray C(const QByteArray &ba1, const QByteArray &ba2 = QByteArray(), const QByteArray &ba3 = QByteArray(), const QByteArray &ba4 = QByteArray(), @@ -88,9 +85,8 @@ QByteArray C(const QByteArray &ba1, return result; } - -//#define USE_CONGESTION_CONTROL - +namespace Debugger { +namespace Internal { /////////////////////////////////////////////////////////////////////// // @@ -571,8 +567,10 @@ void TcfEngine::updateSubItem(const WatchData &data0) QTC_ASSERT(false, return); } -IDebuggerEngine *createTcfEngine(DebuggerManager *parent, QList<Core::IOptionsPage*> *) +IDebuggerEngine *createTcfEngine(DebuggerManager *parent) { return new TcfEngine(parent); } +} // namespace Internal +} // namespace Debugger -- GitLab