summaryrefslogtreecommitdiff
path: root/indra/newview/llinspectavatar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llinspectavatar.cpp')
-rw-r--r--indra/newview/llinspectavatar.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index 3a41aebf28..14bc4376fe 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -51,6 +51,7 @@
#include "llviewermenu.h"
#include "llvoiceclient.h"
#include "llviewerobjectlist.h"
+#include "lltransientfloatermgr.h"
// Linden libraries
#include "llfloater.h"
@@ -71,7 +72,7 @@ class LLFetchAvatarData;
// Avatar Inspector, a small information window used when clicking
// on avatar names in the 2D UI and in the ambient inspector widget for
// the 3D world.
-class LLInspectAvatar : public LLInspect
+class LLInspectAvatar : public LLInspect, LLTransientFloater
{
friend class LLFloaterReg;
@@ -97,6 +98,8 @@ public:
// gear menu is not open
/* virtual */ void onMouseLeave(S32 x, S32 y, MASK mask);
+ virtual LLTransientFloaterMgr::ETransientGroup getGroup() { return LLTransientFloaterMgr::GLOBAL; }
+
private:
// Make network requests for all the data to display in this view.
// Used on construction and if avatar id changes.
@@ -120,6 +123,7 @@ private:
void onClickTeleport();
void onClickInviteToGroup();
void onClickPay();
+ void onClickShare();
void onToggleMute();
void onClickReport();
void onClickFreeze();
@@ -213,6 +217,7 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
mCommitCallbackRegistrar.add("InspectAvatar.Teleport", boost::bind(&LLInspectAvatar::onClickTeleport, this));
mCommitCallbackRegistrar.add("InspectAvatar.InviteToGroup", boost::bind(&LLInspectAvatar::onClickInviteToGroup, this));
mCommitCallbackRegistrar.add("InspectAvatar.Pay", boost::bind(&LLInspectAvatar::onClickPay, this));
+ mCommitCallbackRegistrar.add("InspectAvatar.Share", boost::bind(&LLInspectAvatar::onClickShare, this));
mCommitCallbackRegistrar.add("InspectAvatar.ToggleMute", boost::bind(&LLInspectAvatar::onToggleMute, this));
mCommitCallbackRegistrar.add("InspectAvatar.Freeze",
boost::bind(&LLInspectAvatar::onClickFreeze, this));
@@ -235,6 +240,9 @@ LLInspectAvatar::LLInspectAvatar(const LLSD& sd)
// can't make the properties request until the widgets are constructed
// as it might return immediately, so do it in postBuild.
+
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::GLOBAL, this);
+ LLTransientFloater::init(this);
}
LLInspectAvatar::~LLInspectAvatar()
@@ -243,6 +251,8 @@ LLInspectAvatar::~LLInspectAvatar()
// view
delete mPropertiesRequest;
mPropertiesRequest = NULL;
+
+ LLTransientFloaterMgr::getInstance()->removeControlView(this);
}
/*virtual*/
@@ -393,11 +403,18 @@ void LLInspectAvatar::onMouseLeave(S32 x, S32 y, MASK mask)
{
LLMenuGL* gear_menu = getChild<LLMenuButton>("gear_btn")->getMenu();
LLMenuGL* gear_menu_self = getChild<LLMenuButton>("gear_self_btn")->getMenu();
- if ( !(gear_menu && gear_menu->getVisible()) &&
- !(gear_menu_self && gear_menu_self->getVisible()))
+ if ( gear_menu && gear_menu->getVisible() &&
+ gear_menu_self && gear_menu_self->getVisible() )
{
- mOpenTimer.unpause();
+ return;
}
+
+ if(childHasVisiblePopupMenu())
+ {
+ return;
+ }
+
+ mOpenTimer.unpause();
}
void LLInspectAvatar::updateModeratorPanel()
@@ -671,6 +688,12 @@ void LLInspectAvatar::onClickPay()
closeFloater();
}
+void LLInspectAvatar::onClickShare()
+{
+ LLAvatarActions::share(mAvatarID);
+ closeFloater();
+}
+
void LLInspectAvatar::onToggleMute()
{
LLMute mute(mAvatarID, mAvatarName, LLMute::AGENT);