From b63e4b9d1fe66157d51993c01be04fd3ebe87a6b Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Tue, 23 Feb 2016 18:15:29 -0800 Subject: [PATCH] Address shutdown crash --- libraries/ui/src/VrMenu.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libraries/ui/src/VrMenu.cpp b/libraries/ui/src/VrMenu.cpp index d1ef660532..6609b376b1 100644 --- a/libraries/ui/src/VrMenu.cpp +++ b/libraries/ui/src/VrMenu.cpp @@ -124,18 +124,25 @@ void VrMenu::addMenu(QMenu* menu) { new MenuUserData(menu, result); auto menuAction = menu->menuAction(); updateQmlItemFromAction(result, menuAction); - QObject::connect(menuAction, &QAction::changed, [=] { + auto connection = QObject::connect(menuAction, &QAction::changed, [=] { updateQmlItemFromAction(result, menuAction); }); + QObject::connect(qApp, &QCoreApplication::aboutToQuit, [=] { + QObject::disconnect(connection); + }); } void bindActionToQmlAction(QObject* qmlAction, QAction* action) { new MenuUserData(action, qmlAction); updateQmlItemFromAction(qmlAction, action); - QObject::connect(action, &QAction::changed, [=] { + auto connection = QObject::connect(action, &QAction::changed, [=] { updateQmlItemFromAction(qmlAction, action); }); + QObject::connect(qApp, &QCoreApplication::aboutToQuit, [=] { + QObject::disconnect(connection); + }); + QObject::connect(action, &QAction::toggled, [=](bool checked) { qmlAction->setProperty("checked", checked); });