From 5de9994da14352081ac802404ef018265487e758 Mon Sep 17 00:00:00 2001 From: McCabe Maxsted Date: Wed, 16 Sep 2009 06:15:37 -0700 Subject: More cleanup --- linden/indra/newview/llfloatermap.cpp | 79 ++++++++++++----------------------- linden/indra/newview/llfloatermap.h | 1 - 2 files changed, 27 insertions(+), 53 deletions(-) diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp index 1ec2020..e70f4f1 100644 --- a/linden/indra/newview/llfloatermap.cpp +++ b/linden/indra/newview/llfloatermap.cpp @@ -70,7 +70,6 @@ LLFloaterMap::LLFloaterMap(const LLSD& key) LLUICtrlFactory::getInstance()->buildFloater(this, "floater_mini_map.xml", &factory_map, FALSE); mSelectedAvatar.setNull(); - mAvatars.clear(); } @@ -195,7 +194,7 @@ void LLFloaterMap::updateRadar() void LLFloaterMap::populateRadar() { - if (!mUpdate) + if (!mUpdate || !LLFloaterMap::getInstance()->getVisible()) { return; } @@ -218,8 +217,10 @@ void LLFloaterMap::populateRadar() std::vector positions; LLWorld::getInstance()->getAvatars(&avatar_ids, &positions, current_pos, gSavedSettings.getF32("NearMeRange")); - // Add avatars to the list. If they're already there, update positions - std::pair::iterator, bool> ret; + LLSD element; + + mRadarList->deleteAllItems(); + for (U32 i=0; i(avatar_ids[i], positions[i])); - if (ret.second == false) + // Add to list only if we get their name + std::string fullname = getSelectedName(avatar_ids[i]); + if (!fullname.empty() && fullname != " ") { - mAvatars[avatar_ids[i]] = positions[i]; - } - } - - LLSD element; - - mRadarList->deleteAllItems(); - - // if an avatar's not in range anymore, kill it. Otherwise, populate radar - std::map::iterator mIt; - std::vector::iterator result; - for (mIt = mAvatars.begin(); mIt != mAvatars.end(); ) - { - result = find(avatar_ids.begin(), avatar_ids.end(), mIt->first); - if (result == avatar_ids.end()) - { - mAvatars.erase(mIt++); - } - else - { - // Add to list only if we get their name - std::string fullname = getSelectedName(mIt->first); - if (!fullname.empty() && fullname != " ") - { - std::string mute_text = LLMuteList::getInstance()->isMuted(mIt->first) ? getString("muted") : ""; - element["id"] = mIt->first; - element["columns"][0]["column"] = "avatar_name"; - element["columns"][0]["type"] = "text"; - element["columns"][0]["value"] = fullname + " " + mute_text; - element["columns"][1]["column"] = "avatar_distance"; - element["columns"][1]["type"] = "text"; - - F64 distance = dist_vec(current_pos, mIt->second); - std::stringstream dist_formatted; - dist_formatted.str(""); - dist_formatted << (double)((int)((distance + 0.05)*10.0))/10.0 << "m"; - element["columns"][1]["value"] = dist_formatted.str(); - - mRadarList->addElement(element, ADD_BOTTOM); - } - ++mIt; + std::string mute_text = LLMuteList::getInstance()->isMuted(avatar_ids[i]) ? getString("muted") : ""; + element["id"] = avatar_ids[i]; + element["columns"][0]["column"] = "avatar_name"; + element["columns"][0]["type"] = "text"; + element["columns"][0]["value"] = fullname + " " + mute_text; + element["columns"][1]["column"] = "avatar_distance"; + element["columns"][1]["type"] = "text"; + + LLVector3d temp = positions[i] - current_pos; + F32 distance = (F32)temp.magVec(); + char dist[32]; + snprintf(dist, sizeof(dist), "%.1f", distance); + element["columns"][1]["value"] = strcat(dist,"m"); + + mRadarList->addElement(element, ADD_BOTTOM); } } @@ -285,28 +261,27 @@ void LLFloaterMap::populateRadar() // set count std::stringstream avatar_count; avatar_count.str(""); - if (mAvatars.empty()) + if (avatar_ids.empty()) { mRadarList->addCommentText(getString("no_one_near"), ADD_TOP); avatar_count << "0"; } else { - avatar_count << (int)mAvatars.size(); + avatar_count << (int)avatar_ids.size(); } childSetText("lblAvatarCount", avatar_count.str()); toggleButtons(); //llinfos << "mSelectedAvatar: " << mSelectedAvatar.asString() << llendl; -} +} void LLFloaterMap::toggleButtons() { BOOL enabled = FALSE; BOOL unmute_enabled = FALSE; - LLPanel* panelp = getChild("RadarPanel"); - if (panelp->hasFocus()) + if (childHasFocus("RadarPanel")) { enabled = mSelectedAvatar.notNull() ? visibleItemsSelected() : FALSE; unmute_enabled = mSelectedAvatar.notNull() ? LLMuteList::getInstance()->isMuted(mSelectedAvatar) : FALSE; diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h index 09fce01..fae6184 100644 --- a/linden/indra/newview/llfloatermap.h +++ b/linden/indra/newview/llfloatermap.h @@ -67,7 +67,6 @@ private: LLNetMap* mPanelMap; LLScrollListCtrl* mRadarList; LLUUID mSelectedAvatar; - std::map mAvatars; bool mUpdate; static void onList(LLUICtrl* ctrl, void* user_data); -- cgit v1.1