summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r--indra/newview/llviewermenu.cpp134
1 files changed, 32 insertions, 102 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index a6b05381bb..73fda339b5 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -90,7 +90,6 @@
#include "lltoolface.h"
#include "llhints.h"
#include "llhudeffecttrail.h"
-#include "llhudeffectresetskeleton.h"
#include "llhudmanager.h"
#include "llimview.h"
#include "llinventorybridge.h"
@@ -296,6 +295,7 @@ void force_error_coroutine_crash();
void force_error_coroprocedure_crash();
void force_error_work_queue_crash();
void force_error_thread_crash();
+void force_exception_thread_crash();
void handle_force_delete();
void print_object_info();
@@ -1853,6 +1853,7 @@ class LLAdvancedAppearanceToXML : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
+ std::string emptyname;
LLViewerObject *obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
LLVOAvatar *avatar = NULL;
if (obj)
@@ -1879,7 +1880,7 @@ class LLAdvancedAppearanceToXML : public view_listener_t
}
if (avatar)
{
- avatar->dumpArchetypeXML(LLStringUtil::null);
+ avatar->dumpArchetypeXML(emptyname);
}
return true;
}
@@ -2676,6 +2677,15 @@ class LLAdvancedForceErrorThreadCrash : public view_listener_t
}
};
+class LLAdvancedForceExceptionThreadCrash : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ force_exception_thread_crash();
+ return true;
+ }
+};
+
class LLAdvancedForceErrorDisconnectViewer : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -4506,7 +4516,7 @@ void handle_object_sit(LLViewerObject* object, const LLVector3& offset)
{
// get object selection offset
- if (object && object->getPCode() == LL_PCODE_VOLUME)
+ if (gAgent.isAllowedToSit() && object && object->getPCode() == LL_PCODE_VOLUME)
{
gMessageSystem->newMessageFast(_PREHASH_AgentRequestSit);
@@ -5647,38 +5657,6 @@ class LLToolsEnablePathfindingRebakeRegion : public view_listener_t
}
};
-class LLToolsCheckSelectionLODMode : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- std::string param = userdata.asString();
- static LLCachedControl<S32> debug_selection_lods(gSavedSettings, "DebugSelectionLODs", 0);
- if ("default" == param)
- {
- return debug_selection_lods() < 0;
- }
- else if ("high" == param)
- {
- return debug_selection_lods() == 3;
- }
- else if ("medium" == param)
- {
- return debug_selection_lods() == 2;
- }
- else if ("low" == param)
- {
- return debug_selection_lods() == 1;
- }
- else if ("lowest" == param)
- {
- return debug_selection_lods() == 0;
- }
-
- return false;
- }
-};
-
-
// Round the position of all root objects to the grid
class LLToolsSnapObjectXY : public view_listener_t
{
@@ -6705,18 +6683,8 @@ class LLAvatarResetSkeleton : public view_listener_t
{
if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))
{
- if(avatar->getID() == gAgentID)
- {
- LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true);
- effectp->setSourceObject(gAgentAvatarp);
- effectp->setTargetObject((LLViewerObject*)avatar);
- effectp->setResetAnimations(false);
- }
- else
- {
avatar->resetSkeleton(false);
}
- }
return true;
}
};
@@ -6739,18 +6707,8 @@ class LLAvatarResetSkeletonAndAnimations : public view_listener_t
{
if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))
{
- if(avatar->getID() == gAgentID)
- {
- LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true);
- effectp->setSourceObject(gAgentAvatarp);
- effectp->setTargetObject((LLViewerObject*)avatar);
- effectp->setResetAnimations(true);
- }
- else
- {
avatar->resetSkeleton(true);
}
- }
return true;
}
};
@@ -6777,24 +6735,11 @@ class LLAvatarResetSelfSkeletonAndAnimations : public view_listener_t
{
if (LLVOAvatar* avatar = find_avatar_from_object(LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()))
{
- if(avatar->getID() == gAgentID)
- {
- LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true);
- effectp->setSourceObject(gAgentAvatarp);
- effectp->setTargetObject((LLViewerObject*)avatar);
- effectp->setResetAnimations(true);
- }
- else
- {
- avatar->resetSkeleton(true);
- }
+ avatar->resetSkeleton(true);
}
else
{
- LLHUDEffectResetSkeleton* effectp = (LLHUDEffectResetSkeleton*)LLHUDManager::getInstance()->createViewerEffect(LLHUDObject::LL_HUD_EFFECT_RESET_SKELETON, true);
- effectp->setSourceObject(gAgentAvatarp);
- effectp->setTargetObject(gAgentAvatarp);
- effectp->setResetAnimations(true);
+ gAgentAvatarp->resetSkeleton(true);
}
return true;
}
@@ -7765,6 +7710,7 @@ bool enable_detach(const LLSD&)
// Only enable detach if all faces of object are selected
if (!object ||
!object->isAttachment() ||
+ object->isLocked() ||
!LLSelectMgr::getInstance()->getSelection()->contains(object,SELECT_ALL_TES ))
{
return false;
@@ -8640,36 +8586,6 @@ class LLToolsSelectBySurrounding : public view_listener_t
}
};
-class LLToolsSelectionLODMode : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- std::string param = userdata.asString();
- if ("default" == param)
- {
- gSavedSettings.setS32("DebugSelectionLODs", -1);
- }
- else if ("high" == param)
- {
- gSavedSettings.setS32("DebugSelectionLODs", 3);
- }
- else if ("medium" == param)
- {
- gSavedSettings.setS32("DebugSelectionLODs", 2);
- }
- else if ("low" == param)
- {
- gSavedSettings.setS32("DebugSelectionLODs", 1);
- }
- else if ("lowest" == param)
- {
- gSavedSettings.setS32("DebugSelectionLODs", 0);
- }
-
- return true;
- }
-};
-
class LLToolsShowHiddenSelection : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -8908,6 +8824,11 @@ void force_error_thread_crash()
LLAppViewer::instance()->forceErrorThreadCrash();
}
+void force_exception_thread_crash()
+{
+ LLAppViewer::instance()->forceExceptionThreadCrash();
+}
+
class LLToolsUseSelectionForGrid : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -9036,6 +8957,13 @@ void handle_report_bug(const LLSD& param)
LLWeb::loadURLExternal(url);
}
+#ifdef LL_DISCORD
+void handle_discord_social(const LLSD& param)
+{
+ LLStartUp::handleDiscordSocial();
+}
+#endif
+
void handle_buy_currency_test()
{
std::string url =
@@ -9904,7 +9832,6 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsSelectInvisibleObjects(), "Tools.SelectInvisibleObjects");
view_listener_t::addMenu(new LLToolsSelectReflectionProbes(), "Tools.SelectReflectionProbes");
view_listener_t::addMenu(new LLToolsSelectBySurrounding(), "Tools.SelectBySurrounding");
- view_listener_t::addMenu(new LLToolsSelectionLODMode(), "Tools.SelectionLODMode");
view_listener_t::addMenu(new LLToolsShowHiddenSelection(), "Tools.ShowHiddenSelection");
view_listener_t::addMenu(new LLToolsShowSelectionLightRadius(), "Tools.ShowSelectionLightRadius");
view_listener_t::addMenu(new LLToolsEditLinkedParts(), "Tools.EditLinkedParts");
@@ -9937,7 +9864,6 @@ void initialize_menus()
view_listener_t::addMenu(new LLToolsEnablePathfindingView(), "Tools.EnablePathfindingView");
view_listener_t::addMenu(new LLToolsDoPathfindingRebakeRegion(), "Tools.DoPathfindingRebakeRegion");
view_listener_t::addMenu(new LLToolsEnablePathfindingRebakeRegion(), "Tools.EnablePathfindingRebakeRegion");
- view_listener_t::addMenu(new LLToolsCheckSelectionLODMode(), "Tools.ToolsCheckSelectionLODMode");
// Help menu
// most items use the ShowFloater method
@@ -10016,6 +9942,9 @@ void initialize_menus()
commit.add("Advanced.WebContentTest", boost::bind(&handle_web_content_test, _2)); // this one opens the Web Content floater
commit.add("Advanced.ShowURL", boost::bind(&handle_show_url, _2));
commit.add("Advanced.ReportBug", boost::bind(&handle_report_bug, _2));
+#ifdef LL_DISCORD
+ commit.add("Advanced.DiscordSocial", boost::bind(&handle_discord_social, _2));
+#endif
view_listener_t::addMenu(new LLAdvancedBuyCurrencyTest(), "Advanced.BuyCurrencyTest");
view_listener_t::addMenu(new LLAdvancedDumpSelectMgr(), "Advanced.DumpSelectMgr");
view_listener_t::addMenu(new LLAdvancedDumpInventory(), "Advanced.DumpInventory");
@@ -10115,6 +10044,7 @@ void initialize_menus()
view_listener_t::addMenu(new LLAdvancedForceErrorCoroprocedureCrash(), "Advanced.ForceErrorCoroprocedureCrash");
view_listener_t::addMenu(new LLAdvancedForceErrorWorkQueueCrash(), "Advanced.ForceErrorWorkQueueCrash");
view_listener_t::addMenu(new LLAdvancedForceErrorThreadCrash(), "Advanced.ForceErrorThreadCrash");
+ view_listener_t::addMenu(new LLAdvancedForceExceptionThreadCrash(), "Advanced.ForceExceptionThreadCrash");
view_listener_t::addMenu(new LLAdvancedForceErrorDisconnectViewer(), "Advanced.ForceErrorDisconnectViewer");
// Advanced (toplevel)