diff options
author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2025-04-18 17:48:02 +0300 |
---|---|---|
committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2025-04-18 19:59:17 +0300 |
commit | 3e46d707a243e91046b3ab0af8f844d7f40f77b4 (patch) | |
tree | 1002261dae8d3e914a7816f221edfde3c2c27622 /indra/llui/llchatentry.cpp | |
parent | 90c7684112714fd5ca2c8d73d8ca9bef3fc1e5d6 (diff) |
#3758 initial chat mention support
Diffstat (limited to 'indra/llui/llchatentry.cpp')
-rw-r--r-- | indra/llui/llchatentry.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/indra/llui/llchatentry.cpp b/indra/llui/llchatentry.cpp index da5afd0386..55e4beafb6 100644 --- a/indra/llui/llchatentry.cpp +++ b/indra/llui/llchatentry.cpp @@ -51,6 +51,7 @@ LLChatEntry::LLChatEntry(const Params& p) mCurrentHistoryLine = mLineHistory.begin(); mAutoIndent = false; + mShowChatMentionPicker = true; keepSelectionOnReturn(true); } @@ -249,3 +250,21 @@ void LLChatEntry::enableSingleLineMode(bool single_line_mode) mPrevLinesCount = -1; setWordWrap(!single_line_mode); } + +LLWString LLChatEntry::getConvertedText() const +{ + LLWString text = getWText(); + S32 diff = 0; + for (auto segment : mSegments) + { + if (segment && segment->getStyle() && segment->getStyle()->getDrawHighlightBg()) + { + S32 seg_length = segment->getEnd() - segment->getStart(); + std::string slurl = segment->getStyle()->getLinkHREF(); + + text.replace(segment->getStart() + diff, seg_length, utf8str_to_wstring(slurl)); + diff += (S32)slurl.size() - seg_length; + } + } + return text; +} |