diff options
author | hjk <[email protected]> | 2018-02-01 09:07:26 +0100 |
---|---|---|
committer | hjk <[email protected]> | 2018-02-01 09:59:15 +0000 |
commit | ae28c1bd676895ccc741121d5a20fd03066cca2c (patch) | |
tree | 31da83f3b0bbae9ea8baaf4ae74908361a949efb /src/plugins/debugger/debuggerplugin.cpp | |
parent | 0bd6f712f0658e1685a074523d8b289e63935f1d (diff) |
Debugger: Avoid using addAutoReleasedObject
Not needed anymore for normal operation.
Change-Id: I9e167d28bb45afd8f98d8b0fed6fce183fea32ad
Reviewed-by: David Schulz <[email protected]>
Diffstat (limited to 'src/plugins/debugger/debuggerplugin.cpp')
-rw-r--r-- | src/plugins/debugger/debuggerplugin.cpp | 38 |
1 files changed, 14 insertions, 24 deletions
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp index 9ae7bf10f23..a442907afc1 100644 --- a/src/plugins/debugger/debuggerplugin.cpp +++ b/src/plugins/debugger/debuggerplugin.cpp @@ -510,17 +510,6 @@ bool DummyEngine::hasCapability(unsigned cap) const // /////////////////////////////////////////////////////////////////////// -class DebugModeContext : public IContext -{ -public: - DebugModeContext(QWidget *modeWindow) - { - setContext(Context(CC::C_EDITORMANAGER)); - setWidget(modeWindow); - ICore::addContextObject(this); - } -}; - class DebugMode : public IMode { public: @@ -1027,9 +1016,12 @@ public: DebuggerSettings *m_debuggerSettings = 0; QStringList m_arguments; DebuggerToolTipManager m_toolTipManager; - CommonOptionsPage *m_commonOptionsPage = 0; DummyEngine *m_dummyEngine = 0; const QSharedPointer<GlobalDebuggerOptions> m_globalDebuggerOptions; + + DebuggerItemManager m_debuggerItemManager; + QList<IOptionsPage *> m_optionPages; + IContext m_debugModeContext; }; DebuggerPluginPrivate::DebuggerPluginPrivate(DebuggerPlugin *plugin) @@ -1046,6 +1038,9 @@ DebuggerPluginPrivate::DebuggerPluginPrivate(DebuggerPlugin *plugin) DebuggerPluginPrivate::~DebuggerPluginPrivate() { + qDeleteAll(m_optionPages); + m_optionPages.clear(); + delete m_debuggerSettings; m_debuggerSettings = 0; @@ -1704,13 +1699,9 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, //cmd->setDefaultKeySequence(QKeySequence(tr("Ctrl+D,Ctrl+W"))); debugMenu->addAction(cmd); - QList<IOptionsPage *> engineOptionPages; - addGdbOptionPages(&engineOptionPages); - addCdbOptionPages(&engineOptionPages); - - foreach (IOptionsPage *op, engineOptionPages) - m_plugin->addAutoReleasedObject(op); - m_plugin->addAutoReleasedObject(new LocalsAndExpressionsOptionsPage); + addGdbOptionPages(&m_optionPages); + addCdbOptionPages(&m_optionPages); + m_optionPages.append(new LocalsAndExpressionsOptionsPage); connect(ModeManager::instance(), &ModeManager::currentModeChanged, this, &DebuggerPluginPrivate::onModeChanged); @@ -1726,7 +1717,9 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, m_modeWindow = createModeWindow(Constants::MODE_DEBUG, m_mainWindow); m_mode->setWidget(m_modeWindow); - m_plugin->addAutoReleasedObject(new DebugModeContext(m_modeWindow)); + m_debugModeContext.setContext(Context(CC::C_EDITORMANAGER)); + m_debugModeContext.setWidget(m_modeWindow); + ICore::addContextObject(&m_debugModeContext); connect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, &DebuggerPluginPrivate::updateUiForProject); @@ -1839,8 +1832,7 @@ bool DebuggerPluginPrivate::initialize(const QStringList &arguments, connect(SessionManager::instance(), &SessionManager::startupProjectChanged, this, &DebuggerPluginPrivate::onCurrentProjectChanged); - m_commonOptionsPage = new CommonOptionsPage(m_globalDebuggerOptions); - m_plugin->addAutoReleasedObject(m_commonOptionsPage); + m_optionPages.append(new CommonOptionsPage(m_globalDebuggerOptions)); m_globalDebuggerOptions->fromSettings(); m_returnWindow->setVisible(false); @@ -3260,8 +3252,6 @@ bool DebuggerPlugin::initialize(const QStringList &arguments, QString *errorMess mstart->addSeparator(Constants::G_GENERAL); mstart->addSeparator(Constants::G_SPECIAL); - addAutoReleasedObject(new DebuggerItemManager); - KitManager::registerKitInformation(new DebuggerKitInformation); // Task integration. |