Commit Graph

39 Commits

Author SHA1 Message Date
Ben Marsh
b57c79c540 Allow C++ plugins to hook game project generation. Contributed by solid-angle, https://github.com/EpicGames/UnrealEngine/pull/336.
[CL 2251943 by Ben Marsh in Main branch]
2014-08-11 17:14:26 -04:00
Jamie Dale
392966e05f The class wizard now displays the modules listed in your .uproject file as available targets for the new class
TTP# 342920 - EDITOR: Cloned C++ projects do not compile correctly
TTP# 342762 - Editor: Feature Request: Relax the restrictions on what game modules can have new classes created within them

This has allowed the validation logic to be simplified, as it pushes the responsibility onto the user to say which module they want their new class to go into, rather than relying on the validation logic to correctly infer which module the class should be going into.

This also relaxes the previous naming restrictions due to assumptions about module names, as you're now able to add code to any module listed in your .uproject file.

I've tested:
 - Adding code to a normal project.
 - Adding code to a cloned project.
 - Creating a new code based project.
 - Adding code to an empty/blueprint based project.

All of these cases generated code which compiled correctly.

#codereview Ben.Marsh, Max.Preussner

[CL 2242790 by Jamie Dale in Main branch]
2014-08-04 18:21:05 -04:00
Dmitry Rekman
5cfd4c2019 Linux editor: minor fixes.
- Part of PR #306 by amigo and #ue4linux community.
- Mostly things like initialization order changes, but also platform-specific additions/improvements.

#codereview Josh.Adams

[CL 2235441 by Dmitry Rekman in Main branch]
2014-07-29 01:53:30 -04:00
Ben Marsh
3bac51e396 Provide a proper error message if a file cannot be deleted during project upgrade, and fix offering to checkout the project file if necessary.
[CL 2227462 by Ben Marsh in Main branch]
2014-07-22 15:58:02 -04:00
Maciej Mroz
f5e794eea7 EditoronlyBP enabled in new Blank project.
#codereview Nick.Whiting, Bob.Tellez

[CL 2225503 by Maciej Mroz in Main branch]
2014-07-21 09:14:28 -04:00
Ben Marsh
100dfb0b32 Store the list of enabled plugins in the uproject file (fixing TTP 335060), and enable all game plugins by default (TTP 339313).
[CL 2119810 by Ben Marsh in Main branch]
2014-06-27 15:23:15 -04:00
Ben Marsh
d0e6016bba Fixed opening solutions when creating a non-foreign project in a subdirectory of the engine root.
[CL 2114370 by Ben Marsh in Main branch]
2014-06-23 15:36:37 -04:00
Jamie Dale
e3c6911737 Generating a new class will now include the module header relative to a known include path
If the module is inside the Public or Classes folder, it is included directly (since all these folders are on the include path), otherwise it's included relative to the module source root (which is now on the include paths due to a recent UBT change).

ReviewedBy Ben.Donatelli

[CL 2109096 by Jamie Dale in Main branch]
2014-06-18 06:45:20 -04:00
Jaroslaw Palczynski
3a35a8dd0e Deprecate and remove checkAtCompileTime.
#ttp 337754
#codereview Robert.Manuszewski

[CL 2106862 by Jaroslaw Palczynski in Main branch]
2014-06-16 08:04:54 -04:00
Ben Marsh
3a9ab4ba94 Remove an IsRocket() check - open the non-foreign solution file for non-foreign projects.
[CL 2100432 by Ben Marsh in Main branch]
2014-06-10 11:23:42 -04:00
Marc Audy
dcf6358a9f Default to using the GlobalDefaultGameMode if GlobalDefaultServerGameMode is not specified.
Cleared out places setting GlobalDefaultServerGameMode that need not do so.

[CL 2100415 by Marc Audy in Main branch]
2014-06-10 11:08:37 -04:00
Bob Tellez
1b57237405 UE4: Renamed FStatusMessageContext to FScopedSlowTask which describes its purpose much more clearly.
[CL 2099448 by Bob Tellez in Main branch]
2014-06-09 15:41:37 -04:00
Marc Audy
f8168e7e8d Fix BasicCode project not referencing custom game mode
TTP #336609

[CL 2097321 by Marc Audy in Main branch]
2014-06-06 14:15:04 -04:00
Dmitry Rekman
5b887fb484 Linux: more changes for the editor.
From PR #140,  contributed by sbc100 and #ue4linux community.

[CL 2096299 by Dmitry Rekman in Main branch]
2014-06-05 17:11:45 -04:00
Jamie Dale
0cfe5f0651 Added PlatformInfo to DesktopPlatform and improved the editors Supported Platform UI
TTP# 337136 - SETTINGS: Target Platform settings polish
TTP# 337652 - EDITOR: Limit Project supported Android icons down to 1
TTP# 337650 - EDITOR: There is only 1 icon for Apple for Project Supported Platforms

DesktopPlatform now contains a static array of FPlatformInfo. This can be used to query UE4 about its available platforms, even when they're not available as a target platform.

FPlatformInfo contains the information required by the editor (such as a localized display name and icon), as well as whether a platform is a variation ("flavor") of another, and if so, whether the flavor affects the build output (eg, Win32 or Win64), or the cook output (eg, Android_XYZ). This lets the editor build up nested menus for the "Package Project" and "Cook Project" options, rather than just showing everything as a flat list.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2095796 by Jamie Dale in Main branch]
2014-06-05 12:13:44 -04:00
Ben Marsh
034f01c732 Add a single codepath to enumerate projects for an engine installation, which can be shared with the launcher.
#codereview Nicholas.Davies

[CL 2095028 by Ben Marsh in Main branch]
2014-06-04 18:06:57 -04:00
Jamie Dale
c730fdef83 Added support for choosing which platforms your project will target
TTP# 332489 - TOOLS FEATURE: Editor: Allow user to designate which platforms a project is designed for; warn user when deploying to platforms that will result in a bad time

There is now a "Target Platforms" tab in the project settings which allows you to choose which platforms your project will target. This information is stored inside the .uproject file.

If you try and launch, cook, or package for a project that isn't on the supported list, then you'll see a suppressible warning notifying you that the project may not run as expected. This is also conveyed to you via a warning icon next to platforms which aren't set as a target.

Additionally the target platform icons are shown in the tooltip on the "Open Project" dialog, as well as in the tab area of the level editor.

ReviewedBy Thomas.Sarkanen, Max.Preussner

[CL 2088161 by Jamie Dale in Main branch]
2014-05-29 17:37:19 -04:00
Ben Marsh
99da60781d Format the version string in upgraded projects the same way as it's formatted by the launcher. Stops silly names like "Tappy Chicken 4.1 (4.2)", and prevents creating a separate DDC directory due to bug in DDC INI parsing.
[CL 2086946 by Ben Marsh in Main branch]
2014-05-29 17:25:19 -04:00
Jamie Dale
435c1c76d5 Fixed the code generated by the New Project wizard not compiling
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]
2014-05-16 10:47:37 -04:00
Ben Marsh
dd4636aefd Fix infinite loop when duplicating a project if the last space is not followed by a version number.
[CL 2075445 by Ben Marsh in Main branch]
2014-05-16 09:12:15 -04:00
Jamie Dale
6ee0cd827d Added support for the Class Wizard to create non-UObject classes
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]
2014-05-16 07:26:51 -04:00
Ben Donatelli
b1b8c282fd Add Code to Project wizard now accounts for subfolders in path when replacing %MODULE_NAME% token in template
[CL 2073365 by Ben Donatelli in Main branch]
2014-05-14 16:05:52 -04:00
Jamie Dale
bac1e1a5d2 Condensed the class wizard layout so it wastes less space
TTP# 332794 - EDITOR: Usability improvements for the New Class Wizard

ReviewedBy Max.Preussner

[CL 2072777 by Jamie Dale in Main branch]
2014-05-14 07:07:29 -04:00
Jamie Dale
273df4a473 Improved the way the class wizard informs users about whether a class with be Public or Private
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]
2014-05-14 06:47:25 -04:00
Ben Marsh
6251d1c57e Change project 'upgrades' to be based on the format of the project file and nothing to do with engine version or association, and allow the UpdateGameProject commandlet to always write latest version information to the file.
[CL 2072245 by Ben Marsh in Main branch]
2014-05-13 18:23:53 -04:00