DEV-38453 Conversion to 2.0: Modernize and rearrange the nodes of the localized XUI; NO CHANGES TO ENGLISH.
- match the new structures/widget language of the post-skinning work
- restore some strings.xml entries from the former ui_strings.xml file
- copy the Low/Mid/High translations into strings.xml
- strip out all superfluous length= and type= parameters; these default to the EN value anyway
I intentionally did not yet rearrange menu_viewer.xml, since it is still in flux in English
This attempts to be pretty close to the 80-20 style guide (sizewise probably a bit closer than we were before) while remaining pragmatically close to what we've already been using in viewer2.
The main goal is to bring fonts to parity across all platforms to the extent that truncation issues and layout glitches need to be fixed and tested on only one platform, not 3+.
secondlife:///app/classifieds URLs because we do not have handlers for
these SLAPPs in 2.0.
Added support for secondlife://<location/<x>/<y>/<z> URLs, in addition
to the http://slurl.com SLURLs.
Also optimized LLUrlRegistry:findUrl() so that it avoids lots of
expensive regex calls when there is no URL in the text.
following SLAPP URL types in an untrusted browser:
secondlife:///app/agent/...
secondlife:///app/group/...
secondlife:///app/parcel/...
In order to find a compromise between supporting these commands and
security concerns over potential griefing vectors, we use a throttling
solution when these commands are issued by untrusted web browsers.
That is, we only process one command per 15 seconds.
This applies to external browsers, like Firefox, as well as the
internal SL browser.
Notably, we continue to block secondlife:///app/teleport URLs.
Reviewed by james.
brings up a notification telling you this; rather than displaying
the Place side panel with N/A information.
Now, if you click on an Event or Classified SLURL, you get this
unsupported alert (2.0 does not have side panels for these types
of assets, instead they are integrated into Search).
* Bugs: EXT-888 EXT-866 EXT-861 EXT-858 EXT-864 EXT-875 EXT-884 EXT-718 EXT-786 EXT-885 EXT-910 EXT-845 EXT-312 EXT-823 EXT-868
* New Development: EXT-748 EXT-863 EXT-835
QA: Please test Recent List to verify it has no troubles.
DEV-30182 Tooltips lose their translucent background
DEV-30508 Chat bar changes from white to dark upon text entry
DEV-30830 Text color change after UI size change
DEV-30751 Create object Name text field is grey out
reviewed by Q.
fixed up viewer files that relied on this being included for them).
Also changed LLStringUtil::getSubstitution() to be a private method.
Reviewed by steve.
by over 50 times.
Looking at the usage, toHTTPDateStream is not called anywhere (except
internally by toHTTPDateString), and toHTTPDateString is called only
once outside of lldate.cpp, by LLStringUtil::formatDatetime. Also, the
method is most commonly called with a single two-character token, such
as "%Y" or "%A".
I therefore removed toHTTPDateStream and optimized toHTTPDateString.
Setting the locale was the most expensive operation, so I looked into
caching that, both in terms of std::ostream and strftime. The timings
for those implementations (averaged over 10 calls) is:
toHTTPDateString timings:
- with ostream (current) -> 0.314156 ms
- with ostream and std::locale caching -> 0.033999 ms
- with strftime and setlocale() caching -> 0.005985 ms
I therefore went with the standard C library strftime solution.
I also wrote a few unit tests to make sure that I didn't break any
existing functionality, and tested this under Windows and Linux.
Reviewed by steve.