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

@@ -76,6 +76,7 @@
#include <QFileInfo>
#include <QSignalMapper>
#include <QTimer>
#include <QPointer>
#include <QScopedPointer>
#include <QTextCodec>
@@ -1174,7 +1175,7 @@ void QmlJSTextEditorWidget::performQuickFix(int index)
void QmlJSTextEditorWidget::contextMenuEvent(QContextMenuEvent *e)
{
QMenu *menu = new QMenu();
QPointer<QMenu> menu(new QMenu(this));
QMenu *refactoringMenu = new QMenu(tr("Refactoring"), menu);
@@ -1223,8 +1224,10 @@ void QmlJSTextEditorWidget::contextMenuEvent(QContextMenuEvent *e)
appendStandardContextMenuActions(menu);
menu->exec(e->globalPos());
menu->deleteLater();
if (!menu)
return;
m_quickFixes.clear();
delete menu;
}
bool QmlJSTextEditorWidget::event(QEvent *e)