Showing the changes to interface/src/Menu.cpp (1 of 140 files). Show all
Unified · Split
| @@ -30,7 +30,7 @@ · 29 unmodified lines | |||
| 30 | #include "devices/DdeFaceTracker.h" | 30 | #include "devices/DdeFaceTracker.h" |
| 31 | #include "devices/Faceshift.h" | 31 | #include "devices/Faceshift.h" |
| 32 | #include "devices/RealSense.h" | 32 | #include "devices/RealSense.h" |
| 33 | #include "devices/3DConnexionClient.h" | 33 | #include "input-plugins/SpacemouseManager.h" |
| 34 | #include "MainWindow.h" | 34 | #include "MainWindow.h" |
| 35 | #include "scripting/MenuScriptingInterface.h" | 35 | #include "scripting/MenuScriptingInterface.h" |
| 36 | #include "ui/AssetUploadDialogFactory.h" | 36 | #include "ui/AssetUploadDialogFactory.h" |
| @@ -44,22 +44,11 @@ · 7 unmodified lines | |||
| 44 | 44 | ||
| 45 | #include "Menu.h" | 45 | #include "Menu.h" |
| 46 | 46 | ||
| 47 | Menu* Menu::_instance = NULL; | 47 | static const char* const MENU_PROPERTY_NAME = "com.highfidelity.Menu"; |
| 48 | 48 | ||
| 49 | Menu* Menu::getInstance() { | 49 | Menu* Menu::getInstance() { |
| 50 | static QMutex menuInstanceMutex; | 50 | static Menu* instance = globalInstance<Menu>(MENU_PROPERTY_NAME); |
| 51 | 51 | return instance; | |
| 52 | // lock the menu instance mutex to make sure we don't race and create two menus and crash | ||
| 53 | menuInstanceMutex.lock(); | ||
| 54 | |||
| 55 | if (!_instance) { | ||
| 56 | qCDebug(interfaceapp, "First call to Menu::getInstance() - initing menu."); | ||
| 57 | _instance = new Menu(); | ||
| 58 | } | ||
| 59 | |||
| 60 | menuInstanceMutex.unlock(); | ||
| 61 | |||
| 62 | return _instance; | ||
| 63 | } | 52 | } |
| 64 | 53 | ||
| 65 | Menu::Menu() { | 54 | Menu::Menu() { |
| @@ -467,13 +456,7 @@ Menu::Menu() { · 401 unmodified lines | |||
| 467 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::MeshVisible, 0, true, | 456 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::MeshVisible, 0, true, |
| 468 | avatar, SLOT(setEnableMeshVisible(bool))); | 457 | avatar, SLOT(setEnableMeshVisible(bool))); |
| 469 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::DisableEyelidAdjustment, 0, false); | 458 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::DisableEyelidAdjustment, 0, false); |
| 470 | #if 0 | 459 | |
| 471 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, | ||
| 472 | MenuOption::Connexion, | ||
| 473 | 0, false, | ||
| 474 | &ConnexionClient::getInstance(), | ||
| 475 | SLOT(toggleConnexion(bool))); | ||
| 476 | #endif | ||
| 477 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::ComfortMode, 0, true); | 460 | addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::ComfortMode, 0, true); |
| 478 | 461 | ||
| 479 | MenuWrapper* handOptionsMenu = developerMenu->addMenu("Hands"); | 462 | MenuWrapper* handOptionsMenu = developerMenu->addMenu("Hands"); |