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]
Rob asked me to back out GENERATED_*_BODY -> GENERATED_BODY change for now until the "_Validate and _Implementation auto-generation" discussion is over.
#codereview Robert.Manuszewski
[CL 2481343 by Jaroslaw Palczynski in Main branch]
We now sync the Content Browser view after adding a new class, and also open the BP editor when adding a new BP class.
[CL 2475251 by Jamie Dale in Main branch]
UE-9554 - Add BP/C++ Component's Show all classes list not expanded by default
It now hides the Object root if UObject is not a valid base class type, as this allows the next level of classes to be expanded out which looks much better when adding new component classes.
This involved a lot of shuffling of module dependencies so that we could link GameProjectGeneration to ClassViewer, as previously ClassViewer was directly linking to GameProjectGeneration.
I went through and fixed everything that was linking to GameProjectGeneration to instead list it as a dynamic dependency (which it is, as nothing needs to link to it), and then verified that everything was using ClassViewer correctly (found some places that were only marking it as a dynamic dependency without also adding it as an include module, causing issues with missing API macro definitions as they were including ClassViewer headers via a relative include path).
#codereview Andrew.Rodham
[CL 2451499 by Jamie Dale in Main branch]
The class wizard now filters out non-Blueprintable component types when adding a new BP component
UE-9604 - Add Blueprint Component dialog ignores Blueprintable metadata, allowing you to create a blueprint from any component at all
This vastly limits the selection until UE-8946 has been addressed.
This change also makes the class wizard verify that its featured classes pass the active class filter (as some featured component classes aren't currently Blueprintable).
[CL 2448686 by Matthew Griffin in Main branch]
UE-9293 - Should offer 'Create BP' when right clicking on C++ class in Browser
There is now a "Create Blueprint class based on X" option alongside the "Create C++ class derived from X" option when viewing the context menu for a C++ Class in the Content Browser. This allows you to create a new Blueprint asset from C++ classes that are marked as blueprintable.
[CL 2447345 by Jamie Dale in Main branch]