mirror of
https://github.com/overte-org/overte.git
synced 2025-08-10 12:42:58 +02:00
Add Avatar submenu to main menu for non-debug stuff
This commit is contained in:
parent
f511fe2657
commit
1a8a2d9156
4 changed files with 149 additions and 169 deletions
|
@ -221,15 +221,6 @@ Menu::Menu() :
|
||||||
addActionToQMenuAndActionHash(editMenu, MenuOption::Attachments, 0, this, SLOT(editAttachments()));
|
addActionToQMenuAndActionHash(editMenu, MenuOption::Attachments, 0, this, SLOT(editAttachments()));
|
||||||
addActionToQMenuAndActionHash(editMenu, MenuOption::Animations, 0, this, SLOT(editAnimations()));
|
addActionToQMenuAndActionHash(editMenu, MenuOption::Animations, 0, this, SLOT(editAnimations()));
|
||||||
|
|
||||||
addDisabledActionAndSeparator(editMenu, "Physics");
|
|
||||||
QObject* avatar = appInstance->getAvatar();
|
|
||||||
addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::ObeyEnvironmentalGravity, Qt::SHIFT | Qt::Key_G, false,
|
|
||||||
avatar, SLOT(updateMotionBehaviorsFromMenu()));
|
|
||||||
addCheckableActionToQMenuAndActionHash(editMenu, MenuOption::StandOnNearbyFloors, 0, true,
|
|
||||||
avatar, SLOT(updateMotionBehaviorsFromMenu()));
|
|
||||||
|
|
||||||
addAvatarCollisionSubMenu(editMenu);
|
|
||||||
|
|
||||||
QMenu* toolsMenu = addMenu("Tools");
|
QMenu* toolsMenu = addMenu("Tools");
|
||||||
addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));
|
addActionToQMenuAndActionHash(toolsMenu, MenuOption::MetavoxelEditor, 0, this, SLOT(showMetavoxelEditor()));
|
||||||
addActionToQMenuAndActionHash(toolsMenu, MenuOption::ScriptEditor, Qt::ALT | Qt::Key_S, this, SLOT(showScriptEditor()));
|
addActionToQMenuAndActionHash(toolsMenu, MenuOption::ScriptEditor, Qt::ALT | Qt::Key_S, this, SLOT(showScriptEditor()));
|
||||||
|
@ -257,6 +248,44 @@ Menu::Menu() :
|
||||||
this,
|
this,
|
||||||
SLOT(toggleConsole()));
|
SLOT(toggleConsole()));
|
||||||
|
|
||||||
|
QMenu* avatarMenu = addMenu("Avatar");
|
||||||
|
|
||||||
|
QMenu* avatarSizeMenu = avatarMenu->addMenu("Size");
|
||||||
|
addActionToQMenuAndActionHash(avatarSizeMenu,
|
||||||
|
MenuOption::IncreaseAvatarSize,
|
||||||
|
Qt::Key_Plus,
|
||||||
|
appInstance->getAvatar(),
|
||||||
|
SLOT(increaseSize()));
|
||||||
|
addActionToQMenuAndActionHash(avatarSizeMenu,
|
||||||
|
MenuOption::DecreaseAvatarSize,
|
||||||
|
Qt::Key_Minus,
|
||||||
|
appInstance->getAvatar(),
|
||||||
|
SLOT(decreaseSize()));
|
||||||
|
addActionToQMenuAndActionHash(avatarSizeMenu,
|
||||||
|
MenuOption::ResetAvatarSize,
|
||||||
|
Qt::Key_Equal,
|
||||||
|
appInstance->getAvatar(),
|
||||||
|
SLOT(resetSize()));
|
||||||
|
|
||||||
|
QObject* avatar = appInstance->getAvatar();
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarMenu, MenuOption::ChatCircling, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarMenu, MenuOption::GlowWhenSpeaking, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarMenu, MenuOption::ObeyEnvironmentalGravity, Qt::SHIFT | Qt::Key_G, false,
|
||||||
|
avatar, SLOT(updateMotionBehaviorsFromMenu()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarMenu, MenuOption::StandOnNearbyFloors, 0, true,
|
||||||
|
avatar, SLOT(updateMotionBehaviorsFromMenu()));
|
||||||
|
|
||||||
|
QMenu* collisionsMenu = avatarMenu->addMenu("Collide With...");
|
||||||
|
addCheckableActionToQMenuAndActionHash(collisionsMenu, MenuOption::CollideAsRagdoll);
|
||||||
|
addCheckableActionToQMenuAndActionHash(collisionsMenu, MenuOption::CollideWithAvatars,
|
||||||
|
0, true, avatar, SLOT(updateCollisionGroups()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(collisionsMenu, MenuOption::CollideWithVoxels,
|
||||||
|
0, false, avatar, SLOT(updateCollisionGroups()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(collisionsMenu, MenuOption::CollideWithParticles,
|
||||||
|
0, true, avatar, SLOT(updateCollisionGroups()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(collisionsMenu, MenuOption::CollideWithEnvironment,
|
||||||
|
0, false, avatar, SLOT(updateCollisionGroups()));
|
||||||
|
|
||||||
QMenu* viewMenu = addMenu("View");
|
QMenu* viewMenu = addMenu("View");
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
#ifdef Q_OS_MAC
|
||||||
|
@ -304,25 +333,6 @@ Menu::Menu() :
|
||||||
Qt::CTRL | Qt::SHIFT | Qt::Key_3, false,
|
Qt::CTRL | Qt::SHIFT | Qt::Key_3, false,
|
||||||
&nodeBounds, SLOT(setShowParticleNodes(bool)));
|
&nodeBounds, SLOT(setShowParticleNodes(bool)));
|
||||||
|
|
||||||
|
|
||||||
QMenu* avatarSizeMenu = viewMenu->addMenu("Avatar Size");
|
|
||||||
|
|
||||||
addActionToQMenuAndActionHash(avatarSizeMenu,
|
|
||||||
MenuOption::IncreaseAvatarSize,
|
|
||||||
Qt::Key_Plus,
|
|
||||||
appInstance->getAvatar(),
|
|
||||||
SLOT(increaseSize()));
|
|
||||||
addActionToQMenuAndActionHash(avatarSizeMenu,
|
|
||||||
MenuOption::DecreaseAvatarSize,
|
|
||||||
Qt::Key_Minus,
|
|
||||||
appInstance->getAvatar(),
|
|
||||||
SLOT(decreaseSize()));
|
|
||||||
addActionToQMenuAndActionHash(avatarSizeMenu,
|
|
||||||
MenuOption::ResetAvatarSize,
|
|
||||||
Qt::Key_Equal,
|
|
||||||
appInstance->getAvatar(),
|
|
||||||
SLOT(resetSize()));
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::OffAxisProjection, 0, false);
|
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::OffAxisProjection, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::TurnWithHead, 0, false);
|
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::TurnWithHead, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::MoveWithLean, 0, false);
|
addCheckableActionToQMenuAndActionHash(viewMenu, MenuOption::MoveWithLean, 0, false);
|
||||||
|
@ -338,111 +348,97 @@ Menu::Menu() :
|
||||||
|
|
||||||
QMenu* developerMenu = addMenu("Developer");
|
QMenu* developerMenu = addMenu("Developer");
|
||||||
|
|
||||||
QMenu* renderOptionsMenu = developerMenu->addMenu("Rendering Options");
|
QMenu* renderOptionsMenu = developerMenu->addMenu("Render");
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Stars, Qt::Key_Asterisk, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Atmosphere, Qt::SHIFT | Qt::Key_A, true);
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Atmosphere, Qt::SHIFT | Qt::Key_A, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Avatars, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Models, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true);
|
||||||
|
|
||||||
|
QMenu* shadowMenu = renderOptionsMenu->addMenu("Shadows");
|
||||||
|
QActionGroup* shadowGroup = new QActionGroup(shadowMenu);
|
||||||
|
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, "None", 0, true));
|
||||||
|
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::SimpleShadows, 0, false));
|
||||||
|
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::CascadedShadows, 0, false));
|
||||||
|
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::AvatarsReceiveShadows, 0, true));
|
||||||
|
|
||||||
|
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Stars, Qt::Key_Asterisk, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu,
|
||||||
|
MenuOption::Voxels,
|
||||||
|
Qt::SHIFT | Qt::Key_V,
|
||||||
|
true,
|
||||||
|
appInstance,
|
||||||
|
SLOT(setRenderVoxels(bool)));
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::EnableGlowEffect, 0, true);
|
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::EnableGlowEffect, 0, true);
|
||||||
addActionToQMenuAndActionHash(renderOptionsMenu,
|
addActionToQMenuAndActionHash(renderOptionsMenu,
|
||||||
MenuOption::GlowMode,
|
MenuOption::GlowMode,
|
||||||
0,
|
0,
|
||||||
appInstance->getGlowEffect(),
|
appInstance->getGlowEffect(),
|
||||||
SLOT(cycleRenderMode()));
|
SLOT(cycleRenderMode()));
|
||||||
|
|
||||||
QMenu* shadowMenu = renderOptionsMenu->addMenu("Shadows");
|
|
||||||
QActionGroup* shadowGroup = new QActionGroup(shadowMenu);
|
|
||||||
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, "None", 0, true));
|
|
||||||
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::SimpleShadows, 0, false));
|
|
||||||
shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::CascadedShadows, 0, false));
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Metavoxels, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::BuckyBalls, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::StringHair, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::Particles, 0, true);
|
|
||||||
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools()));
|
addActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::LodTools, Qt::SHIFT | Qt::Key_L, this, SLOT(lodTools()));
|
||||||
|
|
||||||
QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxel Options");
|
QMenu* avatarDebugMenu = developerMenu->addMenu("Avatar");
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu,
|
|
||||||
MenuOption::Voxels,
|
|
||||||
Qt::SHIFT | Qt::Key_V,
|
|
||||||
true,
|
|
||||||
appInstance,
|
|
||||||
SLOT(setRenderVoxels(bool)));
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::VoxelTextures);
|
|
||||||
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::AmbientOcclusion);
|
|
||||||
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges);
|
|
||||||
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD);
|
|
||||||
|
|
||||||
QMenu* modelOptionsMenu = developerMenu->addMenu("Model Options");
|
|
||||||
addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::Models, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelBounds, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementProxy, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(modelOptionsMenu, MenuOption::DisplayModelElementChildProxies, 0, false);
|
|
||||||
|
|
||||||
QMenu* avatarOptionsMenu = developerMenu->addMenu("Avatar Options");
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Avatars, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::AvatarsReceiveShadows, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::RenderSkeletonCollisionShapes);
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::RenderHeadCollisionShapes);
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::RenderBoundingCollisionShapes);
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::CollideAsRagdoll);
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::LookAtVectors, 0, false);
|
|
||||||
#ifdef HAVE_FACESHIFT
|
#ifdef HAVE_FACESHIFT
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu,
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu,
|
||||||
MenuOption::Faceshift,
|
MenuOption::Faceshift,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
appInstance->getFaceshift(),
|
appInstance->getFaceshift(),
|
||||||
SLOT(setTCPEnabled(bool)));
|
SLOT(setTCPEnabled(bool)));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_FACEPLUS
|
#ifdef HAVE_FACEPLUS
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Faceplus, 0, true,
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::Faceplus, 0, true,
|
||||||
appInstance->getFaceplus(), SLOT(updateEnabled()));
|
appInstance->getFaceplus(), SLOT(updateEnabled()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_VISAGE
|
#ifdef HAVE_VISAGE
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::Visage, 0, false,
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::Visage, 0, false,
|
||||||
appInstance->getVisage(), SLOT(updateEnabled()));
|
appInstance->getVisage(), SLOT(updateEnabled()));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::GlowWhenSpeaking, 0, true);
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderSkeletonCollisionShapes);
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::ChatCircling, 0, false);
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderHeadCollisionShapes);
|
||||||
addCheckableActionToQMenuAndActionHash(avatarOptionsMenu, MenuOption::FocusIndicators, 0, false);
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderBoundingCollisionShapes);
|
||||||
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderLookAtVectors, 0, false);
|
||||||
QMenu* sixenseOptionsMenu = developerMenu->addMenu("Sixense Options");
|
addCheckableActionToQMenuAndActionHash(avatarDebugMenu, MenuOption::RenderFocusIndicator, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu, MenuOption::SixenseMouseInput, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu, MenuOption::SixenseLasers, 0, true);
|
QMenu* modelDebugMenu = developerMenu->addMenu("Models");
|
||||||
|
addCheckableActionToQMenuAndActionHash(modelDebugMenu, MenuOption::DisplayModelBounds, 0, false);
|
||||||
QMenu* handOptionsMenu = developerMenu->addMenu("Hand Options");
|
addCheckableActionToQMenuAndActionHash(modelDebugMenu, MenuOption::DisplayModelElementProxy, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(modelDebugMenu, MenuOption::DisplayModelElementChildProxies, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu,
|
|
||||||
|
QMenu* voxelOptionsMenu = developerMenu->addMenu("Voxels");
|
||||||
|
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::VoxelTextures);
|
||||||
|
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::AmbientOcclusion);
|
||||||
|
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DontFadeOnVoxelServerChanges);
|
||||||
|
addCheckableActionToQMenuAndActionHash(voxelOptionsMenu, MenuOption::DisableAutoAdjustLOD);
|
||||||
|
|
||||||
|
QMenu* handOptionsMenu = developerMenu->addMenu("Hands");
|
||||||
|
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlignForearmsWithWrists, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlternateIK, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::DisplayHands, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::DisplayHandTargets, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::ShowIKConstraints, 0, false);
|
||||||
|
|
||||||
|
QMenu* sixenseOptionsMenu = handOptionsMenu->addMenu("Sixense");
|
||||||
|
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu,
|
||||||
MenuOption::FilterSixense,
|
MenuOption::FilterSixense,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
appInstance->getSixenseManager(),
|
appInstance->getSixenseManager(),
|
||||||
SLOT(setFilter(bool)));
|
SLOT(setFilter(bool)));
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu,
|
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu,
|
||||||
MenuOption::LowVelocityFilter,
|
MenuOption::LowVelocityFilter,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
appInstance,
|
appInstance,
|
||||||
SLOT(setLowVelocityFilter(bool)));
|
SLOT(setLowVelocityFilter(bool)));
|
||||||
|
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu, MenuOption::SixenseMouseInput, 0, true);
|
||||||
|
addCheckableActionToQMenuAndActionHash(sixenseOptionsMenu, MenuOption::SixenseLasers, 0, false);
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::DisplayHands, 0, true);
|
QMenu* networkMenu = developerMenu->addMenu("Network");
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::DisplayHandTargets, 0, false);
|
addCheckableActionToQMenuAndActionHash(networkMenu, MenuOption::DisableNackPackets, 0, false);
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::HandsCollideWithSelf, 0, false);
|
addCheckableActionToQMenuAndActionHash(networkMenu,
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::ShowIKConstraints, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlignForearmsWithWrists, 0, true);
|
|
||||||
addCheckableActionToQMenuAndActionHash(handOptionsMenu, MenuOption::AlternateIK, 0, false);
|
|
||||||
|
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu, MenuOption::DisableNackPackets, 0, false);
|
|
||||||
addCheckableActionToQMenuAndActionHash(developerMenu,
|
|
||||||
MenuOption::DisableActivityLogger,
|
MenuOption::DisableActivityLogger,
|
||||||
0,
|
0,
|
||||||
false,
|
false,
|
||||||
|
@ -451,9 +447,7 @@ Menu::Menu() :
|
||||||
|
|
||||||
addActionToQMenuAndActionHash(developerMenu, MenuOption::WalletPrivateKey, 0, this, SLOT(changePrivateKey()));
|
addActionToQMenuAndActionHash(developerMenu, MenuOption::WalletPrivateKey, 0, this, SLOT(changePrivateKey()));
|
||||||
|
|
||||||
addDisabledActionAndSeparator(developerMenu, "Testing");
|
QMenu* timingMenu = developerMenu->addMenu("Timing and Stats");
|
||||||
|
|
||||||
QMenu* timingMenu = developerMenu->addMenu("Timing and Statistics Tools");
|
|
||||||
QMenu* perfTimerMenu = timingMenu->addMenu("Performance Timer");
|
QMenu* perfTimerMenu = timingMenu->addMenu("Performance Timer");
|
||||||
addCheckableActionToQMenuAndActionHash(perfTimerMenu, MenuOption::DisplayTimingDetails, 0, true);
|
addCheckableActionToQMenuAndActionHash(perfTimerMenu, MenuOption::DisplayTimingDetails, 0, true);
|
||||||
addCheckableActionToQMenuAndActionHash(perfTimerMenu, MenuOption::ExpandUpdateTiming, 0, false);
|
addCheckableActionToQMenuAndActionHash(perfTimerMenu, MenuOption::ExpandUpdateTiming, 0, false);
|
||||||
|
@ -465,8 +459,10 @@ Menu::Menu() :
|
||||||
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::TestPing, 0, true);
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::TestPing, 0, true);
|
||||||
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::FrameTimer);
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::FrameTimer);
|
||||||
addActionToQMenuAndActionHash(timingMenu, MenuOption::RunTimingTests, 0, this, SLOT(runTests()));
|
addActionToQMenuAndActionHash(timingMenu, MenuOption::RunTimingTests, 0, this, SLOT(runTests()));
|
||||||
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::PipelineWarnings);
|
||||||
|
addCheckableActionToQMenuAndActionHash(timingMenu, MenuOption::SuppressShortTimings);
|
||||||
|
|
||||||
QMenu* frustumMenu = developerMenu->addMenu("View Frustum Debugging Tools");
|
QMenu* frustumMenu = developerMenu->addMenu("View Frustum");
|
||||||
addCheckableActionToQMenuAndActionHash(frustumMenu, MenuOption::DisplayFrustum, Qt::SHIFT | Qt::Key_F);
|
addCheckableActionToQMenuAndActionHash(frustumMenu, MenuOption::DisplayFrustum, Qt::SHIFT | Qt::Key_F);
|
||||||
addActionToQMenuAndActionHash(frustumMenu,
|
addActionToQMenuAndActionHash(frustumMenu,
|
||||||
MenuOption::FrustumRenderMode,
|
MenuOption::FrustumRenderMode,
|
||||||
|
@ -476,11 +472,7 @@ Menu::Menu() :
|
||||||
updateFrustumRenderModeAction();
|
updateFrustumRenderModeAction();
|
||||||
|
|
||||||
|
|
||||||
QMenu* renderDebugMenu = developerMenu->addMenu("Render Debugging Tools");
|
QMenu* audioDebugMenu = developerMenu->addMenu("Audio");
|
||||||
addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::PipelineWarnings);
|
|
||||||
addCheckableActionToQMenuAndActionHash(renderDebugMenu, MenuOption::SuppressShortTimings);
|
|
||||||
|
|
||||||
QMenu* audioDebugMenu = developerMenu->addMenu("Audio Debugging Tools");
|
|
||||||
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,
|
addCheckableActionToQMenuAndActionHash(audioDebugMenu, MenuOption::AudioNoiseReduction,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
|
@ -493,7 +485,7 @@ Menu::Menu() :
|
||||||
appInstance->getAudio(),
|
appInstance->getAudio(),
|
||||||
SLOT(toggleAudioFilter()));
|
SLOT(toggleAudioFilter()));
|
||||||
|
|
||||||
QMenu* audioFilterMenu = audioDebugMenu->addMenu("Audio Filter Options");
|
QMenu* audioFilterMenu = audioDebugMenu->addMenu("Audio Filter");
|
||||||
addDisabledActionAndSeparator(audioFilterMenu, "Filter Response");
|
addDisabledActionAndSeparator(audioFilterMenu, "Filter Response");
|
||||||
{
|
{
|
||||||
QAction *flat = addCheckableActionToQMenuAndActionHash(audioFilterMenu, MenuOption::AudioFilterFlat,
|
QAction *flat = addCheckableActionToQMenuAndActionHash(audioFilterMenu, MenuOption::AudioFilterFlat,
|
||||||
|
@ -557,7 +549,7 @@ Menu::Menu() :
|
||||||
appInstance->getAudio(),
|
appInstance->getAudio(),
|
||||||
SLOT(toggleScopePause()));
|
SLOT(toggleScopePause()));
|
||||||
|
|
||||||
QMenu* audioScopeMenu = audioDebugMenu->addMenu("Audio Scope Options");
|
QMenu* audioScopeMenu = audioDebugMenu->addMenu("Audio Scope");
|
||||||
addDisabledActionAndSeparator(audioScopeMenu, "Display Frames");
|
addDisabledActionAndSeparator(audioScopeMenu, "Display Frames");
|
||||||
{
|
{
|
||||||
QAction *fiveFrames = addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopeFiveFrames,
|
QAction *fiveFrames = addCheckableActionToQMenuAndActionHash(audioScopeMenu, MenuOption::AudioScopeFiveFrames,
|
||||||
|
@ -648,13 +640,17 @@ Menu::Menu() :
|
||||||
appInstance->getAudio(),
|
appInstance->getAudio(),
|
||||||
SLOT(toggleStatsShowInjectedStreams()));
|
SLOT(toggleStatsShowInjectedStreams()));
|
||||||
|
|
||||||
|
connect(appInstance->getAudio(), SIGNAL(muteToggled()), this, SLOT(audioMuteToggled()));
|
||||||
|
|
||||||
|
QMenu* experimentalOptionsMenu = developerMenu->addMenu("Experimental");
|
||||||
|
addCheckableActionToQMenuAndActionHash(experimentalOptionsMenu, MenuOption::BuckyBalls, 0, false);
|
||||||
|
addCheckableActionToQMenuAndActionHash(experimentalOptionsMenu, MenuOption::StringHair, 0, false);
|
||||||
|
|
||||||
addActionToQMenuAndActionHash(developerMenu, MenuOption::PasteToVoxel,
|
addActionToQMenuAndActionHash(developerMenu, MenuOption::PasteToVoxel,
|
||||||
Qt::CTRL | Qt::SHIFT | Qt::Key_V,
|
Qt::CTRL | Qt::SHIFT | Qt::Key_V,
|
||||||
this,
|
this,
|
||||||
SLOT(pasteToVoxel()));
|
SLOT(pasteToVoxel()));
|
||||||
|
|
||||||
connect(appInstance->getAudio(), SIGNAL(muteToggled()), this, SLOT(audioMuteToggled()));
|
|
||||||
|
|
||||||
#ifndef Q_OS_MAC
|
#ifndef Q_OS_MAC
|
||||||
QMenu* helpMenu = addMenu("Help");
|
QMenu* helpMenu = addMenu("Help");
|
||||||
QAction* helpAction = helpMenu->addAction(MenuOption::AboutApp);
|
QAction* helpAction = helpMenu->addAction(MenuOption::AboutApp);
|
||||||
|
@ -1457,7 +1453,9 @@ void Menu::toggleConsole() {
|
||||||
|
|
||||||
void Menu::audioMuteToggled() {
|
void Menu::audioMuteToggled() {
|
||||||
QAction *muteAction = _actionHash.value(MenuOption::MuteAudio);
|
QAction *muteAction = _actionHash.value(MenuOption::MuteAudio);
|
||||||
muteAction->setChecked(Application::getInstance()->getAudio()->getMuted());
|
if (muteAction) {
|
||||||
|
muteAction->setChecked(Application::getInstance()->getAudio()->getMuted());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::bandwidthDetailsClosed() {
|
void Menu::bandwidthDetailsClosed() {
|
||||||
|
@ -1629,45 +1627,31 @@ void Menu::runTests() {
|
||||||
|
|
||||||
void Menu::updateFrustumRenderModeAction() {
|
void Menu::updateFrustumRenderModeAction() {
|
||||||
QAction* frustumRenderModeAction = _actionHash.value(MenuOption::FrustumRenderMode);
|
QAction* frustumRenderModeAction = _actionHash.value(MenuOption::FrustumRenderMode);
|
||||||
switch (_frustumDrawMode) {
|
if (frustumRenderModeAction) {
|
||||||
default:
|
switch (_frustumDrawMode) {
|
||||||
case FRUSTUM_DRAW_MODE_ALL:
|
default:
|
||||||
frustumRenderModeAction->setText("Render Mode - All");
|
case FRUSTUM_DRAW_MODE_ALL:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - All");
|
||||||
case FRUSTUM_DRAW_MODE_VECTORS:
|
break;
|
||||||
frustumRenderModeAction->setText("Render Mode - Vectors");
|
case FRUSTUM_DRAW_MODE_VECTORS:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - Vectors");
|
||||||
case FRUSTUM_DRAW_MODE_PLANES:
|
break;
|
||||||
frustumRenderModeAction->setText("Render Mode - Planes");
|
case FRUSTUM_DRAW_MODE_PLANES:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - Planes");
|
||||||
case FRUSTUM_DRAW_MODE_NEAR_PLANE:
|
break;
|
||||||
frustumRenderModeAction->setText("Render Mode - Near");
|
case FRUSTUM_DRAW_MODE_NEAR_PLANE:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - Near");
|
||||||
case FRUSTUM_DRAW_MODE_FAR_PLANE:
|
break;
|
||||||
frustumRenderModeAction->setText("Render Mode - Far");
|
case FRUSTUM_DRAW_MODE_FAR_PLANE:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - Far");
|
||||||
case FRUSTUM_DRAW_MODE_KEYHOLE:
|
break;
|
||||||
frustumRenderModeAction->setText("Render Mode - Keyhole");
|
case FRUSTUM_DRAW_MODE_KEYHOLE:
|
||||||
break;
|
frustumRenderModeAction->setText("Render Mode - Keyhole");
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Menu::addAvatarCollisionSubMenu(QMenu* overMenu) {
|
|
||||||
// add avatar collisions subMenu to overMenu
|
|
||||||
QMenu* subMenu = overMenu->addMenu("Collision Options");
|
|
||||||
|
|
||||||
Application* appInstance = Application::getInstance();
|
|
||||||
QObject* avatar = appInstance->getAvatar();
|
|
||||||
addCheckableActionToQMenuAndActionHash(subMenu, MenuOption::CollideWithEnvironment,
|
|
||||||
0, false, avatar, SLOT(updateCollisionGroups()));
|
|
||||||
addCheckableActionToQMenuAndActionHash(subMenu, MenuOption::CollideWithAvatars,
|
|
||||||
0, true, avatar, SLOT(updateCollisionGroups()));
|
|
||||||
addCheckableActionToQMenuAndActionHash(subMenu, MenuOption::CollideWithVoxels,
|
|
||||||
0, false, avatar, SLOT(updateCollisionGroups()));
|
|
||||||
addCheckableActionToQMenuAndActionHash(subMenu, MenuOption::CollideWithParticles,
|
|
||||||
0, true, avatar, SLOT(updateCollisionGroups()));
|
|
||||||
}
|
|
||||||
|
|
||||||
QAction* Menu::getActionFromName(const QString& menuName, QMenu* menu) {
|
QAction* Menu::getActionFromName(const QString& menuName, QMenu* menu) {
|
||||||
QList<QAction*> menuActions;
|
QList<QAction*> menuActions;
|
||||||
if (menu) {
|
if (menu) {
|
||||||
|
@ -1887,10 +1871,9 @@ void Menu::removeMenuItem(const QString& menu, const QString& menuitem) {
|
||||||
};
|
};
|
||||||
|
|
||||||
bool Menu::menuItemExists(const QString& menu, const QString& menuitem) {
|
bool Menu::menuItemExists(const QString& menu, const QString& menuitem) {
|
||||||
QMenu* menuObj = getMenu(menu);
|
|
||||||
QAction* menuItemAction = _actionHash.value(menuitem);
|
QAction* menuItemAction = _actionHash.value(menuitem);
|
||||||
if (menuObj && menuItemAction) {
|
if (menuItemAction) {
|
||||||
return true;
|
return (getMenu(menu) != NULL);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
|
@ -246,8 +246,6 @@ private:
|
||||||
|
|
||||||
void updateFrustumRenderModeAction();
|
void updateFrustumRenderModeAction();
|
||||||
|
|
||||||
void addAvatarCollisionSubMenu(QMenu* overMenu);
|
|
||||||
|
|
||||||
QAction* getActionFromName(const QString& menuName, QMenu* menu);
|
QAction* getActionFromName(const QString& menuName, QMenu* menu);
|
||||||
QMenu* getSubMenuFromName(const QString& menuName, QMenu* menu);
|
QMenu* getSubMenuFromName(const QString& menuName, QMenu* menu);
|
||||||
QMenu* getMenuParent(const QString& menuName, QString& finalMenuPart);
|
QMenu* getMenuParent(const QString& menuName, QString& finalMenuPart);
|
||||||
|
@ -346,8 +344,8 @@ namespace MenuOption {
|
||||||
const QString CascadedShadows = "Cascaded";
|
const QString CascadedShadows = "Cascaded";
|
||||||
const QString Chat = "Chat...";
|
const QString Chat = "Chat...";
|
||||||
const QString ChatCircling = "Chat Circling";
|
const QString ChatCircling = "Chat Circling";
|
||||||
const QString CollideAsRagdoll = "Collide As Ragdoll";
|
const QString CollideAsRagdoll = "Collide With Self (Ragdoll)";
|
||||||
const QString CollideWithAvatars = "Collide With Avatars";
|
const QString CollideWithAvatars = "Collide With Other Avatars";
|
||||||
const QString CollideWithEnvironment = "Collide With World Boundaries";
|
const QString CollideWithEnvironment = "Collide With World Boundaries";
|
||||||
const QString CollideWithParticles = "Collide With Particles";
|
const QString CollideWithParticles = "Collide With Particles";
|
||||||
const QString CollideWithVoxels = "Collide With Voxels";
|
const QString CollideWithVoxels = "Collide With Voxels";
|
||||||
|
@ -359,8 +357,8 @@ namespace MenuOption {
|
||||||
const QString DisableAutoAdjustLOD = "Disable Automatically Adjusting LOD";
|
const QString DisableAutoAdjustLOD = "Disable Automatically Adjusting LOD";
|
||||||
const QString DisableNackPackets = "Disable NACK Packets";
|
const QString DisableNackPackets = "Disable NACK Packets";
|
||||||
const QString DisplayFrustum = "Display Frustum";
|
const QString DisplayFrustum = "Display Frustum";
|
||||||
const QString DisplayHands = "Display Hands";
|
const QString DisplayHands = "Show Hand Info";
|
||||||
const QString DisplayHandTargets = "Display Hand Targets";
|
const QString DisplayHandTargets = "Show Hand Targets";
|
||||||
const QString DisplayModelBounds = "Display Model Bounds";
|
const QString DisplayModelBounds = "Display Model Bounds";
|
||||||
const QString DisplayModelElementChildProxies = "Display Model Element Children";
|
const QString DisplayModelElementChildProxies = "Display Model Element Children";
|
||||||
const QString DisplayModelElementProxy = "Display Model Element Bounds";
|
const QString DisplayModelElementProxy = "Display Model Element Bounds";
|
||||||
|
@ -380,7 +378,6 @@ namespace MenuOption {
|
||||||
const QString Faceshift = "Faceshift";
|
const QString Faceshift = "Faceshift";
|
||||||
const QString FilterSixense = "Smooth Sixense Movement";
|
const QString FilterSixense = "Smooth Sixense Movement";
|
||||||
const QString FirstPerson = "First Person";
|
const QString FirstPerson = "First Person";
|
||||||
const QString FocusIndicators = "Focus Indicators";
|
|
||||||
const QString FrameTimer = "Show Timer";
|
const QString FrameTimer = "Show Timer";
|
||||||
const QString FrustumRenderMode = "Render Mode";
|
const QString FrustumRenderMode = "Render Mode";
|
||||||
const QString Fullscreen = "Fullscreen";
|
const QString Fullscreen = "Fullscreen";
|
||||||
|
@ -391,7 +388,6 @@ namespace MenuOption {
|
||||||
const QString GoToDomain = "Go To Domain...";
|
const QString GoToDomain = "Go To Domain...";
|
||||||
const QString GoTo = "Go To...";
|
const QString GoTo = "Go To...";
|
||||||
const QString GoToLocation = "Go To Location...";
|
const QString GoToLocation = "Go To Location...";
|
||||||
const QString HandsCollideWithSelf = "Collide With Self";
|
|
||||||
const QString HeadMouse = "Head Mouse";
|
const QString HeadMouse = "Head Mouse";
|
||||||
const QString IncreaseAvatarSize = "Increase Avatar Size";
|
const QString IncreaseAvatarSize = "Increase Avatar Size";
|
||||||
const QString IncreaseVoxelSize = "Increase Voxel Size";
|
const QString IncreaseVoxelSize = "Increase Voxel Size";
|
||||||
|
@ -401,7 +397,6 @@ namespace MenuOption {
|
||||||
const QString Login = "Login";
|
const QString Login = "Login";
|
||||||
const QString Log = "Log";
|
const QString Log = "Log";
|
||||||
const QString Logout = "Logout";
|
const QString Logout = "Logout";
|
||||||
const QString LookAtVectors = "Look-at Vectors";
|
|
||||||
const QString LowVelocityFilter = "Low Velocity Filter";
|
const QString LowVelocityFilter = "Low Velocity Filter";
|
||||||
const QString MetavoxelEditor = "Metavoxel Editor...";
|
const QString MetavoxelEditor = "Metavoxel Editor...";
|
||||||
const QString Metavoxels = "Metavoxels";
|
const QString Metavoxels = "Metavoxels";
|
||||||
|
@ -421,13 +416,15 @@ namespace MenuOption {
|
||||||
const QString Pair = "Pair";
|
const QString Pair = "Pair";
|
||||||
const QString Particles = "Particles";
|
const QString Particles = "Particles";
|
||||||
const QString PasteToVoxel = "Paste to Voxel...";
|
const QString PasteToVoxel = "Paste to Voxel...";
|
||||||
const QString PipelineWarnings = "Show Render Pipeline Warnings";
|
const QString PipelineWarnings = "Log Render Pipeline Warnings";
|
||||||
const QString Preferences = "Preferences...";
|
const QString Preferences = "Preferences...";
|
||||||
const QString Quit = "Quit";
|
const QString Quit = "Quit";
|
||||||
const QString ReloadAllScripts = "Reload All Scripts";
|
const QString ReloadAllScripts = "Reload All Scripts";
|
||||||
const QString RenderBoundingCollisionShapes = "Bounding Collision Shapes";
|
const QString RenderBoundingCollisionShapes = "Show Bounding Collision Shapes";
|
||||||
const QString RenderHeadCollisionShapes = "Head Collision Shapes";
|
const QString RenderFocusIndicator = "Show Eye Focus";
|
||||||
const QString RenderSkeletonCollisionShapes = "Skeleton Collision Shapes";
|
const QString RenderHeadCollisionShapes = "Show Head Collision Shapes";
|
||||||
|
const QString RenderLookAtVectors = "Show Look-at Vectors";
|
||||||
|
const QString RenderSkeletonCollisionShapes = "Show Skeleton Collision Shapes";
|
||||||
const QString ResetAvatarSize = "Reset Avatar Size";
|
const QString ResetAvatarSize = "Reset Avatar Size";
|
||||||
const QString RunningScripts = "Running Scripts";
|
const QString RunningScripts = "Running Scripts";
|
||||||
const QString RunTimingTests = "Run Timing Tests";
|
const QString RunTimingTests = "Run Timing Tests";
|
||||||
|
@ -459,7 +456,7 @@ namespace MenuOption {
|
||||||
const QString VoxelMode = "Cycle Voxel Mode";
|
const QString VoxelMode = "Cycle Voxel Mode";
|
||||||
const QString Voxels = "Voxels";
|
const QString Voxels = "Voxels";
|
||||||
const QString VoxelTextures = "Voxel Textures";
|
const QString VoxelTextures = "Voxel Textures";
|
||||||
const QString WalletPrivateKey = "Wallet Private Key";
|
const QString WalletPrivateKey = "Wallet Private Key...";
|
||||||
}
|
}
|
||||||
|
|
||||||
void sendFakeEnterEvent();
|
void sendFakeEnterEvent();
|
||||||
|
|
|
@ -349,7 +349,7 @@ void Avatar::render(const glm::vec3& cameraPosition, RenderMode renderMode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this is the avatar being looked at, render a little ball above their head
|
// If this is the avatar being looked at, render a little ball above their head
|
||||||
if (_isLookAtTarget && Menu::getInstance()->isOptionChecked(MenuOption::FocusIndicators)) {
|
if (_isLookAtTarget && Menu::getInstance()->isOptionChecked(MenuOption::RenderFocusIndicator)) {
|
||||||
const float LOOK_AT_INDICATOR_RADIUS = 0.03f;
|
const float LOOK_AT_INDICATOR_RADIUS = 0.03f;
|
||||||
const float LOOK_AT_INDICATOR_OFFSET = 0.22f;
|
const float LOOK_AT_INDICATOR_OFFSET = 0.22f;
|
||||||
const float LOOK_AT_INDICATOR_COLOR[] = { 0.8f, 0.0f, 0.0f, 0.75f };
|
const float LOOK_AT_INDICATOR_COLOR[] = { 0.8f, 0.0f, 0.0f, 0.75f };
|
||||||
|
|
|
@ -82,7 +82,7 @@ void AvatarManager::updateOtherAvatars(float deltaTime) {
|
||||||
void AvatarManager::renderAvatars(Avatar::RenderMode renderMode, bool selfAvatarOnly) {
|
void AvatarManager::renderAvatars(Avatar::RenderMode renderMode, bool selfAvatarOnly) {
|
||||||
PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
|
PerformanceWarning warn(Menu::getInstance()->isOptionChecked(MenuOption::PipelineWarnings),
|
||||||
"Application::renderAvatars()");
|
"Application::renderAvatars()");
|
||||||
bool renderLookAtVectors = Menu::getInstance()->isOptionChecked(MenuOption::LookAtVectors);
|
bool renderLookAtVectors = Menu::getInstance()->isOptionChecked(MenuOption::RenderLookAtVectors);
|
||||||
|
|
||||||
glm::vec3 cameraPosition = Application::getInstance()->getCamera()->getPosition();
|
glm::vec3 cameraPosition = Application::getInstance()->getCamera()->getPosition();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue