From bc1263e920eb673f3c93edb8757b97b9a8a7125a Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Mon, 23 Aug 2010 01:29:47 -0700 Subject: Toggle between limited and sim-wide range for radar --- linden/indra/newview/app_settings/settings.xml | 11 ++++++++ linden/indra/newview/panelradar.cpp | 33 ++++++++++++++++++++-- linden/indra/newview/panelradar.h | 3 ++ .../skins/default/xui/en-us/panel_radar.xml | 14 ++++++--- 4 files changed, 54 insertions(+), 7 deletions(-) diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index f0d6376..c8a247f 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml @@ -524,6 +524,17 @@ Value 0 + RadarSimWide + + Comment + If true, radar shows everyone in the sim + Persist + 1 + Type + Boolean + Value + 0 + SavedRenderFarClip Comment diff --git a/linden/indra/newview/panelradar.cpp b/linden/indra/newview/panelradar.cpp index ce91da2..cfaffde 100644 --- a/linden/indra/newview/panelradar.cpp +++ b/linden/indra/newview/panelradar.cpp @@ -29,6 +29,7 @@ #include "panelradar.h" +#include "hippoLimits.h" #include "llagent.h" #include "llchat.h" #include "llfloateravatarinfo.h" @@ -45,6 +46,7 @@ #include "llregionposition.h" #include "roles_constants.h" #include "llscrolllistctrl.h" +#include "llspinctrl.h" #include "lltracker.h" #include "lluictrlfactory.h" #include "llviewercontrol.h" @@ -77,6 +79,11 @@ BOOL PanelRadar::postBuild() childSetCommitCallback("RadarList", onUseRadarList, this); mRadarList->setDoubleClickCallback(onClickIM); + childSetCommitCallback("simwide_checkbox", onCheckSimWide, this); + + // Set max range to max height + getChild("near_me_range")->setMaxValue(gHippoLimits->getMaxHeight()); + childSetAction("im_btn", onClickIM, this); childSetAction("profile_btn", onClickProfile, this); childSetAction("offer_teleport_btn", onClickOfferTeleport, this); @@ -216,8 +223,6 @@ void PanelRadar::updateRadarDisplay() F32 range = gSavedSettings.getF32("NearMeRange"); bool notify_chat = gSavedSettings.getBOOL("MiniMapNotifyChatRange"); bool notify_sim = gSavedSettings.getBOOL("MiniMapNotifySimRange"); - // We show avatars outside the estate even if you can't manage it in case griefers are lying on the border - bool is_manager = gAgent.getRegion()->canManageEstate(); // [RLVa:KB] - Alternate: Imprudence-1.2.0 if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) { @@ -286,7 +291,7 @@ void PanelRadar::updateRadarDisplay() } // Only display avatars in range - if (is_manager || entry->getDistance() <= range) + if (mSimWide || entry->getDistance() <= range) { // Append typing string std::string typing = ""; @@ -549,6 +554,28 @@ void PanelRadar::onUseRadarList(LLUICtrl* ctrl, void* user_data) } +// static +void PanelRadar::onCheckSimWide(LLUICtrl* ctrl, void* user_data) +{ + PanelRadar* self = (PanelRadar*)user_data; + if (self) + { + self->updateRangeControls(); + } +} + + +void PanelRadar::updateRangeControls() +{ + LLSpinCtrl* near_me = getChild("near_me_range"); + if (near_me) + { + near_me->setEnabled(!gSavedSettings.getBOOL("RadarSimWide")); + } + mSimWide = gSavedSettings.getBOOL("RadarSimWide"); +} + + bool PanelRadar::visibleItemsSelected() const { return (mRadarList->getFirstSelectedIndex() >= 0); diff --git a/linden/indra/newview/panelradar.h b/linden/indra/newview/panelradar.h index 59e6aff..4d53b56 100644 --- a/linden/indra/newview/panelradar.h +++ b/linden/indra/newview/panelradar.h @@ -77,6 +77,7 @@ private: LLScrollListCtrl* mRadarList; LLUUID mSelectedAvatar; F32 mSelectedDistance; + bool mSimWide; bool visibleItemsSelected() const; bool isKickable(const LLUUID& agent_id); @@ -88,6 +89,8 @@ private: static void onUseRadarList(LLUICtrl* ctrl, void* user_data); static void onRangeChange(LLFocusableElement* focus, void* user_data); + static void onCheckSimWide(LLUICtrl* ctrl, void* user_data); + void updateRangeControls(); static void onClickProfile(void* user_data); static void onClickIM(void* user_data); diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_radar.xml b/linden/indra/newview/skins/default/xui/en-us/panel_radar.xml index 603f2d8..d02ff0d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_radar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_radar.xml @@ -40,13 +40,13 @@ 0 avatars in - + +