diff options
-rw-r--r-- | doc/contributions.txt | 3 | ||||
-rw-r--r-- | indra/newview/llagent.cpp | 5 | ||||
-rw-r--r-- | indra/newview/llagent.h | 2 | ||||
-rw-r--r-- | indra/newview/llviewermenu.cpp | 23 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_attachment_self.xml | 13 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_avatar_self.xml | 12 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml | 10 |
7 files changed, 62 insertions, 6 deletions
diff --git a/doc/contributions.txt b/doc/contributions.txt index f451c5732e..0a0123b507 100644 --- a/doc/contributions.txt +++ b/doc/contributions.txt @@ -127,6 +127,8 @@ Asuka Neely VWR-8179 Balp Allen VWR-4157 +Be Holder + SNOW-397 Benja Kepler VWR-746 Biancaluce Robbiani @@ -153,6 +155,7 @@ Boroondas Gupte SNOW-503 SNOW-510 SNOW-527 + SNOW-610 SNOW-624 VWR-233 WEB-262 diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 37cd289b1b..fe7e883d83 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -827,6 +827,11 @@ LLVector3d LLAgent::getPosGlobalFromAgent(const LLVector3 &pos_agent) const return pos_agent_d + mAgentOriginGlobal; } +void LLAgent::sitDown() +{ + setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); +} + //----------------------------------------------------------------------------- // resetAxes() diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 0d95683a98..c643cef78f 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -345,6 +345,8 @@ private: //-------------------------------------------------------------------- public: void standUp(); + /// @brief ground-sit at agent's current position + void sitDown(); //-------------------------------------------------------------------- // Busy diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index c275068028..daeace0ec5 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -3383,8 +3383,21 @@ class LLSelfStandUp : public view_listener_t bool enable_standup_self() { - bool new_value = isAgentAvatarValid() && gAgentAvatarp->isSitting(); - return new_value; + return isAgentAvatarValid() && gAgentAvatarp->isSitting(); +} + +class LLSelfSitDown : public view_listener_t + { + bool handleEvent(const LLSD& userdata) + { + gAgent.sitDown(); + return true; + } + }; + +bool enable_sitdown_self() +{ + return isAgentAvatarValid() && !gAgentAvatarp->isSitting() && !gAgent.getFlying(); } // Used from the login screen to aid in UI work on side tray @@ -8100,11 +8113,13 @@ void initialize_menus() // Admin top level view_listener_t::addMenu(new LLAdminOnSaveState(), "Admin.OnSaveState"); - // Self pie menu + // Self context menu view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp"); + enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self)); + view_listener_t::addMenu(new LLSelfSitDown(), "Self.SitDown"); + enable.add("Self.EnableSitDown", boost::bind(&enable_sitdown_self)); view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments"); - enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self)); view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments"); // we don't use boost::bind directly to delay side tray construction diff --git a/indra/newview/skins/default/xui/en/menu_attachment_self.xml b/indra/newview/skins/default/xui/en/menu_attachment_self.xml index e2348375d5..84e81397be 100644 --- a/indra/newview/skins/default/xui/en/menu_attachment_self.xml +++ b/indra/newview/skins/default/xui/en/menu_attachment_self.xml @@ -23,7 +23,7 @@ <menu_item_call.on_enable function="Self.EnableStandUp" /> </menu_item_call--> - <menu_item_call + <menu_item_call enabled="false" label="Edit" layout="topleft" @@ -46,6 +46,17 @@ <menu_item_separator layout="topleft" /> + <menu_item_call + label="Sit Down" + layout="topleft" + name="Sit Down Here"> + <menu_item_call.on_click + function="Self.SitDown" + parameter="" /> + <menu_item_call.on_enable + function="Self.EnableSitDown" /> + </menu_item_call> + <menu_item_call label="Stand Up" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/menu_avatar_self.xml b/indra/newview/skins/default/xui/en/menu_avatar_self.xml index d5b993152a..9059745f46 100644 --- a/indra/newview/skins/default/xui/en/menu_avatar_self.xml +++ b/indra/newview/skins/default/xui/en/menu_avatar_self.xml @@ -2,7 +2,17 @@ <context_menu layout="topleft" name="Self Pie"> - <menu_item_call + <menu_item_call + label="Sit Down" + layout="topleft" + name="Sit Down Here"> + <menu_item_call.on_click + function="Self.SitDown" + parameter="" /> + <menu_item_call.on_enable + function="Self.EnableSitDown" /> + </menu_item_call> + <menu_item_call label="Stand Up" layout="topleft" name="Stand Up"> diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml index ea18e02ca1..30c2cde552 100644 --- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml +++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml @@ -6,6 +6,16 @@ visible="false" name="Gear Menu"> <menu_item_call + label="Sit Down" + enabled="true" + name="sit_down_here"> + <menu_item_call.on_click + function="Self.SitDown" + parameter="" /> + <menu_item_call.on_visible + function="Self.EnableSitDown" /> + </menu_item_call> + <menu_item_call label="Stand Up" enabled="true" name="stand_up"> |