// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent) { LLColor4 text_color = get_text_color(chat); BOOL invisible_script_debug_chat = chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); #if LL_LCD_COMPILE // add into LCD displays if (!invisible_script_debug_chat) { if (!from_instant_message) { AddNewChatToLCD(chat.mText); } else { AddNewIMToLCD(chat.mText); } } #endif if (!invisible_script_debug_chat && !chat.mMuted && gConsole && !local_agent) { F32 size = CHAT_MSG_SIZE; if (chat.mSourceType == CHAT_SOURCE_SYSTEM) { text_color = gSavedSettings.getColor("SystemChatColor"); } else if(from_instant_message) { text_color = gSavedSettings.getColor("IMChatColor"); size = INSTANT_MSG_SIZE; } // We display anything if it's not an IM. If it's an IM, check pref... if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") ) { gConsole->addLine(chat.mText, size, text_color); } } if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) addChatHistory(chat,false); LLTextParser* highlight = LLTextParser::getInstance(); highlight->triggerAlerts(gAgent.getID(), gAgent.getPositionGlobal(), chat.mText, gViewerWindow->getWindow()); if(!from_instant_message) addChatHistory(chat); }
// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent) { LLColor4 text_color = get_text_color(chat, from_instant_message); BOOL invisible_script_debug_chat = chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) if (rlv_handler_t::isEnabled()) { // TODO-RLVa: we might cast too broad a net by filtering here, needs testing if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) && (!chat.mRlvLocFiltered) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if (!from_instant_message) RlvUtil::filterLocation(rlvChat.mText); rlvChat.mRlvLocFiltered = TRUE; } if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!chat.mRlvNamesFiltered) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if ( (!from_instant_message) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { // Filter object and system chat (names are filtered elsewhere to save ourselves an gObjectList lookup) RlvUtil::filterNames(rlvChat.mText); } rlvChat.mRlvNamesFiltered = TRUE; } } // [/RLVa:KB] if (!invisible_script_debug_chat && !chat.mMuted && gConsole && !local_agent) { // We display anything if it's not an IM. If it's an IM, check pref... if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") ) { gConsole->addConsoleLine(chat.mText, text_color); } } if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) addChatHistory(chat,false); triggerAlerts(chat.mText); if(!from_instant_message) addChatHistory(chat); }
//static void LLFloaterChat::chatFromLogFile(LLLogChat::ELogLineType type, std::string line, void* userdata) { switch (type) { case LLLogChat::LOG_EMPTY: if (gSavedPerAccountSettings.getBOOL("LogChat")) addChatHistory(static_cast<LLFloaterChat*>(userdata)->getString("IM_logging_string"), false); break; case LLLogChat::LOG_END: if (gSavedPerAccountSettings.getBOOL("LogChat")) addChatHistory(static_cast<LLFloaterChat*>(userdata)->getString("IM_end_log_string"), false); break; case LLLogChat::LOG_LINE: addChatHistory(line, FALSE); break; default: // nothing break; } }
// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent) { LLColor4 text_color = get_text_color(chat); BOOL invisible_script_debug_chat = chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); if (!invisible_script_debug_chat && !chat.mMuted && gConsole && !local_agent) { if (chat.mSourceType == CHAT_SOURCE_SYSTEM) { text_color = gSavedSettings.getColor("SystemChatColor"); } else if(from_instant_message) { text_color = gSavedSettings.getColor("IMChatColor"); } // We display anything if it's not an IM. If it's an IM, check pref... if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") ) { gConsole->addConsoleLine(chat.mText, text_color); } } if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) addChatHistory(chat,false); triggerAlerts(chat.mText); if(!from_instant_message) addChatHistory(chat); }
// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL local_agent) { triggerAlerts(chat.mText); // Add the sender to the list of people with which we've recently interacted. // this is not the best place to add _all_ messages to recent list // comment this for now, may remove later on code cleanup //if(chat.mSourceType == CHAT_SOURCE_AGENT && chat.mFromID.notNull()) // LLRecentPeople::instance().add(chat.mFromID); addChatHistory(chat, true); }
//static void LLFloaterChat::chatFromLogFile(LLLogChat::ELogLineType type , std::string line, void* userdata) { switch (type) { case LLLogChat::LOG_EMPTY: case LLLogChat::LOG_END: // *TODO: nice message from XML file here break; case LLLogChat::LOG_LINE: { LLChat chat; chat.mText = line; addChatHistory(chat, FALSE); } break; default: // nothing break; } }
//static void LLFloaterChat::chatFromLogFile(LLLogChat::ELogLineType type , const LLSD& line, void* userdata) { switch (type) { case LLLogChat::LOG_EMPTY: case LLLogChat::LOG_END: // *TODO: nice message from XML file here break; case LLLogChat::LOG_LINE: case LLLogChat::LOG_LLSD: { LLChat chat; chat.mText = line["message"].asString(); get_text_color(chat); addChatHistory(chat, FALSE); } break; default: // nothing break; } }
// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent) { LLColor4 text_color = get_text_color(chat); BOOL invisible_script_debug_chat = chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) if (rlv_handler_t::isEnabled()) { // TODO-RLVa: we might cast too broad a net by filtering here, needs testing if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) && (!chat.mRlvLocFiltered) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if (!from_instant_message) gRlvHandler.filterLocation(rlvChat.mText); rlvChat.mRlvLocFiltered = TRUE; } if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!chat.mRlvNamesFiltered) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if ( (!from_instant_message) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { // Filter object and system chat (names are filtered elsewhere to save ourselves an gObjectList lookup) gRlvHandler.filterNames(rlvChat.mText); } rlvChat.mRlvNamesFiltered = TRUE; } } // [/RLVa:KB] #if LL_LCD_COMPILE // add into LCD displays if (!invisible_script_debug_chat) { if (!from_instant_message) { AddNewChatToLCD(chat.mText); } else { AddNewIMToLCD(chat.mText); } } #endif if (!invisible_script_debug_chat && !chat.mMuted && gConsole && !local_agent) { F32 size = CHAT_MSG_SIZE; if (chat.mSourceType == CHAT_SOURCE_SYSTEM) { text_color = gSavedSettings.getColor("SystemChatColor"); } else if(from_instant_message) { text_color = gSavedSettings.getColor("IMChatColor"); size = INSTANT_MSG_SIZE; } // We display anything if it's not an IM. If it's an IM, check pref... if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") ) { gConsole->addLine(chat.mText, size, text_color); } } if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) addChatHistory(chat,false); LLTextParser* highlight = LLTextParser::getInstance(); highlight->triggerAlerts(gAgent.getID(), gAgent.getPositionGlobal(), chat.mText, gViewerWindow->getWindow()); if(!from_instant_message) addChatHistory(chat); }
// Put a line of chat in all the right places void LLFloaterChat::addChat(const LLChat& chat, BOOL from_instant_message, BOOL local_agent) { LLColor4 text_color = get_text_color(chat, from_instant_message); BOOL invisible_script_debug_chat = chat.mChatType == CHAT_TYPE_DEBUG_MSG && !gSavedSettings.getBOOL("ScriptErrorsAsChat"); // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) if (rlv_handler_t::isEnabled()) { // TODO-RLVa: we might cast too broad a net by filtering here, needs testing if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) && (!chat.mRlvLocFiltered) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if (!from_instant_message) RlvUtil::filterLocation(rlvChat.mText); rlvChat.mRlvLocFiltered = TRUE; } if ( (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (!chat.mRlvNamesFiltered) ) { LLChat& rlvChat = const_cast<LLChat&>(chat); if ( (!from_instant_message) && (CHAT_SOURCE_AGENT != chat.mSourceType) ) { // Filter object and system chat (names are filtered elsewhere to save ourselves an gObjectList lookup) RlvUtil::filterNames(rlvChat.mText); } rlvChat.mRlvNamesFiltered = TRUE; } } // [/RLVa:KB] if (!invisible_script_debug_chat && !chat.mMuted && gConsole && !local_agent) { // We display anything if it's not an IM. If it's an IM, check pref... if ( !from_instant_message || gSavedSettings.getBOOL("IMInChatConsole") ) { // Replace registered urls in the console so it looks right. std::string chit(chat.mText), // Read through this chat; // Add parts to this LLUrlMatch match; while (!chit.empty() && LLUrlRegistry::instance().findUrl(chit, match)) { const auto start(match.getStart()), length(match.getEnd()+1-start); if (start > 0) chat += chit.substr(0, start); // Add up to the start of the match chat += match.getLabel() + match.getQuery(); // Add the label and the query chit.erase(0, start+length); // remove the url match and all before it } if (!chit.empty()) chat += chit; // Add any leftovers gConsole->addConsoleLine(chat, text_color); } } if(from_instant_message && gSavedPerAccountSettings.getBOOL("LogChatIM")) log_chat_text(chat); if(from_instant_message && gSavedSettings.getBOOL("IMInChatHistory")) addChatHistory(chat,false); triggerAlerts(chat.mText); if(!from_instant_message) addChatHistory(chat); }