Introduce versioning system to GENERATED_*BODY macros
Search for existing functions using case sensitive and whole word match.
Move checks for existing of *_Validate and *_Implementation functions to *generated.cpp to allow changing that code in hotfixes.
#codereview Robert.Manuszewski
[CL 2508131 by Mikolaj Sieluzycki in Main branch]
- Optimized Tabify and Macroize
- Replaced various %s Spc(constant) calls with direct string literals
- Replaced injected indentation spaces with tabs (avoiding some of the work in Tabify; they were ultimately being replaced anyways)
- Replaced various %s of LINE_TERMINATOR with compile-time string literal concatenation
- Avoided case-insensitive work in various places
- Replaced direct references to FStringOutputDevice with a typedef to facilitate future optimizations
- Used Reset() instead of Empty() on various string builders and strings to reduce reallocations
[INTEGRATE] Change 2494450 by Michael.Noland@mnoland-T2784-HDepot on 2015/03/27 16:48:25
[CL 2494606 by Michael Noland in Main branch]
This will not fix warnings for UObject classes that implement legacy C++ interfaces for which we generate code (GENERATED_IINTERFACE_BODY), because, as far as I can tell, the code generator is currently not able to detect those cases. For example: class UFont : public UObject, public IFontProviderInterface --- IFontProviderInterface gets a _getUObject() injected, but we cannot detect this in the code generation for UFont. Some more work is needed here. It might be better to simply always generate _getUObject() for all classes, so that there are no weird special cases.
#CodeReview: steve.robb, dmitry.rekman
[CL 2492772 by Max Preussner in Main branch]
Slate Widget was failing, because of missing Slate dependencies. Testing introduced a couple of problems which all was fixed by this CL:
1. I introduced AdditionalDependencies in .uproject file and change "Add Code To Project..." procedure to fill this array if needed. UBT reads this field and builds the project with required modules. Needed for Slate classes.
2. Changed UHT to #include missing headers in generated.h files if it was missing an include for it's super class. It was causing problems if we were trying to add a subclass of BrushShape -- BrushShape.h didn't have #include "Brush.h" and UBrushShape was inheriting from UBrush.
3. Above problems also occured for Slate classes, but not all of them was UCLASSes, so I had to fixed that manually.
4. "Add Code To Project..." functionality was not invalidating UBT makefiles, which lead to omitting new source files during hot-reloading (even thought it was reporting a success). This change also should improve a bit performance, cause right now there is no "gathering" step -- there is only invalidate step which is a lot quicker.
5. Fixed "Selected Class Source" link to source class in Slate Widget and Slate Widget Style class.
#codereview Robert.Manuszewski
[CL 2481488 by Jaroslaw Palczynski in Main branch]
UE-11693 Compiler error when using Bind Event to OnTextChanged in UMG
UE-11674 BindEvent node gives "Wrong Event Dispatcher" error for BlueprintAssignable MC delegate
#codereview Jaroslaw.Palczynski
[CL 2477120 by Maciej Mroz in Main branch]
- Fixed some properties requiring 'instanced' keyword even though their type was marked as 'defaulttoinstanced"
- Removed 'Placeable' keyword from ALandscape (it has long been deprecated)
[CL 2473550 by Robert Manuszewski in Main branch]