diff options
| -rw-r--r-- | indra/newview/llbottomtray.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 39 | 
2 files changed, 42 insertions, 0 deletions
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp index 35e4548483..da636068dc 100644 --- a/indra/newview/llbottomtray.cpp +++ b/indra/newview/llbottomtray.cpp @@ -38,7 +38,9 @@  #include "lltexteditor.h"  // newview includes +#include "llagent.h"  #include "llagentcamera.h" +#include "llavataractions.h"  #include "llchiclet.h"  #include "llfloatercamera.h"  #include "llhints.h" @@ -812,6 +814,7 @@ void LLBottomTray::draw()  		LLRect rect = mLandingTab->calcScreenRect();  		mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h);  	} +	getChild<LLButton>("show_profile_btn")->setToggleState(LLAvatarActions::profileVisible(gAgent.getID()));  }  bool LLBottomTray::onContextMenuItemEnabled(const LLSD& userdata) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 7cc04e0338..dd6b034dc8 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -5788,6 +5788,44 @@ class LLShowAgentProfile : public view_listener_t  	}  }; +class LLToggleAgentProfile : public view_listener_t +{ +	bool handleEvent(const LLSD& userdata) +	{ +		LLUUID agent_id; +		if (userdata.asString() == "agent") +		{ +			agent_id = gAgent.getID(); +		} +		else if (userdata.asString() == "hit object") +		{ +			LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); +			if (objectp) +			{ +				agent_id = objectp->getID(); +			} +		} +		else +		{ +			agent_id = userdata.asUUID(); +		} + +		LLVOAvatar* avatar = find_avatar_from_object(agent_id); +		if (avatar) +		{ +			if (!LLAvatarActions::profileVisible(avatar->getID())) +			{ +				LLAvatarActions::showProfile(avatar->getID()); +			} +			else +			{ +				LLAvatarActions::hideProfile(avatar->getID()); +			} +		} +		return true; +	} +}; +  class LLLandEdit : public view_listener_t  {  	bool handleEvent(const LLSD& userdata) @@ -8184,6 +8222,7 @@ void initialize_menus()  	view_listener_t::addMenu(new LLShowHelp(), "ShowHelp");  	view_listener_t::addMenu(new LLPromptShowURL(), "PromptShowURL");  	view_listener_t::addMenu(new LLShowAgentProfile(), "ShowAgentProfile"); +	view_listener_t::addMenu(new LLToggleAgentProfile(), "ToggleAgentProfile");  	view_listener_t::addMenu(new LLToggleControl(), "ToggleControl");  	view_listener_t::addMenu(new LLCheckControl(), "CheckControl");  	view_listener_t::addMenu(new LLGoToObject(), "GoToObject");  | 
