From 3b46a0335c4262d7b2e86c3f68ef9f19585de93d Mon Sep 17 00:00:00 2001 From: Tank_Master Date: Wed, 30 May 2012 11:41:45 -0700 Subject: [PATCH] Fire-3142 - Request for option to only show "entering" events, not leaving. (patch by holy gavenkrantz) --- indra/newview/app_settings/settings.xml | 52 ++++++++++++--- indra/newview/llpanelpeople.cpp | 57 ++++++++-------- .../xui/en/menu_people_nearby_view_sort.xml | 54 +++++++++++---- .../default/xui/en/panel_preferences_chat.xml | 66 ++++++++++++++++--- .../skins/vintage/xui/en/panel_people.xml | 51 +++++++++++--- 5 files changed, 214 insertions(+), 66 deletions(-) diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 855cb0e90a..89c935fac1 100755 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -963,10 +963,46 @@ 0 - RadarReportChatRange + RadarReportChatRangeEnter Comment - Display a chat message when avatar leaves/enters chat distance + Display a chat message when avatar enters chat distance + Persist + 1 + Type + Boolean + Value + 0 + + + RadarReportChatRangeLeave + + Comment + Display a chat message when avatar leaves chat distance + Persist + 1 + Type + Boolean + Value + 0 + + + RadarReportDrawRangeEnter + + Comment + Display a chat message when avatar enters draw distance + Persist + 1 + Type + Boolean + Value + 0 + + + RadarReportDrawRangeLeave + + Comment + Display a chat message when avatar leaves draw distance Persist 1 Type @@ -975,10 +1011,10 @@ 0 - RadarReportDrawRange + RadarReportSimRangeEnter Comment - Display a chat message when avatar leaves/enters draw distance + Display a chat message when avatar enteres local region Persist 1 Type @@ -986,12 +1022,11 @@ Value 0 - - - RadarReportSimRange + + RadarReportSimRangeLeave Comment - Display a chat message when avatar leaves/enteres local region + Display a chat message when avatar leaves local region Persist 1 Type @@ -1000,7 +1035,6 @@ 0 - PermAllowScriptedMedia Comment diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index b983080483..81fbc85f43 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -881,9 +881,12 @@ void LLPanelPeople::updateNearbyList() return; //Configuration - static LLCachedControl RadarReportChatRange(gSavedSettings, "RadarReportChatRange"); - static LLCachedControl RadarReportDrawRange(gSavedSettings, "RadarReportDrawRange"); - static LLCachedControl RadarReportSimRange(gSavedSettings, "RadarReportSimRange"); + static LLCachedControl RadarReportChatRangeEnter(gSavedSettings, "RadarReportChatRangeEnter"); + static LLCachedControl RadarReportChatRangeLeave(gSavedSettings, "RadarReportChatRangeLeave"); + static LLCachedControl RadarReportDrawRangeEnter(gSavedSettings, "RadarReportDrawRangeEnter"); + static LLCachedControl RadarReportDrawRangeLeave(gSavedSettings, "RadarReportDrawRangeLeave"); + static LLCachedControl RadarReportSimRangeEnter(gSavedSettings, "RadarReportSimRangeEnter"); + static LLCachedControl RadarReportSimRangeLeave(gSavedSettings, "RadarReportSimRangeLeave"); static LLCachedControl RadarEnterChannelAlert(gSavedSettings, "RadarEnterChannelAlert"); static LLCachedControl RadarLeaveChannelAlert(gSavedSettings, "RadarLeaveChannelAlert"); @@ -1011,21 +1014,21 @@ void LLPanelPeople::updateNearbyList() if (lastRadarSweep.count(avId) == 0) { // chat alerts - if (RadarReportChatRange && (avRange <= CHAT_NORMAL_RADIUS) && avRange > -1) + if (RadarReportChatRangeEnter && (avRange <= CHAT_NORMAL_RADIUS) && avRange > -1) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_chat_range", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - if (RadarReportDrawRange && (avRange <= drawRadius) && avRange > -1) + if (RadarReportDrawRangeEnter && (avRange <= drawRadius) && avRange > -1) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_draw_distance", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - if (RadarReportSimRange && (avRegion == regionSelf)) + if (RadarReportSimRangeEnter && (avRegion == regionSelf)) { if (avPos[VZ] != -1) // Don't report an inaccurate range in localchat, if the true range is not known. { @@ -1061,33 +1064,33 @@ void LLPanelPeople::updateNearbyList() if (lastRadarSweep.count(avId) == 1) // normal case, check from last position { rf = lastRadarSweep.find(avId)->second; - if (RadarReportChatRange) + if (RadarReportChatRangeEnter || RadarReportChatRangeLeave ) { - if ((avRange <= CHAT_NORMAL_RADIUS && avRange > -1) && (rf.lastDistance > CHAT_NORMAL_RADIUS || rf.lastDistance == -1)) + if (RadarReportChatRangeEnter && (avRange <= CHAT_NORMAL_RADIUS && avRange > -1) && (rf.lastDistance > CHAT_NORMAL_RADIUS || rf.lastDistance == -1)) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_chat_range", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - else if ((avRange > CHAT_NORMAL_RADIUS || avRange == -1) && (rf.lastDistance <= CHAT_NORMAL_RADIUS && rf.lastDistance > -1)) + else if (RadarReportChatRangeLeave && (avRange > CHAT_NORMAL_RADIUS || avRange == -1) && (rf.lastDistance <= CHAT_NORMAL_RADIUS && rf.lastDistance > -1)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_chat_range"))); } - if (RadarReportDrawRange) + if ( RadarReportDrawRangeEnter || RadarReportDrawRangeLeave ) { - if ((avRange <= drawRadius && avRange > -1) && (rf.lastDistance > drawRadius || rf.lastDistance == -1)) + if (RadarReportDrawRangeEnter && (avRange <= drawRadius && avRange > -1) && (rf.lastDistance > drawRadius || rf.lastDistance == -1)) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_draw_distance", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - else if ((avRange > drawRadius || avRange == -1) && (rf.lastDistance <= drawRadius && rf.lastDistance > -1)) + else if ( RadarReportDrawRangeLeave && (avRange > drawRadius || avRange == -1) && (rf.lastDistance <= drawRadius && rf.lastDistance > -1)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_draw_distance"))); } - if (RadarReportSimRange) + if (RadarReportSimRangeEnter || RadarReportSimRangeLeave ) { - if ((avRegion == regionSelf) && (avRegion != rf.lastRegion)) + if ( RadarReportSimRangeEnter && (avRegion == regionSelf) && (avRegion != rf.lastRegion)) { if (avPos[VZ] != -1) // Don't report an inaccurate range in localchat, if the true range is not known. { @@ -1099,7 +1102,7 @@ void LLPanelPeople::updateNearbyList() else LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("entering_region"))); } - else if ((rf.lastRegion == regionSelf) && (avRegion != regionSelf)) + else if (RadarReportSimRangeLeave && (rf.lastRegion == regionSelf) && (avRegion != regionSelf)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_region"))); } } @@ -1116,33 +1119,33 @@ void LLPanelPeople::updateNearbyList() } llinfos << "AO: Duplicates detected for " << avName <<" , most recent is " << rf.firstSeen << llendl; - if (RadarReportChatRange) + if (RadarReportChatRangeEnter || RadarReportChatRangeLeave) { - if ((avRange <= CHAT_NORMAL_RADIUS && avRange > -1) && (rf.lastDistance > CHAT_NORMAL_RADIUS || rf.lastDistance == -1)) + if (RadarReportChatRangeEnter && (avRange <= CHAT_NORMAL_RADIUS && avRange > -1) && (rf.lastDistance > CHAT_NORMAL_RADIUS || rf.lastDistance == -1)) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_chat_range", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - else if ((avRange > CHAT_NORMAL_RADIUS || avRange == -1) && (rf.lastDistance <= CHAT_NORMAL_RADIUS && rf.lastDistance > -1)) + else if (RadarReportChatRangeLeave && (avRange > CHAT_NORMAL_RADIUS || avRange == -1) && (rf.lastDistance <= CHAT_NORMAL_RADIUS && rf.lastDistance > -1)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_chat_range"))); } - if (RadarReportDrawRange) + if (RadarReportDrawRangeEnter || RadarReportDrawRangeLeave) { - if ((avRange <= drawRadius && avRange > -1) && (rf.lastDistance > drawRadius || rf.lastDistance == -1)) + if (RadarReportDrawRangeEnter && (avRange <= drawRadius && avRange > -1) && (rf.lastDistance > drawRadius || rf.lastDistance == -1)) { LLStringUtil::format_map_t args; args["DISTANCE"] = llformat("%3.2f", avRange); std::string message = getString("entering_draw_distance", args); LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, message)); } - else if ((avRange > drawRadius || avRange == -1) && (rf.lastDistance <= drawRadius && rf.lastDistance > -1)) + else if (RadarReportDrawRangeLeave && (avRange > drawRadius || avRange == -1) && (rf.lastDistance <= drawRadius && rf.lastDistance > -1)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_draw_distance"))); } - if (RadarReportSimRange) + if (RadarReportSimRangeEnter || RadarReportSimRangeLeave) { - if ((avRegion == regionSelf) && (avRegion != rf.lastRegion)) + if (RadarReportSimRangeEnter && (avRegion == regionSelf) && (avRegion != rf.lastRegion)) { if (avPos[VZ] != -1) // Don't report an inaccurate range in localchat, if the true range is not known. { @@ -1154,7 +1157,7 @@ void LLPanelPeople::updateNearbyList() else LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("entering_region"))); } - else if ((rf.lastRegion == regionSelf) && (avRegion != regionSelf)) + else if (RadarReportSimRangeLeave && (rf.lastRegion == regionSelf) && (avRegion != regionSelf)) LLAvatarNameCache::get(avId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_region"))); } } @@ -1314,11 +1317,11 @@ void LLPanelPeople::updateNearbyList() if (!mNearbyList->contains(prevId)) { radarFields rf = i->second; - if (RadarReportChatRange && (rf.lastDistance <= CHAT_NORMAL_RADIUS) && rf.lastDistance > -1) + if (RadarReportChatRangeLeave && (rf.lastDistance <= CHAT_NORMAL_RADIUS) && rf.lastDistance > -1) LLAvatarNameCache::get(prevId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_chat_range"))); - if (RadarReportDrawRange && (rf.lastDistance <= drawRadius) && rf.lastDistance > -1) + if (RadarReportDrawRangeLeave && (rf.lastDistance <= drawRadius) && rf.lastDistance > -1) LLAvatarNameCache::get(prevId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_draw_distance"))); - if (RadarReportSimRange && (rf.lastRegion == regionSelf)) + if (RadarReportSimRangeLeave && (rf.lastRegion == regionSelf)) LLAvatarNameCache::get(prevId,boost::bind(&LLPanelPeople::radarAlertMsg, this, _1, _2, getString("leaving_region"))); if (RadarLeaveChannelAlert) diff --git a/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml index 55529b5f38..545d7be2fb 100644 --- a/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml +++ b/indra/newview/skins/default/xui/en/menu_people_nearby_view_sort.xml @@ -77,33 +77,63 @@ + label="Report Entering Draw Range" + name="RadarReportDrawRangeEnter"> + control="RadarReportDrawRangeEnter" /> + parameter="RadarReportDrawRangeEnter" /> + + + + + + label="Report Entering Chat Range" + name="RadarReportChatRangeEnter"> + control="RadarReportChatRangeEnter" /> + parameter="RadarReportChatRangeEnter" /> + + + + + + label="Report Entering your Region" + name="RadarReportSimRangeEnter"> + control="RadarReportSimRangeEnter" /> + parameter="RadarReportSimRangeEnter" /> + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/vintage/xui/en/panel_people.xml b/indra/newview/skins/vintage/xui/en/panel_people.xml index ca9f1a5556..948c532911 100644 --- a/indra/newview/skins/vintage/xui/en/panel_people.xml +++ b/indra/newview/skins/vintage/xui/en/panel_people.xml @@ -256,33 +256,66 @@ Looking for people to hang out with? Use the search box to find topics or conten follows="left|top"/> + + + + + +