summaryrefslogtreecommitdiff
path: root/indra/newview/llimview.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r--indra/newview/llimview.cpp47
1 files changed, 35 insertions, 12 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index 37ab144934..40227539d0 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -57,6 +57,7 @@
#include "llhttpnode.h"
#include "llimfloater.h"
#include "llimpanel.h"
+#include "llgroupiconctrl.h"
#include "llresizebar.h"
#include "lltabcontainer.h"
#include "llviewercontrol.h"
@@ -1495,6 +1496,34 @@ void LLCallDialog::draw()
}
}
+void LLCallDialog::setIcon(const LLSD& session_id, const LLSD& participant_id)
+{
+ // *NOTE: 12/28/2009: check avaline calls: LLVoiceClient::isParticipantAvatar returns false for them
+ bool participant_is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(session_id);
+
+ bool is_group = participant_is_avatar && gAgent.isInGroup(session_id);
+
+ LLAvatarIconCtrl* avatar_icon = getChild<LLAvatarIconCtrl>("avatar_icon");
+ LLGroupIconCtrl* group_icon = getChild<LLGroupIconCtrl>("group_icon");
+
+ avatar_icon->setVisible(!is_group);
+ group_icon->setVisible(is_group);
+
+ if (is_group)
+ {
+ group_icon->setValue(session_id);
+ }
+ else if (participant_is_avatar)
+ {
+ avatar_icon->setValue(participant_id);
+ }
+ else
+ {
+ avatar_icon->setValue("Avaline_Icon");
+ avatar_icon->setToolTip(std::string(""));
+ }
+}
+
bool LLOutgoingCallDialog::lifetimeHasExpired()
{
if (mLifetimeTimer.getStarted())
@@ -1556,8 +1585,9 @@ void LLOutgoingCallDialog::show(const LLSD& key)
LLSD callee_id = mPayload["other_user_id"];
childSetTextArg("calling", "[CALLEE_NAME]", callee_name);
childSetTextArg("connecting", "[CALLEE_NAME]", callee_name);
- LLAvatarIconCtrl* icon = getChild<LLAvatarIconCtrl>("avatar_icon");
- icon->setValue(callee_id);
+
+ // for outgoing group calls callee_id == group id == session id
+ setIcon(callee_id, callee_id);
// stop timer by default
mLifetimeTimer.stop();
@@ -1711,22 +1741,15 @@ BOOL LLIncomingCallDialog::postBuild()
LLUICtrl* caller_name_widget = getChild<LLUICtrl>("caller name");
caller_name_widget->setValue(caller_name + " " + call_type);
- LLAvatarIconCtrl* icon = getChild<LLAvatarIconCtrl>("avatar_icon");
- if (is_avatar)
- {
- icon->setValue(caller_id);
- }
- else
- {
- icon->setValue("Avaline_Icon");
- }
+ setIcon(session_id, caller_id);
childSetAction("Accept", onAccept, this);
childSetAction("Reject", onReject, this);
childSetAction("Start IM", onStartIM, this);
childSetFocus("Accept");
- if(mPayload["notify_box_type"] != "VoiceInviteGroup" && mPayload["notify_box_type"] != "VoiceInviteAdHoc")
+ std::string notify_box_type = mPayload["notify_box_type"].asString();
+ if(notify_box_type != "VoiceInviteGroup" && notify_box_type != "VoiceInviteAdHoc")
{
// starting notification's timer for P2P and AVALINE invitations
mLifetimeTimer.start();