From fb995bebf17a3a92c6eacf70bf07b7cad2e6609c Mon Sep 17 00:00:00 2001 From: Brad Davis Date: Thu, 4 May 2017 12:04:21 -0700 Subject: [PATCH] Prevent crash on switching to 3D display twice --- libraries/ui/src/VrMenu.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libraries/ui/src/VrMenu.cpp b/libraries/ui/src/VrMenu.cpp index 73eb32ce17..878514dd41 100644 --- a/libraries/ui/src/VrMenu.cpp +++ b/libraries/ui/src/VrMenu.cpp @@ -37,15 +37,17 @@ public: qmlObject->setObjectName(uuid.toString()); // Make sure we can find it again in the future updateQmlItemFromAction(); - auto connection = QObject::connect(action, &QAction::changed, [=] { + _changedConnection = QObject::connect(action, &QAction::changed, [=] { updateQmlItemFromAction(); }); - QObject::connect(qApp, &QCoreApplication::aboutToQuit, [=] { - QObject::disconnect(connection); + _shutdownConnection = QObject::connect(qApp, &QCoreApplication::aboutToQuit, [=] { + QObject::disconnect(_changedConnection); }); } ~MenuUserData() { + QObject::disconnect(_changedConnection); + QObject::disconnect(_shutdownConnection); _action->setUserData(USER_DATA_ID, nullptr); _qml->setUserData(USER_DATA_ID, nullptr); } @@ -104,6 +106,8 @@ public: private: MenuUserData(const MenuUserData&); + QMetaObject::Connection _shutdownConnection; + QMetaObject::Connection _changedConnection; QAction* _action { nullptr }; QObject* _qml { nullptr }; };