diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index a0658f044a..25d1dd2dbe 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -18818,5 +18818,16 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
2.0
+ FSChatsUppercase
+
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index d9094206cd..db99b204f8 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -842,6 +842,15 @@ static void on_avatar_name_cache_notify(const LLUUID& agent_id,
// If there's an open IM session with this agent, send a notification there too.
LLUUID session_id = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, agent_id);
std::string notify_msg = notification->getMessage();
+
+ // FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase
+ static LLCachedControl oFSChatsUppercase(gSavedSettings, "FSChatsUppercase");
+ if (oFSChatsUppercase)
+ {
+ LLStringUtil::toUpper(notify_msg);
+ }
+ //
+
LLIMModel::instance().proccessOnlineOfflineNotification(session_id, notify_msg);
// If desired, also send it to nearby chat, this allows friends'
// online/offline times to be referenced in chat & logged.
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 9ff9d61bc6..9ecfe705d9 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -931,7 +931,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
// FS:LO FIRE-2899 - Faded text for IMs in nearby chat
//IRC styled /me messages.
- bool irc_me = prefix == "/me " || prefix == "/me'";
+ bool irc_me = prefix == "/me " || prefix == "/me'" || prefix == "/ME " || prefix == "/ME'";
// Delimiter after a name in header copy/past and in plain text mode
std::string delimiter = ": ";
@@ -1413,6 +1413,15 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
}
// FS:LO FIRE-2899 - Faded text for IMs in nearby chat
+ // FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase
+ static LLCachedControl sFSChatsUppercase(gSavedSettings, "FSChatsUppercase");
+ if (sFSChatsUppercase)
+ {
+ LLStringUtil::toUpper(message);
+ LLStringUtil::toUpper(mLastFromName);
+ }
+ //
+
mEditor->appendText(message, FALSE, style_params);
}
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index 461f4467a0..eb2c0b60b2 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -4143,6 +4143,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
}
return;
}
+ // FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase
+ static LLCachedControl aFSChatsUppercase(gSavedSettings, "FSChatsUppercase");
+ bool allowConvertChatUppercase = true;
+ //
// Look for IRC-style emotes
if (ircstyle)
@@ -4177,6 +4181,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
{
mesg.erase(0, 1);
LLStringUtil::toLower(mesg);
+ allowConvertChatUppercase = false;
std::string strExecuted, strFailed, strRetained, *pstr;
@@ -4253,6 +4258,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
if ( (rlv_handler_t::isEnabled()) && (chatter) && (chat.mSourceType == CHAT_SOURCE_OBJECT) &&
(gSavedSettings.getBOOL("EffectScriptChatParticles")) )
{
+ allowConvertChatUppercase = false;
LLPointer psc = new LLViewerPartSourceChat(chatter->getPositionAgent());
psc->setSourceObject(chatter);
psc->setColor(color);
@@ -4272,15 +4278,26 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
case CHAT_TYPE_START:
case CHAT_TYPE_STOP:
LL_WARNS("Messaging") << "Got chat type start/stop in main chat processing." << LL_ENDL;
+ allowConvertChatUppercase = false;
break;
default:
LL_WARNS("Messaging") << "Unknown type " << chat.mChatType << " in chat!" << LL_ENDL;
+ allowConvertChatUppercase = false;
break;
}
chat.mText += mesg;
}
+ // FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase
+ if (aFSChatsUppercase && allowConvertChatUppercase)
+ {
+ std::string chatMessageUppercase = chat.mText;
+ LLStringUtil::toUpper(chatMessageUppercase);
+ chat.mText = chatMessageUppercase;
+ }
+ //
+
// We have a real utterance now, so can stop showing "..." and proceed.
if (chatter && chatter->isAvatar())
{
@@ -4293,6 +4310,15 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
std::string formated_msg = "";
LLViewerChat::formatChatMsg(chat, formated_msg);
LLChat chat_bubble = chat;
+
+ // FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase
+ // Chat bubbles
+ if (aFSChatsUppercase && allowConvertChatUppercase)
+ {
+ LLStringUtil::toUpper(formated_msg);
+ }
+ //
+
chat_bubble.mText = formated_msg;
((LLVOAvatar*)chatter)->addChat(chat_bubble);
}
diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
index c6a159abd6..f142dc46a0 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -144,6 +144,15 @@
width="60" />
+
+