* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN
[CL 2329610 by Wes Hunt in Main branch]
Web Browser widget displays a web page and allows for some optional basic controls.
Added initialisation and update of Web Browser module to Slate Application so that each web browser window doesn't have to manage this individually.
Added example usage of the widget to STestSuite so that it can be used via the SlateViewer app.
Fixed error in name of CEF3Utils module.
[CL 2319730 by Matthew Griffin in Main branch]
- Caused by class name collision: we currently export all the names (i.e. visibility=default) in non-Shipping configurations because this is needed for callstack generation. If there are two (or more) classes named the same in different dynamic libraries, this can cause problems during run-time, because the names will be resolved pretty much arbitrarily (depending on the order of loading the said libraries)
- This particular issue seems to have involved FTextStyleDecorator::Create() static method, which, instead of creating an instance of FTextStyleDecorator from IntroTutorials module, created FTextStyleDecorator from the test suite.
- Solution for this one is to rename one of classes to something different.
#codereview Josh.Adams, Jamie.Dale
[CL 2312074 by Dmitry Rekman in Main branch]
#ttp 345475 - NUX:Material Editor: Vector parameter alpha channel is in the "advanced" part of the color picker.
#branch UE4
#proj Editor.MaterialEditor, Runtime.AppFramework
#add Added extra construction parameter to SColorPicker (ExpandAdvancedSection) and added it as an option to SColorPicker::OpenColorPicker.
#reviewedby Matt.Kuhlenschmidt
[CL 2310372 by Richard TalbotWatkin in Main branch]
* Allows code to skip the expensive stuff when no render transform is used. Specifically, skips render transform related concatenate calls in FGeometry ctor.
* UMG now sets a NULL RenderTransform when it detects the transform is identity.
TTP#346674: Slate: Editor performance has regressed in debug and release.
TTP#346490: MAIN: Performance drop when gathering resources
#codereview:nick.atamas,nick.darnell
[CL 2307703 by Wes Hunt in Main branch]
* This is a hack for the UMG designer to ensure any render transforms in designed widgets do not leak outside the designer. Implemented in a low-level hacky way so we don't have to change any public APIs because clipping control can and will change in better ways going forward.
* SlateViewer now uses it for all it's views as a test, and the UMG designer uses it.
* ElementBatcher now uses a new hash function that incorporates the ScissorRect, and slightly improves the efficiency, definitely improving the accuracy.
#TTP346004: UMG: Scaling a widget will result in it scaling outside of the graph
#codereview:nick.darnell,matt.kuhlenschmidt
[CL 2303045 by Wes Hunt in Main branch]
Improved text layout support when inserting runs/text or splitting lines on runs that were non-text (images or widgets). The text layout now inserts an extra text run when splitting a non-text run, which avoids issues where text was either being inserted into a non-text run (and vanishing), or an image run was being cloned (and appearing twice).
This also fixes the cursor movement in the multiline editable text when selecting over images or widgets (the cursor would jump to the start of the document as GetTextIndexAt hadn't been implemented. Additionally, it also fixes an issue where Measure was always trying to place the cursor at the end of an image run (ignoring the values of BeginIndex and EndIndex) which made the cursor offset draw in the wrong place.
These changes required the text layout to be able to create a default text run, which involved refactoring the text marshallers as the Slate text run now knows about the default text style, taking that responsibility away from the marshallers
Added tutorial-specific image decorator that accepts a content-relative or engine relative image path.
Added button to tutorial rich text editor to add new images.
All previously-imported images should still 'work'.
reviewed by Jamie.Dale,Nick.Atamas,Justin.Sargent
[CL 2302278 by Thomas Sarkanen in Main branch]
The width used for justification is the larger of the "desired size" (as fixed wrapping widths force the desired size to that width), or the "actual size" (in the case that the text is smaller than its containing widget, and the text widget is set to fill width).
The "actual size" wasn't being scaled before being used to offset the text blocks, and also wasn't taking into account the text layout margin. Both of these issues lead to some incorrect offsets being calculated.
Also added a test case for STextBlock justification to the widget gallery in Slate Viewer.
ReviewedBy Nick.Darnell, Nick.Atamas
[CL 2299261 by Jamie Dale in Main branch]
The problem is that the color picker has a global static instance of the color themes widget. By the time that widget is being destroyed as part of static shutdown, Slate and ICU are already unloaded. Ideally, we wouldn't have a global variable here at all. Some further research is needed to understand why it was added in the first place. In the meantime, the variable is being changed to a weak pointer, so it gets destroyed when the last color picker instance gets destroyed.
#CodeReview: jamie.dale, saul.abreu
[CL 2298812 by Max Preussner in Main branch]