Actually respect the color they're supposed to be by setting text AFTER creation
Don't double up with setEnabled, we're setting read only through the constructor
Be Mouse Opaque, handle mouse events beyond scrolling, match group notices
Don't call things more than once, that's nonsense.
Default segments are now any segment that have no distinct features,
these segments can be combined into a contiguous segment to save space
and to cut down on calculation complexity!
This works for notifications, and profiles, and chats, and even updates!
Amazing, right?
SinguReplaceLinks is on by default, URL highlighting works regardless, no rogue labels with this off.
Select, right click, Copy Raw lets you copy the link with its hidden url shown
and you can paste it back the same way if you're wanting to paste it all over!
LLTextEditor overhaul synced the code with upstream LLTextBase as much as we could.
appendStyledText is now just appendText
Every setText appendText's now and adds a style based on the texteditor's color and font, this could slightly increase the weight of text editors (one extra segment) but it fixes a nasty bug with running past segmentation.
Also no longer update the utf8
Removed append() which was no longer being used
LLTextEditor and LLViewerTextEditor now have an extra boolean at the end of their constructors to have this replacement turned on at construction time (this also sets them read only)
Update TextSegments to have a Tooltip string, like upstream.
Hardened notecard previews so they don't accidentally replace the text when they go read only.
Thanks to Deltek and Router Gray for helping me test and debug this commit!
Added the feature of selecting an animation from combo boxes and it playing automatically if it should be at this moment.
Now for the stuff only developers will understand:
FloaterAO is now a FloaterSingleton, because it should've been behaving that way all along.
Refactors a lot, simplifies a lot, best view without space changes.
Reduces a lot of redundant blocks.
Creates some functions to make things like AOStates easier to get
AOStates are now an enum instead of a bunch of const ints.
Cleaned up includes.
NULL -> nullptr, virtual->override, BOOL->bool, for->foreach
Removed struct_tokens, it was redundant and actually just took up space.
No longer set all the children invisible, their parent does a good job of that.
Relate ComboBoxes to their states, so that we can easily get a setting and do a whole bunch of things with a lot less code.
Remove unused parameters and functions and variables
Remove unused boolean returns from functions.
Don't clear combo boxes just because one id is null.
Add a checkbox for creating desktop shortcut, restoring this functionality.
Fix install folder defaulting to 64-bit for 32-bit.
NOTICE: We now only support NSIS 3, no we don't care about your set up,
see our build-windows page for updated details on this.
Sync light state, bound shader, and various gl context states similarly to render matrices.
Texture handles now refcounted, as multiple viewer textures could ref the same handle (cubemaps do this)
Clean up gl extension loading a bit. Not necessary, but only look for ARB variants if not included in current core version. Removed unused extensions.
Use core shader api if supported, else use ARB. (FN signatures are identical. Just doing some pointer substitution to ARB if not core.)
Attempt at improving VBO update batching. Subdata updates better batched to gether per-frame.
There's probably other stuff I forgot that is in this changeset, too.
Todo: Fix lightstate assertion when toggling fullscreen with shaders off.