diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7314bce0bd..45fa27db78 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -817,6 +817,8 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : } else if (action == controller::toInt(controller::Action::RETICLE_Y)) { auto oldPos = _compositor.getReticlePosition(); _compositor.setReticlePosition({ oldPos.x, oldPos.y + state }); + } else if (action == controller::toInt(controller::Action::TOGGLE_OVERLAY)) { + _overlayConductor.setEnabled(!_overlayConductor.getEnabled()); } } }); @@ -2030,9 +2032,7 @@ void Application::keyPressEvent(QKeyEvent* event) { Menu::getInstance()->setIsOptionChecked(MenuOption::ThirdPerson, !Menu::getInstance()->isOptionChecked(MenuOption::FirstPerson)); cameraMenuChanged(); break; - case Qt::Key_O: - _overlayConductor.setEnabled(!_overlayConductor.getEnabled()); - break; + case Qt::Key_Slash: Menu::getInstance()->triggerOption(MenuOption::Stats); break; @@ -2993,6 +2993,11 @@ void Application::updateThreads(float deltaTime) { } } +void Application::toggleOverlays() { + auto overlaysVisible = Menu::getInstance()->isOptionChecked(MenuOption::Overlays); + _overlayConductor.setEnabled(overlaysVisible); +} + void Application::cycleCamera() { auto menu = Menu::getInstance(); if (menu->isOptionChecked(MenuOption::FullscreenMirror)) { diff --git a/interface/src/Application.h b/interface/src/Application.h index 51b90bcb99..13dab6137e 100644 --- a/interface/src/Application.h +++ b/interface/src/Application.h @@ -149,6 +149,7 @@ public: const ApplicationOverlay& getApplicationOverlay() const { return _applicationOverlay; } ApplicationCompositor& getApplicationCompositor() { return _compositor; } const ApplicationCompositor& getApplicationCompositor() const { return _compositor; } + Overlays& getOverlays() { return _overlays; } bool isForeground() const { return _isForeground; } @@ -270,6 +271,7 @@ public slots: void cycleCamera(); void cameraMenuChanged(); + void toggleOverlays(); void reloadResourceCaches(); diff --git a/interface/src/Menu.cpp b/interface/src/Menu.cpp index 9c7788851c..bf8cd2e61e 100644 --- a/interface/src/Menu.cpp +++ b/interface/src/Menu.cpp @@ -255,6 +255,9 @@ Menu::Menu() { 0, true, qApp, SLOT(rotationModeChanged()), UNSPECIFIED_POSITION, "Advanced"); + // View > Overlays + addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Overlays, 0, true, + qApp, SLOT(toggleOverlays())); // Navigate menu ---------------------------------- MenuWrapper* navigateMenu = addMenu("Navigate"); diff --git a/interface/src/Menu.h b/interface/src/Menu.h index 44a24ee895..ca5bf295db 100644 --- a/interface/src/Menu.h +++ b/interface/src/Menu.h @@ -247,6 +247,7 @@ namespace MenuOption { const QString OnePointCalibration = "1 Point Calibration"; const QString OnlyDisplayTopTen = "Only Display Top Ten"; const QString OutputMenu = "Display"; + const QString Overlays = "Overlays"; const QString PackageModel = "Package Model..."; const QString Pair = "Pair"; const QString PhysicsShowHulls = "Draw Collision Hulls"; diff --git a/libraries/controllers/src/controllers/Actions.cpp b/libraries/controllers/src/controllers/Actions.cpp index e6662caa37..dba856cbaa 100644 --- a/libraries/controllers/src/controllers/Actions.cpp +++ b/libraries/controllers/src/controllers/Actions.cpp @@ -61,6 +61,7 @@ namespace controller { makeButtonPair(Action::CONTEXT_MENU, "ContextMenu"), makeButtonPair(Action::TOGGLE_MUTE, "ToggleMute"), makeButtonPair(Action::CYCLE_CAMERA, "CycleCamera"), + makeButtonPair(Action::TOGGLE_OVERLAY, "ToggleOverlay"), makeAxisPair(Action::RETICLE_CLICK, "ReticleClick"), makeAxisPair(Action::RETICLE_X, "ReticleX"), diff --git a/libraries/controllers/src/controllers/Actions.h b/libraries/controllers/src/controllers/Actions.h index e77e5e5a93..efdc45cb3d 100644 --- a/libraries/controllers/src/controllers/Actions.h +++ b/libraries/controllers/src/controllers/Actions.h @@ -52,6 +52,7 @@ enum class Action { CONTEXT_MENU, TOGGLE_MUTE, CYCLE_CAMERA, + TOGGLE_OVERLAY, SHIFT,