Showing the changes to interface/src/Menu.cpp (1 of 98 files). Show all
Unified · Split
| @@ -68,6 +68,7 @@ const float DEFAULT_FACESHIFT_EYE_DEFLECTION = 0.25f; · 67 unmodified lines | |||
| 68 | const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f; | 68 | const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f; |
| 69 | const int ONE_SECOND_OF_FRAMES = 60; | 69 | const int ONE_SECOND_OF_FRAMES = 60; |
| 70 | const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES; | 70 | const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES; |
| 71 | const float MUTE_RADIUS = 50; | ||
| 71 | 72 | ||
| 72 | Menu::Menu() : | 73 | Menu::Menu() : |
| 73 | _actionHash(), | 74 | _actionHash(), |
| @@ -271,9 +272,6 @@ Menu::Menu() : · 197 unmodified lines | |||
| 271 | addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true); | 272 | addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::Bandwidth, 0, true); |
| 272 | addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails())); | 273 | addActionToQMenuAndActionHash(viewMenu, MenuOption::BandwidthDetails, 0, this, SLOT(bandwidthDetails())); |
| 273 | addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails())); | 274 | addActionToQMenuAndActionHash(viewMenu, MenuOption::OctreeStats, 0, this, SLOT(octreeStatsDetails())); |
| 274 | addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::AudioScope, 0, false, | ||
| 275 | appInstance->getAudio(), | ||
| 276 | SLOT(toggleScope())); | ||
| 277 | 275 | ||
| 278 | QMenu* developerMenu = addMenu("Developer"); | 276 | QMenu* developerMenu = addMenu("Developer"); |
| 279 | 277 | ||
| @@ -291,7 +289,6 @@ Menu::Menu() : · 11 unmodified lines | |||
| 291 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true); | 289 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true); |
| 292 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false); | 290 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false); |
| 293 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true); | 291 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true); |
| 294 | addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Models, 0, true); | ||
| 295 | addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools())); | 292 | addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools())); |
| 296 | 293 | ||
| 297 | QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options"); | 294 | QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options"); |
| @@ -308,6 +305,12 @@ Menu::Menu() : · 10 unmodified lines | |||
| 308 | addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges); | 305 | addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges); |
| 309 | addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD); | 306 | addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD); |
| 310 | 307 | ||
| 308 | QMenu* modelOptionsMenu = developerMenu->addMenu("Model Options"); | ||
| 309 | addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::Models, 0, true); | ||
| 310 | addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelBounds, 0, false); | ||
| 311 | addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementProxy, 0, false); | ||
| 312 | addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementChildProxies, 0, false); | ||
| 313 | |||
| 311 | QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options"); | 314 | QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options"); |
| 312 | 315 | ||
| 313 | addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true); | 316 | addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true); |
| @@ -370,20 +373,6 @@ Menu::Menu() : · 56 unmodified lines | |||
| 370 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings); | 373 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings); |
| 371 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings); | 374 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings); |
| 372 | 375 | ||
| 373 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, | ||
| 374 | MenuOption::CullSharedFaces, | ||
| 375 | Qt::CTRL | Qt::SHIFT | Qt::Key_C, | ||
| 376 | false, | ||
| 377 | appInstance->getVoxels(), | ||
| 378 | SLOT(cullSharedFaces())); | ||
| 379 | |||
| 380 | addCheckableActionToQMenuAndActionHash(renderDebugMenu, | ||
| 381 | MenuOption::ShowCulledSharedFaces, | ||
| 382 | 0, | ||
| 383 | false, | ||
| 384 | appInstance->getVoxels(), | ||
| 385 | SLOT(showCulledSharedFaces())); | ||
| 386 | |||
| 387 | QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools"); | 376 | QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools"); |
| 388 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction, | 377 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction, |
| 389 | 0, | 378 | 0, |
| @@ -397,13 +386,21 @@ Menu::Menu() : · 7 unmodified lines | |||
| 397 | false, | 386 | false, |
| 398 | appInstance->getAudio(), | 387 | appInstance->getAudio(), |
| 399 | SLOT(toggleMute())); | 388 | SLOT(toggleMute())); |
| 389 | addActionToQMenuAndActionHash(audioDebugMenu, | ||
| 390 | MenuOption::MuteEnvironment, | ||
| 391 | 0, | ||
| 392 | this, | ||
| 393 | SLOT(muteEnvironment())); | ||
| 400 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioToneInjection, | 394 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioToneInjection, |
| 401 | 0, | 395 | 0, |
| 402 | false, | 396 | false, |
| 403 | appInstance->getAudio(), | 397 | appInstance->getAudio(), |
| 404 | SLOT(toggleToneInjection())); | 398 | SLOT(toggleToneInjection())); |
| 399 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScope, Qt::CTRL | Qt::Key_P, false, | ||
| 400 | appInstance->getAudio(), | ||
| 401 | SLOT(toggleScope())); | ||
| 405 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScopePause, | 402 | addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioScopePause, |
| 406 | Qt::CTRL | Qt::Key_P, | 403 | Qt::CTRL | Qt::SHIFT | Qt::Key_P , |
| 407 | false, | 404 | false, |
| 408 | appInstance->getAudio(), | 405 | appInstance->getAudio(), |
| 409 | SLOT(toggleScopePause())); | 406 | SLOT(toggleScopePause())); |
| @@ -894,7 +891,7 @@ void Menu::goToDomainDialog() { · 484 unmodified lines | |||
| 894 | } | 891 | } |
| 895 | 892 | ||
| 896 | void Menu::goToOrientation(QString orientation) { | 893 | void Menu::goToOrientation(QString orientation) { |
| 897 | LocationManager::getInstance().goToDestination(orientation); | 894 | LocationManager::getInstance().goToOrientation(orientation); |
| 898 | } | 895 | } |
| 899 | 896 | ||
| 900 | bool Menu::goToDestination(QString destination) { | 897 | bool Menu::goToDestination(QString destination) { |
| @@ -975,9 +972,7 @@ void Menu::goToUser(const QString& user) { · 74 unmodified lines | |||
| 975 | /// Open a url, shortcutting any "hifi" scheme URLs to the local application. | 972 | /// Open a url, shortcutting any "hifi" scheme URLs to the local application. |
| 976 | void Menu::openUrl(const QUrl& url) { | 973 | void Menu::openUrl(const QUrl& url) { |
| 977 | if (url.scheme() == "hifi") { | 974 | if (url.scheme() == "hifi") { |
| 978 | QString path = url.toString(QUrl::RemoveScheme); | 975 | goToURL(url.toString()); |
| 979 | path = path.remove(QRegExp("^:?/*")); | ||
| 980 | goTo(path); | ||
| 981 | } else { | 976 | } else { |
| 982 | QDesktopServices::openUrl(url); | 977 | QDesktopServices::openUrl(url); |
| 983 | } | 978 | } |
| @@ -1002,6 +997,30 @@ void Menu::multipleDestinationsDecision(const QJsonObject& userData, const QJson · 18 unmodified lines | |||
| 1002 | disconnect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision); | 997 | disconnect(manager, &LocationManager::multipleDestinationsFound, this, &Menu::multipleDestinationsDecision); |
| 1003 | } | 998 | } |
| 1004 | 999 | ||
| 1000 | void Menu::muteEnvironment() { | ||
| 1001 | int headerSize = numBytesForPacketHeaderGivenPacketType(PacketTypeMuteEnvironment); | ||
| 1002 | int packetSize = headerSize + sizeof(glm::vec3) + sizeof(float); | ||
| 1003 | |||
| 1004 | glm::vec3 position = Application::getInstance()->getAvatar()->getPosition(); | ||
| 1005 | |||
| 1006 | char* packet = (char*)malloc(packetSize); | ||
| 1007 | populatePacketHeader(packet, PacketTypeMuteEnvironment); | ||
| 1008 | memcpy(packet + headerSize, &position, sizeof(glm::vec3)); | ||
| 1009 | memcpy(packet + headerSize + sizeof(glm::vec3), &MUTE_RADIUS, sizeof(float)); | ||
| 1010 | |||
| 1011 | QByteArray mutePacket(packet, packetSize); | ||
| 1012 | |||
| 1013 | // grab our audio mixer from the NodeList, if it exists | ||
| 1014 | SharedNodePointer audioMixer = NodeList::getInstance()->soloNodeOfType(NodeType::AudioMixer); | ||
| 1015 | |||
| 1016 | if (audioMixer) { | ||
| 1017 | // send off this mute packet | ||
| 1018 | NodeList::getInstance()->writeDatagram(mutePacket, audioMixer); | ||
| 1019 | } | ||
| 1020 | |||
| 1021 | free(packet); | ||
| 1022 | } | ||
| 1023 | |||
| 1005 | void Menu::goToLocation() { | 1024 | void Menu::goToLocation() { |
| 1006 | MyAvatar* myAvatar = Application::getInstance()->getAvatar(); | 1025 | MyAvatar* myAvatar = Application::getInstance()->getAvatar(); |
| 1007 | glm::vec3 avatarPos = myAvatar->getPosition(); | 1026 | glm::vec3 avatarPos = myAvatar->getPosition(); |