diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h index 2823b770db..7f196c9fd3 100644 --- a/indra/llcommon/llchat.h +++ b/indra/llcommon/llchat.h @@ -64,7 +64,8 @@ typedef enum e_chat_style { CHAT_STYLE_NORMAL, CHAT_STYLE_IRC, - CHAT_STYLE_HISTORY + CHAT_STYLE_HISTORY, + CHAT_STYLE_MODERATOR }EChatStyle; // A piece of chat diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index cb06f3914f..e76ba4aa93 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -13552,5 +13552,16 @@ Change of this parameter will affect the layout of buttons in notification toast Value + PhoenixBoldGroupMods + + Comment + Boldify moderators' text in group chat + Persist + 1 + Type + Boolean + Value + 1 + diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp index 4e79590a25..d0575bf7b9 100644 --- a/indra/newview/llchathistory.cpp +++ b/indra/newview/llchathistory.cpp @@ -833,6 +833,12 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL style_params.color(LLColor4::grey); style_params.readonly_color(LLColor4::grey); } + + // Bold group moderators' chat -KC + if (chat.mChatStyle == CHAT_STYLE_MODERATOR) + { + style_params.font.style = irc_me ? "ITALICBOLD" : "BOLD"; + } if (use_plain_text_chat_history) { diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index bf37968f8c..d279c5f705 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -1070,6 +1070,7 @@ void LLIMFloater::sessionInitReplyReceived(const LLUUID& im_session_id) void LLIMFloater::updateMessages() { bool use_plain_text_chat_history = gSavedSettings.getBOOL("PlainTextChatHistory"); + bool bold_mods_chat = gSavedSettings.getBOOL("PhoenixBoldGroupMods"); std::list messages; @@ -1087,6 +1088,9 @@ void LLIMFloater::updateMessages() { LLSD chat_args; chat_args["use_plain_text_chat_history"] = use_plain_text_chat_history; + + LLIMModel::LLIMSession* pIMSession = LLIMModel::instance().findIMSession(mSessionID); + RLV_ASSERT(pIMSession); std::ostringstream message; std::list::const_reverse_iterator iter = messages.rbegin(); @@ -1107,6 +1111,16 @@ void LLIMFloater::updateMessages() chat.mFromName = from; chat.mTimeStr = time; chat.mChatStyle = is_history ? CHAT_STYLE_HISTORY : chat.mChatStyle; + + // Bold group moderators' chat -KC + if (!is_history && bold_mods_chat && pIMSession && pIMSession->mSpeakers) + { + LLPointer speakerp = pIMSession->mSpeakers->findSpeaker(from_id); + if (speakerp && speakerp->mIsModerator) + { + chat.mChatStyle = CHAT_STYLE_MODERATOR; + } + } // process offer notification if (msg.has("notification_id"))