summaryrefslogtreecommitdiff
path: root/indra/newview/llcallfloater.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llcallfloater.cpp')
-rw-r--r--indra/newview/llcallfloater.cpp50
1 files changed, 39 insertions, 11 deletions
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index b494470cbc..5890bc0464 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -33,13 +33,14 @@
#include "llviewerprecompiledheaders.h"
+#include "llcallfloater.h"
+
#include "llnotificationsutil.h"
#include "lltrans.h"
-#include "llcallfloater.h"
-
#include "llagent.h"
#include "llagentdata.h" // for gAgentID
+#include "llavatarnamecache.h"
#include "llavatariconctrl.h"
#include "llavatarlist.h"
#include "llbottomtray.h"
@@ -83,7 +84,8 @@ public:
void setName(const std::string& name)
{
const std::string& formatted_phone = LLTextUtil::formatPhoneNumber(name);
- LLAvatarListItem::setName(formatted_phone);
+ LLAvatarListItem::setAvatarName(formatted_phone);
+ LLAvatarListItem::setAvatarToolTip(formatted_phone);
}
void setSpeakerId(const LLUUID& id) { mSpeakingIndicator->setSpeakerId(id); }
@@ -296,7 +298,7 @@ void LLCallFloater::updateSession()
// Hide "Leave Call" button for nearby chat
bool is_local_chat = mVoiceType == VC_LOCAL_CHAT;
- childSetVisible("leave_call_btn_panel", !is_local_chat);
+ getChildView("leave_call_btn_panel")->setVisible( !is_local_chat);
refreshParticipantList();
updateAgentModeratorState();
@@ -374,9 +376,31 @@ void LLCallFloater::sOnCurrentChannelChanged(const LLUUID& /*session_id*/)
call_floater->connectToChannel(channel);
}
+void LLCallFloater::onAvatarNameCache(const LLUUID& agent_id,
+ const LLAvatarName& av_name)
+{
+ LLStringUtil::format_map_t args;
+ args["[NAME]"] = av_name.getCompleteName();
+ std::string title = getString("title_peer_2_peer", args);
+ setTitle(title);
+}
+
void LLCallFloater::updateTitle()
{
LLVoiceChannel* voice_channel = LLVoiceChannel::getCurrentVoiceChannel();
+ if (mVoiceType == VC_PEER_TO_PEER)
+ {
+ LLUUID session_id = voice_channel->getSessionID();
+ LLIMModel::LLIMSession* im_session =
+ LLIMModel::getInstance()->findIMSession(session_id);
+ if (im_session)
+ {
+ LLAvatarNameCache::get(im_session->mOtherParticipantID,
+ boost::bind(&LLCallFloater::onAvatarNameCache,
+ this, _1, _2));
+ return;
+ }
+ }
std::string title;
switch (mVoiceType)
{
@@ -419,11 +443,12 @@ void LLCallFloater::initAgentData()
if ( mAgentPanel )
{
- mAgentPanel->childSetValue("user_icon", gAgentID);
+ mAgentPanel->getChild<LLUICtrl>("user_icon")->setValue(gAgentID);
- std::string name;
- gCacheName->getFullName(gAgentID, name);
- mAgentPanel->childSetValue("user_text", name);
+ // Just use display name, because it's you
+ LLAvatarName av_name;
+ LLAvatarNameCache::get( gAgentID, &av_name );
+ mAgentPanel->getChild<LLUICtrl>("user_text")->setValue(av_name.mDisplayName);
mSpeakingIndicator = mAgentPanel->getChild<LLOutputMonitorCtrl>("speaking_indicator");
mSpeakingIndicator->setSpeakerId(gAgentID);
@@ -444,7 +469,10 @@ void LLCallFloater::setModeratorMutedVoice(bool moderator_muted)
void LLCallFloater::updateAgentModeratorState()
{
std::string name;
- gCacheName->getFullName(gAgentID, name);
+ // Just use display name, because it's you
+ LLAvatarName av_name;
+ LLAvatarNameCache::get(gAgentID, &av_name);
+ name = av_name.mDisplayName;
if(gAgent.isInGroup(mSpeakerManager->getSessionID()))
{
@@ -461,7 +489,7 @@ void LLCallFloater::updateAgentModeratorState()
}
}
}
- mAgentPanel->childSetValue("user_text", name);
+ mAgentPanel->getChild<LLUICtrl>("user_text")->setValue(name);
}
static void get_voice_participants_uuids(uuid_vec_t& speakers_uuids)
@@ -766,7 +794,7 @@ void LLCallFloater::reset(const LLVoiceChannel::EState& new_state)
{
// hides "Leave Call" when call is ended in parcel with disabled voice- hiding usually happens in
// updateSession() which won't be called here because connect to nearby voice never happens
- childSetVisible("leave_call_btn_panel", false);
+ getChildView("leave_call_btn_panel")->setVisible( false);
// setting title to nearby chat an "no one near..." text- because in region with disabled
// voice we won't have chance to really connect to nearby, so VCP is changed here manually
setTitle(getString("title_nearby"));