From 5a4e7ab7371c745536b906b88e0a58e0f078c268 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Fri, 18 Apr 2014 14:11:36 +0200 Subject: [PATCH] FIRE-2072: Added typing and sitting indicator to radar --- indra/newview/fspanelradar.cpp | 26 ++++++++++++------- indra/newview/fsradar.cpp | 3 +++ indra/newview/llvoavatar.h | 2 ++ .../skins/ansastorm/xui/en/panel_fs_radar.xml | 14 +++++++++- .../skins/default/xui/de/panel_fs_radar.xml | 2 ++ .../skins/default/xui/en/panel_fs_radar.xml | 14 +++++++++- .../skins/vintage/xui/en/panel_fs_radar.xml | 14 +++++++++- 7 files changed, 62 insertions(+), 13 deletions(-) diff --git a/indra/newview/fspanelradar.cpp b/indra/newview/fspanelradar.cpp index 3e9ca0c2eb..7b49ff9f61 100644 --- a/indra/newview/fspanelradar.cpp +++ b/indra/newview/fspanelradar.cpp @@ -295,6 +295,8 @@ void FSPanelRadar::updateList(const std::vector& 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& 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); diff --git a/indra/newview/fsradar.cpp b/indra/newview/fsradar.cpp index 774a913826..c4ac465391 100644 --- a/indra/newview/fsradar.cpp +++ b/indra/newview/fsradar.cpp @@ -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; diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index f27b33da18..22dadff90e 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -821,6 +821,8 @@ public: void clearChat(); void startTyping() { mTyping = TRUE; mTypingTimer.reset(); } void stopTyping() { mTyping = FALSE; } + // Get typing status + bool isTyping() const { return mTyping; } private: BOOL mVisibleChat; BOOL mVisibleTyping; diff --git a/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml b/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml index bbb0cdbb82..5fd318a7fd 100644 --- a/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml +++ b/indra/newview/skins/ansastorm/xui/en/panel_fs_radar.xml @@ -7,6 +7,8 @@ + + @@ -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"/> + + + + diff --git a/indra/newview/skins/default/xui/en/panel_fs_radar.xml b/indra/newview/skins/default/xui/en/panel_fs_radar.xml index a127ede3bf..904fa0a602 100644 --- a/indra/newview/skins/default/xui/en/panel_fs_radar.xml +++ b/indra/newview/skins/default/xui/en/panel_fs_radar.xml @@ -7,6 +7,8 @@ + + @@ -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"/> + + + + @@ -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"/> + +