summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-10-08 18:20:37 -0700
committerMerov Linden <merov@lindenlab.com>2012-10-08 18:20:37 -0700
commit0d619bcdc1fbb7869a6376749b0bd46b1d40c91e (patch)
tree8f00045aee7ed36c3346fef37b10d4b625ca4475 /indra
parentdb452823e5cc615225f3f163d827954447cf9bd8 (diff)
CHUI-147 : Sort the residents names when getting a resident string list
Diffstat (limited to 'indra')
-rwxr-xr-xindra/newview/llavataractions.cpp8
-rw-r--r--indra/newview/llavataractions.h2
-rw-r--r--indra/newview/llconversationmodel.cpp4
3 files changed, 8 insertions, 6 deletions
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 50697d1885..3326103d03 100755
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -697,15 +697,15 @@ namespace action_give_inventory
}
// static
-void LLAvatarActions::buildResidentsString(const std::vector<LLAvatarName> avatar_names, std::string& residents_string)
+void LLAvatarActions::buildResidentsString(std::vector<LLAvatarName> avatar_names, std::string& residents_string)
{
llassert(avatar_names.size() > 0);
-
+
+ std::sort(avatar_names.begin(), avatar_names.end());
const std::string& separator = LLTrans::getString("words_separator");
for (std::vector<LLAvatarName>::const_iterator it = avatar_names.begin(); ; )
{
- LLAvatarName av_name = *it;
- residents_string.append(av_name.mDisplayName);
+ residents_string.append((*it).mDisplayName);
if (++it == avatar_names.end())
{
break;
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index e7cef587c2..6e1198cd09 100644
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
@@ -216,7 +216,7 @@ public:
* @param avatar_names - a vector of given avatar names from which resulting string is built
* @param residents_string - the resulting string
*/
- static void buildResidentsString(const std::vector<LLAvatarName> avatar_names, std::string& residents_string);
+ static void buildResidentsString(std::vector<LLAvatarName> avatar_names, std::string& residents_string);
/**
* Builds a string of residents' display names separated by "words_separator" string.
diff --git a/indra/newview/llconversationmodel.cpp b/indra/newview/llconversationmodel.cpp
index 15824704fd..29e7ac4e12 100644
--- a/indra/newview/llconversationmodel.cpp
+++ b/indra/newview/llconversationmodel.cpp
@@ -159,7 +159,6 @@ void LLConversationItemSession::updateParticipantName(LLConversationItemParticip
return;
}
// Build a string containing the participants names and check if ready for display (we don't want "(waiting)" in there)
- // *TODO: Further factor out common code with LLIMFloater::onParticipantsListChanged()
bool all_names_resolved = true;
uuid_vec_t temp_uuids; // uuids vector for building the added participants' names string
child_list_t::iterator iter = mChildren.begin();
@@ -170,6 +169,9 @@ void LLConversationItemSession::updateParticipantName(LLConversationItemParticip
LLAvatarName av_name;
if (!LLAvatarNameCache::get(current_participant->getUUID(), &av_name))
{
+ // If the name is not in the cache yet, bail out
+ // Note: we don't bind ourselves to the LLAvatarNameCache event as we are called by
+ // onAvatarNameCache() which is itself attached to the same event.
all_names_resolved = false;
break;
}