This should fix the run off segment bugs by not overriding LLTextBase::clearSegments() in LLTextEditor
TODO: Move the rest of the script stuff out of LLTextEditor for simplicity sake
consolidated most indra-specific constants in llcommon under indra_constants.h
fixed issues with operations on mixed unit types (implicit and explicit)
made LL_INFOS() style macros variadic in order to subsume other logging methods
such as ll_infos
added optional tag output to error recorders
- Replaced LLLineEditor with newly created LLChatEntry
- Moved some functionality (such as setting label) to the LLTextBase as it can be useful to the other derived classes
The bug was fixed by Satomi Ahn. Here is the description of what causes the problem from her comment in ticket:
"Disabling the loading of syntax keywords in LLScriptEdCore::postBuild() removes the freeze (and with it: syntax highlighting).
So it obviously comes from the parsing of the text.
I also noticed something else: by adding a llwarn in LLTextEditor::updateSegments(), I saw that this function was called a lot of times when loading a script, roughly once for each line in the script (naively I would have thought only necessary to update when finished... or to only update the new line).
My llwarn was in the "if (mReflowIndex < S32_MAX && mKeywords.isLoaded())", which means that, at each call, the text is actually parsed for all keywords... so the parsing of the script becomes quadratic instead of linear!!!"
- To fix this, Satomi added a flag depending on which parsing is disabled when it is not necessary.
EXT-4547 [BSI] it is possible to highlight multiple layers of chat
EXT-3844 Mouse wheel camera zoom is not reflected on View popup slider
EXT-3103 Add an option to restrict entering non-ascii symbols in text editor.
reviewed by Leyla
This should fix the inefficiencies in the append path that made viewer FPS drop severely when addinglarge amounts of text to the nearby chat floater.
Resizing the floater with a huge amount of text in it is still pretty bad, but fixing that will require some bigger architectural changes.
Changed LLTextBase::needsReflow() to take an offset at which to start reflow processing.
Changed most needsReflow() calls in LLTextBase to supply a proper index.
Changed LLTextBase::reflow() to use the reflow index maintained by needsReflow().
Removed all needsReflow() calls from LLTextEditor (the only way for it to manipulate the text is through functions in LLTextBase that already manage reflowing internally).
Removed LLTextEditor::replaceUrlLabel(), since it was identical to the inherited version LLTextBase::replaceUrlLabel().
Reviewed by Richard.