This now uses GameProjectUtils::GetCurrentModuleContextInfo(), which provides the same information as used by the rest of the class wizard validation.
ReviewedBy Thomas.Sarkanen
#codereview Max.Preussner
[CL 2088202 by Jamie Dale in Main branch]
TTP# 332794 - EDITOR: Usability improvements for the New Class Wizard
GetClassLocation was failing because it was doing the validation based upon the current project, and not the project that was being created. I've changed the validation logic and creation functions to use a module context that must be provided; this allows the functions used to generate code for a new project to override the module validation information.
[CL 2075544 by Jamie Dale in Main branch]
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]
#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]