re-introduced don's refactor of low-level openGL calls pulling out of llui
and putting them into llrender. Took the new code from their updated versions
from the CHUI merge, but put them in a place accessible to appearance utility.
attempted fix for gcc compile errors
can't use typeid() on a class that doesn't have a method
defined in a translation unit
fix is to force classes deriving from LLMemTrackable to
use their own static member named sMemStat
This is a modified version of the fix for FIRE-1574 and comes with an additional debug setting "FSFixCursorPosition" to disable the FIRE-1574 fix completely for QA testing
- 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
Observations and broken stuff so far:
- LLSideTray is gone.
- LLBottomTray is gone.
- LLFloaterSnapshot was changed and gave lots of merge conflicts. Flickr upload will be broken.
- LLNearbyChat is derived from LLPanel now. That broke quite some stuff rearding autohiding and docking of chatbar.
- Profile floaters are gone and all web based now.
- Russian translation gave huge mere conflicts with the new russian xml files from LL. Unmergeable. I took the LL files.
- XUI files in general will need some love and testing.
Added handling of the wrapped lines case when calculating the starting position for selection.
The bug is a regression caused by the fix of STORM-320 which was dealing with calculating the position of the input cursor while navigating through the lines of text with word wrapping enabled.
EXP-755 FIX [PUBLIC] 'Search' and 'World Map' links in Sidebar are unclickable
fixed issues with UI scaling and text layout as well as incorrect text editor rect transforms
reviewed by Callum
Committed on behalf of Richard Linden:
This patch makes clipping work consistently with text and embedded widgets. The widgets will only be displayed if the corresponding text they are embedded in is displayed. There is also a new param "clip" for text widgets that can be used to disable clipping entirely. I introduced this as a potential work around due to the fact that we *used* to assume that text was never clipped in the vertical direction unless we had scrolling turned on. This hasn't been the case for over a year, but now we can selectively turn off vertical text clipping with (clip="false") if we have to.
Reason: If some child of transparent LLFloater has a visible non-transparent background then this part of floater is non-transparent. As a result floater became partially transparent.
Solution: When transparent floater changes focus, iterate through its children and set corresponding (corresponding to whether control in active or in inactive floater see STORM-535) transparency value.
- Added method LLUICtrl::getCurrentTransparency. This method calculates transparency level of a control. Calculated value should be used as an alpha chennel value in case we want this control to be transparent. For now this method is used by LLFloater to adjust transparency of its children.
- Added calculating of transparecny level for: LLLineEditor, LLTextBase, LLinventoryListItem, LLScrollContainer, LLScrollListCtrl, LLAccrodionCtrlTab.
- Added method LLFlaoter::updateChildrenTransparency which updates transparency value of its children
LLTextBase::setCursor() sometimes failed to work properly if line wrapping was enabled.
This is a slightly optimized version of the patch made by Satomi Ahn.
Issues: Graphics preferences tab, lighting, depth of field
Issues: Color preferences tab, new direct chat
Issues: Build floater Mesh build tab
Issues: German translations of build, viewer menus
Issues: pipeline issues with mac, possibly other things
Issues: uploading content / temp content
Issues: Windlight quickprefs, parcel windlight, RLVa windlight
There were two problems:
1. Underlining broke when avatar's first and second name were on different lines.
2. There was no underline on hover for avatar miniinspector links in plaintext IM.
- First problem was caused by calling LLOnHoverChangeableTextSegment::draw() for the same segment twice- for first and second name that were
on different lines, while handleHover() was called only once. So handleHover() was called -> text was underlined -> first part of segment was
drawn underlined -> its draw set style back to normal -> second part of segment was drawn without underlining.
Fixed this by setting style back to normal only when drawing the last part of the segment.
- Second problem was caused by unusual way of appending link to text in chat history.
Changed it so that LLTextBase::appendText() now receives link not inside style params, but directly.
Also added "/inspect" ending to check in LLUrlEntryAgent::underlineOnHoverOnly().
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/833/
--HG--
branch : product-engine
There were two problems:
1. Underlining broke when avatar's first and second name were on different lines.
2. There was no underline on hover for avatar miniinspector links in plaintext IM.
- First problem was caused by calling LLOnHoverChangeableTextSegment::draw() for the same segment twice- for first and second name that were
on different lines, while handleHover() was called only once. So handleHover() was called -> text was underlined -> first part of segment was
drawn underlined -> its draw set style back to normal -> second part of segment was drawn without underlining.
Fixed this by setting style back to normal only when drawing the last part of the segment.
- Second problem was caused by unusual way of appending link to text in chat history.
Changed it so that LLTextBase::appendText() now receives link not inside style params, but directly.
Also added "/inspect" ending to check in LLUrlEntryAgent::underlineOnHoverOnly().
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/833/
--HG--
branch : product-engine
Avatar links are now underlined only on hover. Also they have the same color as other links.
- Underlining text and getting it back to normal are done in handleHover() and draw() of new LLOnHoverChangeableTextSegment
class derived from LLNormalTextSegment. This class has two pointers to styles- one for style which will be used for text
on hover, and another otherwise. This special type of text segment is used if link's boolean member mUnderlineOnHoverOnly
is true. So it is URL's flag depending on which textbase adds new text segment(like it currently happens with mDisabledLink).
- Changed avatar link color in colors.xml to emphasis (because it was white before and was inconsistent with other links).
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/749/
--HG--
branch : product-engine
Avatar links are now underlined only on hover. Also they have the same color as other links.
- Underlining text and getting it back to normal are done in handleHover() and draw() of new LLOnHoverChangeableTextSegment
class derived from LLNormalTextSegment. This class has two pointers to styles- one for style which will be used for text
on hover, and another otherwise. This special type of text segment is used if link's boolean member mUnderlineOnHoverOnly
is true. So it is URL's flag depending on which textbase adds new text segment(like it currently happens with mDisabledLink).
- Changed avatar link color in colors.xml to emphasis (because it was white before and was inconsistent with other links).
Reviewed by Richard Nelson at https://codereview.productengine.com/secondlife/r/749/
--HG--
branch : product-engine
Due to some legacy issues, text boxes will not gray out on disable unless they have their text_readonly_color property in xui set to "LabelDisabledColor" (or some other color distinct from their text color).
Reviewed by Richard.
Due to some legacy issues, text boxes will not gray out on disable unless they have their text_readonly_color property in xui set to "LabelDisabledColor" (or some other color distinct from their text color).
Reviewed by Richard.
EXT-8235 FIX HUGE long delay when reopening and/or closing edit outfit sidepanel if "Add More..." is active
EXT-7695 FIX UI lockup after add wearable, right click av -> Change Outfit
reviewed by Vir
Added a check in LLTextBase::drawSelectionBackground() to keep it from sending degenerate rectangles to gl_rect_2d(). This seems to be what was causing the GL state to go bad.
Reviewed by Richard at http://codereview.lindenlab.com/534001
Added an optional bool parameter "hit_past_end_of_line" to LLTextBase:: getDocIndexFromLocalCoord() and getSegmentAtLocalPos(). Default is true, which gives the old behavior. If false, clicks past the end-of-line won't map to the last segment on the line.
Made LLNormalTextSegment::handleHover(), handleRightMouseDown(), handleMouseDown(), and handleMouseUp() call getSegmentAtLocalPos() in this new mode before processing URL actions, and only do the processing if it returns the same segment.
Reviewed by Richard.
Suppresses rendering of text in LLNormalTextSegment that represent an icon,
properly computes vertical spacing based on font height, and adds padding
to the right of the icon.
Suppresses rendering of text in LLNormalTextSegment that represent an icon,
properly computes vertical spacing based on font height, and adds padding
to the right of the icon.
(transplanted from 33be702e47c359ccaeb47f251e10753fd173cc09)
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.
Removed some unnecessary string copies in LLTextBase and LLNormalTextSegment by changing getWText() to return const LLWString& (instead of LLWString), and storing the result in a const LLWString& instead of an LLWString in places where the string doesn't need to be modified.
Made LLTextViewModel::getDisplay() also return const LLWString& instead of LLWString.
Removed a couple of unused local string variables in LLTextBase (the compiler flagged these after converting the local copies to const LLWString&).
The new <nolink>URL</nolink> provides a more flexible solution that
can be specified in XUI (as we now do to disabled hyperlinking for the
sim hostname in the About floater).
We are running into a bunch of places where we don't want to allow
hyperlinking of URLs like secondlife.com in text boxes. I've therefore
added a new type of URL regex that disables URL hyperlinking. Simply
enclose the URL in a <nolink> tag, e.g.:
<nolink>secondlife.com</nolink>
Added support for specifying a black list of URLs on a per-widget
basis. URLs on this black list will not be hyperlinked in the text
widget. The About dialog adds the sim hostname to this black list.
Add 1 pixel of padding to clipping rect computation. I think there is a deeper
problem in the font width computation code, but I don't know where. Opened EXT-3112
for the deeper issue. Reviewed with Leyla.
floaters can now overlap sidetray
fixed text selection background color to be inverse of text fg color
EXT-2713 Script editor automatically scrolls to the top of script text when text is longer than the window.
reviewed by James
-- Improved calculating of the LLTextBase::mContentsRect to take into account "left" coordinate.
Previous implementation just ignored it.
--HG--
branch : product-engine
removed non-localized, invisible labels from scrollbar and tab container arrows
EXT-1626 - there is text overlaping in group info mini inspector
reviewed by James
SLurls to the LLUrlRegistry. These are now displayed with the more
human-readable label of "Show Map for XXXX" and sport a context menu
with various operations.
I also added "Show on Map" options to the context menus for other
location-based SLurls.
I also internationalized the text for "Teleport to" and the new "Show
Map for" strings.
EXT-2011 titles of IM sessions aren't aligned to center
EXT-3025 Pick's description overlaps picks name
also moved tool tip param default to tool_tip.xml
also made default param<const LLFontGL*> be SansSerif
reviewed by Leyla
llfontgl::Addchar now called consistently when requesting font metrics
no longer possible to have font glyph info without rendered font
EXT-1294 - LLExpandableTextBox: wrong ellipses
reviewed by James and Mani
combined clip and scroll attributes of text editors and text boxes...if you want to clip text, you need to introduce a scrollbar
moved clear to LLTextEditor so that text boxes won't empty out when calling LLPanel::clearCtrls()
EXT-1354 - added optional wrapping to LLTooltips...inspector tooltips don't wrap, everything else does
added LLFastTimer::reset call on application init to prime timers for pre-login timing
fixed tooltips positioning incorrectly due to mis-sized tooltipview
eliminated hide_scrollbar param for text editors
reviewed by Leyla
fixed some textbox and text editor layout problems (getWidth called with wrong index)
EXT-1302 - rewrite LLExpandableTextBox to use new LLTextBase functionality (using custom LLExpanderSegment)
reviewed by James
Resolved conflicts in lltexteditor.cpp, llchatitemscontainerctrl.cpp, llchatmsgbox.cpp, llfloaterbuycurrency.cpp, llnearbychat.cpp, floater_buy_currency.xml, and ru/strings.xml
Merging revisions 134925-135157 of svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-4 into C:\source\viewer-2.0.0-3, respecting ancestry
EXT-877 There is no tooltip with a date for Time indicator in Nav bar
EXT-860 Crosshairs and "Press ESC to..." warning are dislocated in mouselook mode when UI Size is not exactly set to 1.00 (Menu Me -> Preferences-> Graphics)
EXT-783 Script editor inserts text twice when using the editors paste, or choosing LSL elements from the pull-down list.
EXT-764 mis-location of cursor in edit script panel (fixed cursor width)
EXT-658 Inventory window's "Fetched Items" needs spacing
reviewed by James
This didn't work on Windows because wchar_t is 2 bytes on that
platform, not 4 bytes (whereas llwchar is 4 bytes everywhere).
Boost's regex methods need to work on wchar_t, but I believe
that using a UTF-16 string would still be prone to crashing on
Windows as UTF-16 is still a variable-length encoding. Besides,
trying to compile a UTF-16 solution generates weird link errors.
Instead, I'm going to fix this problem a different way. And
I'm starting by reverting the previous attempt. Thanks Win32.
work on an LLWString instead of a std::string, so that we don't have
to worry about character offsets for variable-length-encoded UTF-8
strings.
This was causing crashes whenever we would try to show a textbox with
a URL and foreign characters (> 1 byte chars). Damn, I suck!
Viewer 2.0 (viewer-2.0.0-3). This provides support for clickable Urls
in text editors and textboxes, with right-click context menus,
tooltips, and alternate link labels. This includes alert boxes, the
login progress window, local chat and IM interfaces, etc. As well as
context menus for avatars and groups in list widgets. Includes fixes
for the following individual JIRAs:
DEV-8763 VWR-10636: Hyperlinks in alert dialogs should be selectable (clickable)!
DEV-38829 EXT-742: Remove LLLink class
DEV-35459 VWR-14679: SLURLs and teleport Links not parsed properly
DEV-19842 VWR-8773: Closing parenthesis ")" breaks urls
DEV-21577 VWR-9405: In-world SLURLs containing "(" or ")" are not treated as a hyperlink in chat
DEV-37652 SEC-435: Object Chat/IMs are untraceable (VWR-2388) Fix has left flaw
DEV-10353: URLs in chat log terminated incorrectly when newline in chat
DEV-2925: In chat history, use a teleport hyperlink as source name for object IMs
DEV-36192: Need a way to copy Avatar names and Group names
DEV-2926: Allow viewer hyperlinks to have different text than the actual url
DEV-27253: Add easy way to copy URLs from viewer chat
DEV-38274: Make About Second Life window use new Url hyperlinking features
DEV-39076: No url support in Text Editors
DEV-7476 VWR-2172: Add hyperlinks to chat console for easier access
DEV-7475: Add hyperlinks to notecards!
DEV-35375 EXT-128: HTTPS urls aren't loaded in the internal browser by click
Master JIRA issues: DEV-32819, DEV-323820, DEV-7474
Testing performed against QAR-1789
svn merge -r 131623:131889 svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer-2.0.0-slurl-3
svn merge -r 131978:132515 svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer/viewer-2.0.0-slurl-3