FIRE-12344: Added avatar mark options to Firestorm radar
parent
4ae0e55807
commit
ccfc7e249a
|
|
@ -39,6 +39,7 @@
|
|||
#include "llagentdata.h" // for gAgentID
|
||||
#include "llavataractions.h"
|
||||
#include "llcallingcard.h" // for LLAvatarTracker
|
||||
#include "llnetmap.h"
|
||||
#include "llviewermenu.h" // for gMenuHolder
|
||||
#include "rlvhandler.h"
|
||||
|
||||
|
|
@ -85,6 +86,9 @@ LLContextMenu* FSRadarMenu::createMenu()
|
|||
registrar.add("Avatar.AddToContactSet", boost::bind(&FSRadarMenu::addToContactSet, this));
|
||||
registrar.add("Nearby.People.TeleportToAvatar", boost::bind(&FSRadarMenu::teleportToAvatar, this));
|
||||
registrar.add("Nearby.People.TrackAvatar", boost::bind(&FSRadarMenu::onTrackAvatarMenuItemClick, this));
|
||||
registrar.add("Nearby.People.SetAvatarMarkColor", boost::bind(&LLNetMap::setAvatarMarkColor, id, _2));
|
||||
registrar.add("Nearby.People.ClearAvatarMarkColor", boost::bind(&LLNetMap::clearAvatarMarkColor, id));
|
||||
registrar.add("Nearby.People.ClearAllAvatarMarkColors", boost::bind(&LLNetMap::clearAvatarMarkColors ));
|
||||
|
||||
enable_registrar.add("Avatar.EnableItem", boost::bind(&FSRadarMenu::enableContextMenuItem, this, _2));
|
||||
enable_registrar.add("Avatar.CheckItem", boost::bind(&FSRadarMenu::checkContextMenuItem, this, _2));
|
||||
|
|
@ -119,6 +123,9 @@ LLContextMenu* FSRadarMenu::createMenu()
|
|||
registrar.add("Avatar.Derender", boost::bind(&LLAvatarActions::derenderMultiple, mUUIDs, false));
|
||||
registrar.add("Avatar.DerenderPermanent", boost::bind(&LLAvatarActions::derenderMultiple, mUUIDs, true));
|
||||
registrar.add("Avatar.AddToContactSet", boost::bind(&FSRadarMenu::addToContactSet, this));
|
||||
registrar.add("Nearby.People.SetAvatarMarkColor", boost::bind(&LLNetMap::setAvatarMarkColors, mUUIDs, _2));
|
||||
registrar.add("Nearby.People.ClearAvatarMarkColor", boost::bind(&LLNetMap::clearAvatarMarkColors, mUUIDs));
|
||||
registrar.add("Nearby.People.ClearAllAvatarMarkColors", boost::bind(&LLNetMap::clearAvatarMarkColors ));
|
||||
|
||||
enable_registrar.add("Avatar.EnableItem", boost::bind(&FSRadarMenu::enableContextMenuItem, this, _2));
|
||||
enable_registrar.add("Avatar.VisibleFreezeEject", boost::bind(&LLAvatarActions::canLandFreezeOrEjectMultiple, mUUIDs, false));
|
||||
|
|
|
|||
|
|
@ -1718,31 +1718,20 @@ void LLNetMap::handleZoom(const LLSD& userdata)
|
|||
// <FS:Ansariel> Mark avatar feature
|
||||
void LLNetMap::handleMark(const LLSD& userdata)
|
||||
{
|
||||
// Use the name as color definition name from colors.xml
|
||||
LLColor4 color = LLUIColorTable::instance().getColor(userdata.asString(), LLColor4::green);
|
||||
for (uuid_vec_t::iterator it = mClosestAgentsRightClick.begin(); it != mClosestAgentsRightClick.end(); ++it)
|
||||
{
|
||||
sAvatarMarksMap[*it] = color;
|
||||
}
|
||||
setAvatarMarkColors(mClosestAgentsRightClick, userdata);
|
||||
}
|
||||
|
||||
void LLNetMap::handleClearMark()
|
||||
{
|
||||
for (uuid_vec_t::iterator it = mClosestAgentsRightClick.begin(); it != mClosestAgentsRightClick.end(); ++it)
|
||||
{
|
||||
avatar_marks_map_t::iterator found = sAvatarMarksMap.find(*it);
|
||||
if (found != sAvatarMarksMap.end())
|
||||
{
|
||||
sAvatarMarksMap.erase(found);
|
||||
}
|
||||
}
|
||||
clearAvatarMarkColors(mClosestAgentsRightClick);
|
||||
}
|
||||
|
||||
void LLNetMap::handleClearMarks()
|
||||
{
|
||||
sAvatarMarksMap.clear();
|
||||
clearAvatarMarkColors();
|
||||
}
|
||||
|
||||
// static
|
||||
bool LLNetMap::getAvatarMarkColor(const LLUUID& avatar_id, LLColor4& color)
|
||||
{
|
||||
avatar_marks_map_t::iterator found = sAvatarMarksMap.find(avatar_id);
|
||||
|
|
@ -1754,6 +1743,52 @@ bool LLNetMap::getAvatarMarkColor(const LLUUID& avatar_id, LLColor4& color)
|
|||
return false;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLNetMap::setAvatarMarkColor(const LLUUID& avatar_id, const LLSD& color)
|
||||
{
|
||||
uuid_vec_t ids;
|
||||
ids.push_back(avatar_id);
|
||||
setAvatarMarkColors(ids, color);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLNetMap::setAvatarMarkColors(const uuid_vec_t& avatar_ids, const LLSD& color)
|
||||
{
|
||||
// Use the name as color definition name from colors.xml
|
||||
LLColor4 mark_color = LLUIColorTable::instance().getColor(color.asString(), LLColor4::green);
|
||||
|
||||
for (uuid_vec_t::const_iterator it = avatar_ids.begin(); it != avatar_ids.end(); ++it)
|
||||
{
|
||||
sAvatarMarksMap[*it] = mark_color;
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLNetMap::clearAvatarMarkColor(const LLUUID& avatar_id)
|
||||
{
|
||||
uuid_vec_t ids;
|
||||
ids.push_back(avatar_id);
|
||||
clearAvatarMarkColors(ids);
|
||||
}
|
||||
|
||||
// static
|
||||
void LLNetMap::clearAvatarMarkColors(const uuid_vec_t& avatar_ids)
|
||||
{
|
||||
for (uuid_vec_t::const_iterator it = avatar_ids.begin(); it != avatar_ids.end(); ++it)
|
||||
{
|
||||
avatar_marks_map_t::iterator found = sAvatarMarksMap.find(*it);
|
||||
if (found != sAvatarMarksMap.end())
|
||||
{
|
||||
sAvatarMarksMap.erase(found);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLNetMap::clearAvatarMarkColors()
|
||||
{
|
||||
sAvatarMarksMap.clear();
|
||||
}
|
||||
//</FS:Ansariel>
|
||||
|
||||
void LLNetMap::handleCam()
|
||||
|
|
|
|||
|
|
@ -102,6 +102,12 @@ public:
|
|||
|
||||
// <FS:Ansariel> Mark avatar feature
|
||||
static bool getAvatarMarkColor(const LLUUID& avatar_id, LLColor4& color);
|
||||
static void setAvatarMarkColor(const LLUUID& avatar_id, const LLSD& color);
|
||||
static void setAvatarMarkColors(const uuid_vec_t& avatar_ids, const LLSD& color);
|
||||
static void clearAvatarMarkColor(const LLUUID& avatar_id);
|
||||
static void clearAvatarMarkColors(const uuid_vec_t& avatar_ids);
|
||||
static void clearAvatarMarkColors();
|
||||
// </FS:Ansariel>
|
||||
|
||||
private:
|
||||
const LLVector3d& getObjectImageCenterGlobal() { return mObjectImageCenterGlobal; }
|
||||
|
|
|
|||
|
|
@ -70,6 +70,57 @@
|
|||
<menu_item_call.on_click
|
||||
function="Nearby.People.TrackAvatar" />
|
||||
</menu_item_call>
|
||||
<menu name="MarkAvatar" label="Mark...">
|
||||
<menu_item_call
|
||||
label="Red"
|
||||
name="MarkRed">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Red"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Green"
|
||||
name="MarkGreen">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Green"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Blue"
|
||||
name="MarkBlue">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Blue"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Purple"
|
||||
name="MarkPurple">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Purple"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Yellow"
|
||||
name="MarkYellow">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="LtYellow"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="Clear Mark"
|
||||
name="Clear Mark">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.ClearAvatarMarkColor"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="Clear Marks"
|
||||
name="Clear Marks">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.ClearAllAvatarMarkColors"/>
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu_item_call
|
||||
label="Share"
|
||||
layout="topleft"
|
||||
|
|
|
|||
|
|
@ -48,6 +48,57 @@
|
|||
function="Avatar.EnableItem"
|
||||
parameter="can_call" />
|
||||
</menu_item_call>
|
||||
<menu name="MarkAvatar" label="Mark...">
|
||||
<menu_item_call
|
||||
label="Red"
|
||||
name="MarkRed">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Red"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Green"
|
||||
name="MarkGreen">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Green"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Blue"
|
||||
name="MarkBlue">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Blue"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Purple"
|
||||
name="MarkPurple">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="Purple"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Yellow"
|
||||
name="MarkYellow">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.SetAvatarMarkColor"
|
||||
parameter="LtYellow"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="Clear Mark"
|
||||
name="Clear Mark">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.ClearAvatarMarkColor"/>
|
||||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_call
|
||||
label="Clear Marks"
|
||||
name="Clear Marks">
|
||||
<menu_item_call.on_click
|
||||
function="Nearby.People.ClearAllAvatarMarkColors"/>
|
||||
</menu_item_call>
|
||||
</menu>
|
||||
<menu_item_call
|
||||
enabled="false"
|
||||
label="Share"
|
||||
|
|
|
|||
Loading…
Reference in New Issue