Editors: Delete context menu if editor widget is deleted

...in CppEditor, QmlJSEditor and BinEditor.

Addresses second crash reported at QTCREATORBUG-8775. The first one is
already fixed.

Task-number: QTCREATORBUG-8775

Change-Id: I11c1f030ebeb2b2cbec02503e8e225fc5600a101
Reviewed-by: David Schulz <david.schulz@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Nikolai Kosjar
2013-02-18 15:12:09 +01:00
parent f8eb1adf0e
commit 8417c6493a
3 changed files with 45 additions and 33 deletions

View File

@@ -97,6 +97,7 @@
#include <QDebug>
#include <QTime>
#include <QTimer>
#include <QPointer>
#include <QStack>
#include <QSettings>
#include <QSignalMapper>
@@ -1642,7 +1643,7 @@ void CPPEditorWidget::contextMenuEvent(QContextMenuEvent *e)
// ### enable
// updateSemanticInfo(m_semanticHighlighter->semanticInfo(currentSource()));
QMenu *menu = new QMenu;
QPointer<QMenu> menu(new QMenu(this));
Core::ActionContainer *mcontext = Core::ActionManager::actionContainer(Constants::M_CONTEXT);
QMenu *contextMenu = mcontext->menu();
@@ -1686,6 +1687,8 @@ void CPPEditorWidget::contextMenuEvent(QContextMenuEvent *e)
appendStandardContextMenuActions(menu);
menu->exec(e->globalPos());
if (!menu)
return;
m_quickFixes.clear();
delete menu;
}