FIRE-2072: Added typing and sitting indicator to radar

Ansariel 2014-04-18 14:11:36 +02:00
parent f26aa490fe
commit 5a4e7ab737
7 changed files with 62 additions and 13 deletions

View File

@ -295,6 +295,8 @@ void FSPanelRadar::updateList(const std::vector<LLSD>& entries, const LLSD& stat
static const std::string flagsColumnType = getString("FlagsColumnType");
static const std::string flagsColumnValues [3] = { getString("FlagsColumnValue_0"), getString("FlagsColumnValue_1"), getString("FlagsColumnValue_2") };
static const std::string typingStatusKey = getString("TypingStatusKey");
static const std::string sittingStatusKey = getString("SittingStatusKey");
// Store current selection and scroll position
static S32 uuidColumnIndex = mRadarList->getColumn("uuid")->mIndex;
@ -324,16 +326,20 @@ void FSPanelRadar::updateList(const std::vector<LLSD>& entries, const LLSD& stat
row_data["columns"][2]["column"] = "in_region";
row_data["columns"][2]["type"] = "icon";
row_data["columns"][2]["value"] = (entry["in_region"].asBoolean() ? "avatar_in_region" : "");
row_data["columns"][3]["column"] = "flags";
row_data["columns"][3]["type"] = flagsColumnType;
row_data["columns"][4]["column"] = "age";
row_data["columns"][4]["value"] = entry["age"];
row_data["columns"][5]["column"] = "seen";
row_data["columns"][5]["value"] = entry["seen"];
row_data["columns"][6]["column"] = "range";
row_data["columns"][6]["value"] = entry["range"];
row_data["columns"][7]["column"] = "uuid"; // invisible column for referencing av-key the row belongs to
row_data["columns"][7]["value"] = entry["id"];
row_data["columns"][3]["column"] = "typing_status";
row_data["columns"][3]["value"] = (entry["typing"].asBoolean() ? typingStatusKey : "");
row_data["columns"][4]["column"] = "sitting_status";
row_data["columns"][4]["value"] = (entry["sitting"].asBoolean() ? sittingStatusKey : "");
row_data["columns"][5]["column"] = "flags";
row_data["columns"][5]["type"] = flagsColumnType;
row_data["columns"][6]["column"] = "age";
row_data["columns"][6]["value"] = entry["age"];
row_data["columns"][7]["column"] = "seen";
row_data["columns"][7]["value"] = entry["seen"];
row_data["columns"][8]["column"] = "range";
row_data["columns"][8]["value"] = entry["range"];
row_data["columns"][9]["column"] = "uuid"; // invisible column for referencing av-key the row belongs to
row_data["columns"][9]["value"] = entry["id"];
LLScrollListItem* row = mRadarList->addElement(row_data);

View File

@ -30,6 +30,7 @@
// libs
#include "llavatarnamecache.h"
#include "llanimationstates.h"
#include "llcommonutils.h"
#include "llnotificationsutil.h"
#include "lleventtimer.h"
@ -468,6 +469,8 @@ void FSRadar::updateRadarList()
entry["age"] = (avAge > -1 ? llformat("%d", avAge) : "");
entry["seen"] = avSeenStr;
entry["range"] = (avRange > AVATAR_UNKNOWN_RANGE ? llformat("%3.2f", avRange) : llformat(">%3.2f", drawRadius));
entry["typing"] = (avVo && avVo->isTyping());
entry["sitting"] = (avVo && (avVo->getParent() || avVo->isMotionActive(ANIM_AGENT_SIT_GROUND) || avVo->isMotionActive(ANIM_AGENT_SIT_GROUND_CONSTRAINED)));
//AO: Set any range colors / styles
LLUIColor range_color;

View File

@ -821,6 +821,8 @@ public:
void clearChat();
void startTyping() { mTyping = TRUE; mTypingTimer.reset(); }
void stopTyping() { mTyping = FALSE; }
// <FS:Ansariel> Get typing status
bool isTyping() const { return mTyping; }
private:
BOOL mVisibleChat;
BOOL mVisibleTyping;

View File

@ -7,6 +7,8 @@
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string name="TypingStatusKey" value="T"/>
<string name="SittingStatusKey" value="S"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
@ -176,7 +178,7 @@
label="Name"
name="name"
tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range"
relative_width="0.34"/>
relative_width="0.30"/>
<radar_list.columns
label=""
name="voice_level"
@ -187,6 +189,16 @@
name="in_region"
tool_tip="Is in the same region"
relative_width="0.03"/>
<radar_list.columns
label=""
name="typing_status"
tool_tip="Is typing"
relative_width="0.02"/>
<radar_list.columns
label=""
name="sitting_status"
tool_tip="Is sitting"
relative_width="0.02"/>
<radar_list.columns
label=""
name="flags"

View File

@ -24,6 +24,8 @@
<radar_list.columns label="Name" tool_tip="[TOTAL] Avatare, [IN_REGION] in derselben Region, [IN_CHAT_RANGE] in Chat-Reichweite" name="name"/>
<radar_list.columns label="" tool_tip="Spricht via Voice" name="voice_level"/>
<radar_list.columns label="" tool_tip="Ist in derselben Region" name="in_region"/>
<radar_list.columns label="" tool_tip="Schreibt gerade" name="typing_status"/>
<radar_list.columns label="" tool_tip="Sitz gerade" name="sitting_status"/>
<radar_list.columns label="" tool_tip="Status Zahlungsinformationen" name="flags"/>
<radar_list.columns label="Alt." name="age"/>
<radar_list.columns label="Zeit" name="seen"/>

View File

@ -7,6 +7,8 @@
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="$"/>
<string name="FlagsColumnValue_2" value="$$"/>
<string name="TypingStatusKey" value="T"/>
<string name="SittingStatusKey" value="S"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
@ -176,7 +178,7 @@
label="Name"
name="name"
tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range"
relative_width="0.34"/>
relative_width="0.30"/>
<radar_list.columns
label=""
name="voice_level"
@ -187,6 +189,16 @@
name="in_region"
tool_tip="Is in the same region"
relative_width="0.03"/>
<radar_list.columns
label=""
name="typing_status"
tool_tip="Is typing"
relative_width="0.02"/>
<radar_list.columns
label=""
name="sitting_status"
tool_tip="Is sitting"
relative_width="0.02"/>
<radar_list.columns
label=""
name="flags"

View File

@ -7,6 +7,8 @@
<string name="FlagsColumnValue_0" value=""/>
<string name="FlagsColumnValue_1" value="Payment_Info_Filled"/>
<string name="FlagsColumnValue_2" value="Payment_Info_Used"/>
<string name="TypingStatusKey" value="T"/>
<string name="SittingStatusKey" value="S"/>
<string
name="MiniMapToolTipMsg"
value="[REGION] (Double-click to open Map, shift-drag to pan)"/>
@ -91,7 +93,7 @@
label="Name"
name="name"
tool_tip="[TOTAL] avatars, [IN_REGION] in the same region, [IN_CHAT_RANGE] in chat range"
relative_width="0.32"/>
relative_width="0.28"/>
<radar_list.columns
label=""
name="voice_level"
@ -114,6 +116,16 @@
name="in_region"
tool_tip="Is in the same region"
relative_width="0.03"/>
<radar_list.columns
label=""
name="typing_status"
tool_tip="Is typing"
relative_width="0.02"/>
<radar_list.columns
label=""
name="sitting_status"
tool_tip="Is sitting"
relative_width="0.02"/>
<radar_list.columns
label=""
name="flags"