From 8fcf4829a4f97074554635446fea6260c50684e3 Mon Sep 17 00:00:00 2001 From: PanteraPolnocy Date: Sun, 21 Oct 2012 01:52:50 +0200 Subject: [PATCH] FIRE-7625: Option to display group chats, IM sessions and nearby chat always in uppercase --- indra/newview/app_settings/settings.xml | 11 ++++++++ indra/newview/llcallingcard.cpp | 9 +++++++ indra/newview/llchathistory.cpp | 11 +++++++- indra/newview/llviewermessage.cpp | 26 +++++++++++++++++++ .../default/xui/en/panel_preferences_chat.xml | 9 +++++++ .../default/xui/pl/panel_preferences_chat.xml | 1 + 6 files changed, 66 insertions(+), 1 deletion(-) 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 + + Comment + Group chats, IM sessions and nearby chat always in uppercase. + Persist + 1 + Type + Boolean + Value + 0 + 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" /> + +