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
We now display custom labels and tooltips for the various
secondlife:///app/agent SLapp suffixes that we support. These include:
/mute, /unmute, /pay, /im, /offerteleport, and /requestfriend. For
example, entering:
secondlife:///app/agent/3e2d81e8-6269-8100-860e-c64e5cee3c2c/mute
Now displays the SLapp in text chat as "Mute <Name>", rather than
simply "<Name>".
- Added new static method LLSLURL::isValidSLURL() whic uses LLUrlRegistry::isUrl() to validate SLURLs and not just chek prefixes as LLSLURL::isSLURL() does.
- Used it in slurl DnD check in LLViewerWindow.
- LLUrlEntrySLURL regexp was changed not to pass non-valid SLURLS (such as one from the bug description).
--HG--
branch : product-engine
Reason: LLUrlEntrySLURL::getLocation() failed to parse maps.secondlife.com SLURLs (though worked fine for slurl.com ones).
--HG--
branch : product-engine