Help: Fix crash when closing external help window

We need to explicitly remove the context that we registered for the
viewer in it. Otherwise it might happen that the deleted context object
is temporarily made "active" when the context for the whole window is
removed.

Change-Id: I903ae0a774751651cc2ec1661c0af8b8f7b3df2d
Task-number: QTCREATORBUG-12722
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
Eike Ziller
2014-07-24 14:48:36 +02:00
parent cf9d12ed41
commit 8803339806
2 changed files with 6 additions and 4 deletions

View File

@@ -102,10 +102,10 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
setFocusProxy(m_viewer);
Core::IContext *icontext = new Core::IContext(this);
icontext->setContext(context);
icontext->setWidget(m_viewer);
Core::ICore::addContextObject(icontext);
m_context = new Core::IContext(this);
m_context->setContext(context);
m_context->setWidget(m_viewer);
Core::ICore::addContextObject(m_context);
back->setEnabled(m_viewer->isBackwardAvailable());
connect(back, SIGNAL(triggered()), m_viewer, SLOT(backward()));
@@ -171,6 +171,7 @@ HelpWidget::HelpWidget(const Core::Context &context, WidgetStyle style, QWidget
HelpWidget::~HelpWidget()
{
Core::ICore::removeContextObject(m_context);
Core::ActionManager::unregisterAction(m_copy, Core::Constants::COPY);
Core::ActionManager::unregisterAction(m_openHelpMode, Help::Constants::CONTEXT_HELP);
if (m_scaleUp)