summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermessage.cpp
diff options
context:
space:
mode:
authorLogan Dethrow <log@lindenlab.com>2011-06-01 17:05:38 -0400
committerLogan Dethrow <log@lindenlab.com>2011-06-01 17:05:38 -0400
commit2662c4b679f0eb2745619dc4fd1dd79af65126f0 (patch)
treef27ba8675353676d91327fc606b005f0096b2fb9 /indra/newview/llviewermessage.cpp
parent4b97f03b04e7df25e5b3622122f6d124d4a5f617 (diff)
parent2002a39e4db5ba96f4a0a7653f76a3cd55846a31 (diff)
Merge. Pulling fix for VWR-25862 into bigger cache tree.
Diffstat (limited to 'indra/newview/llviewermessage.cpp')
-rw-r--r--indra/newview/llviewermessage.cpp49
1 files changed, 33 insertions, 16 deletions
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 3f018fc57c..3832be727f 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -344,6 +344,11 @@ void process_layer_data(LLMessageSystem *mesgsys, void **user_data)
{
LLViewerRegion *regionp = LLWorld::getInstance()->getRegion(mesgsys->getSender());
+ if(!regionp)
+ {
+ llwarns << "Invalid region for layer data." << llendl;
+ return;
+ }
S32 size;
S8 type;
@@ -2208,7 +2213,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
name = clean_name_from_im(name, dialog);
BOOL is_busy = gAgent.getBusy();
- BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat);
+ BOOL is_muted = LLMuteList::getInstance()->isMuted(from_id, name, LLMute::flagTextChat)
+ // object IMs contain sender object id in session_id (STORM-1209)
+ || dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id);
BOOL is_linden = LLMuteList::getInstance()->isLinden(name);
BOOL is_owned_by_me = FALSE;
BOOL is_friend = (LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL) ? false : true;
@@ -2596,6 +2603,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
args["NAME"] = LLSLURL("agent", from_id, "completename").getSLURLString();;
LLSD payload;
payload["from_id"] = from_id;
+ // Passing the "SESSION_NAME" to use it for IM notification logging
+ // in LLTipHandler::processNotification(). See STORM-941.
+ payload["SESSION_NAME"] = name;
LLNotificationsUtil::add("InventoryAccepted", args, payload);
break;
}
@@ -2795,7 +2805,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
{
LLVector3 pos, look_at;
U64 region_handle;
- U8 region_access = SIM_ACCESS_MIN;
+ U8 region_access;
std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size);
std::string region_access_str = LLStringUtil::null;
std::string region_access_icn = LLStringUtil::null;
@@ -3203,7 +3213,6 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
if (is_audible)
{
BOOL visible_in_chat_bubble = FALSE;
- std::string verb;
color.setVec(1.f,1.f,1.f,1.f);
msg->getStringFast(_PREHASH_ChatData, _PREHASH_Message, mesg);
@@ -3252,18 +3261,19 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
}
else
{
+ chat.mText = "";
switch(chat.mChatType)
{
case CHAT_TYPE_WHISPER:
- verb = LLTrans::getString("whisper") + " ";
+ chat.mText = LLTrans::getString("whisper") + " ";
break;
case CHAT_TYPE_DEBUG_MSG:
case CHAT_TYPE_OWNER:
case CHAT_TYPE_NORMAL:
- verb = "";
+ case CHAT_TYPE_DIRECT:
break;
case CHAT_TYPE_SHOUT:
- verb = LLTrans::getString("shout") + " ";
+ chat.mText = LLTrans::getString("shout") + " ";
break;
case CHAT_TYPE_START:
case CHAT_TYPE_STOP:
@@ -3271,13 +3281,9 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
break;
default:
LL_WARNS("Messaging") << "Unknown type " << chat.mChatType << " in chat!" << LL_ENDL;
- verb = "";
break;
}
-
- chat.mText = "";
- chat.mText += verb;
chat.mText += mesg;
}
@@ -5366,6 +5372,12 @@ bool attempt_standard_notification(LLMessageSystem* msgsystem)
{
// notification was specified using the new mechanism, so we can just handle it here
std::string notificationID;
+ msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
+ if (!LLNotifications::getInstance()->templateExists(notificationID))
+ {
+ return false;
+ }
+
std::string llsdRaw;
LLSD llsdBlock;
msgsystem->getStringFast(_PREHASH_AlertInfo, _PREHASH_Message, notificationID);
@@ -5522,14 +5534,19 @@ void process_alert_core(const std::string& message, BOOL modal)
}
else
{
- LLSD args;
- std::string new_msg =LLNotifications::instance().getGlobalString(message);
+ // Hack fix for EXP-623 (blame fix on RN :)) to avoid a sim deploy
+ const std::string AUTOPILOT_CANCELED_MSG("Autopilot canceled");
+ if (message.find(AUTOPILOT_CANCELED_MSG) == std::string::npos )
+ {
+ LLSD args;
+ std::string new_msg =LLNotifications::instance().getGlobalString(message);
- std::string localized_msg;
- bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
+ std::string localized_msg;
+ bool is_message_localized = LLTrans::findString(localized_msg, new_msg);
- args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
- LLNotificationsUtil::add("SystemMessageTip", args);
+ args["MESSAGE"] = is_message_localized ? localized_msg : new_msg;
+ LLNotificationsUtil::add("SystemMessageTip", args);
+ }
}
}