TTP# 332794 - EDITOR: Usability improvements for the New Class Wizard
Abstracted away the parent class information into FNewClassInfo, which can hold either a UClass*, or an enum value corresponding to a pre-defined non-UObject type class (currently; an empty class, a Slate widget, and a Slate widget style).
Made the interface of GenerateClassHeaderFile and GenerateClassCPPFile more consistent. They now both take an unprefixed class name as well as the base class information; any extra information they can then generate internally. They also no longer rely on the filename to work out the class name, as the Slate classes may add a prefix or suffix to the filename due to the way the templates are set-up.
Updated everything in the SNewClassDialog and GameProjectUtils that was previously working with a UClass* to work with a FNewClassInfo instead.
ReviewedBy Thomas.Sarkanen, Max.Preussner
[CL 2075367 by Jamie Dale in Main branch]
TTP# 332794 - EDITOR: Usability improvements for the New Class Wizard
It now displays a checkbox for Public and Private, with a tooltip explaining what each option means. If you're not using a Public/Private layout for your code, it disables these options and also displays a tooltip explaining why.
Clicking on one of these check boxes will adjust the current path to place the class either in the Public or Private folder, preserving any sub-path information correctly.
Finally, when creating a class in the Public or Classes folder, the class wizard will now automatically add the MODULENAME_API macro to the class declaration.
Also improved the button alignment used for the wizard.
ReviewedBy Thomas.Sarkanen, Max.Preussner
[CL 2072761 by Jamie Dale in Main branch]
#ttp 333947 the landscape_worldmachine project cannot be opened on my machine because the project name is longer than 20 characters.
reviewed by Thomas.Sarkanen
[CL 2061059 by Andrew Copland in Main branch]
#ttp 332328 Content Browser: Need new warnings about long relative path lengths for assets
#proj Editor
#branch UE4
reviewed by Thomas.Sarkanen
[CL 2055478 by Andrew Copland in Main branch]
#proj UE4
#branch UE4
#summary Made the source path validation more lenient when adding code to a project for the first time
#change GameProjectUtils::CalculateSourcePaths no longer checks that the module source folder exists on disk if the project contains no code.
#change GameProjectUtils::IsValidSourcePath no longer allows partial module name matches (to match both MyModule, and MyModuleEditor) if the project contains no code.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2049803 by Jamie Dale in Main branch]
#proj UE4
#branch UE4
#summary You can now choose where to place a class added via the New Class Wizard
#extra This tries to be smart about your placement if you have Public and Private folders for your project.
- By default the header would go into Public, and the source file would go into Private.
- If you select the Public/Classes folder for the path, the source file will still go into Private.
- If you have a sub-path, eg) /Public/MyStuff/MyClass.h, this will be mirrored in the placement of the source file, eg) /Private/MyStuff/MyClass.cpp
#extra If you're not using Public or Private folders it will just place the source at whatever path you specified.
#extra It will verify that your source code is going to a valid module folder for your game, and also allows matching of modules that start with your game name, eg) MyGame, MyGameEditor.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2046528 by Jamie Dale in Main branch]
#proj UE4
#branch UE4
#summary Verified why @ was disallowed
#extra Also improved the robustness of the path validator and disallowed some extra things that had previously been missed.
#extra Made the way we report invalid characters consistent between FPaths, FName, and FPackageName; they now report all matched invalid characters rather than only the first one.
#reviewedby Thomas.Sarkanen, Max.Preussner
[CL 2043081 by Jamie Dale in Main branch]