Commit Graph

23 Commits

Author SHA1 Message Date
Jason Hoffman
53cc33c3b8 fix for UE-10324 Unable to toggle between Public and Private class when using Add Code to Project
[CL 2476785 by Jason Hoffman in Main branch]
2015-03-12 10:06:48 -04:00
Matthew Griffin
246edb4781 [INTEGRATE] Change 2435332 by Andrew.Rodham@AndrewRodham_4.7 on 2015/02/06 09:25:07
Generalized "Add Code to Project" dialog to allow creation of both c++ and blueprint class types.

	The add component option when blueprintable components is enabled, now opens up this dialog rather than the parent class picker.

	UE-8491 - IWCE: New C++ Component and New Blueprint Component should prompt you for a component type to subclass

[CL 2446735 by Matthew Griffin in Main branch]
2015-02-16 04:29:11 -05:00
Ben Marsh
29219e7124 [INTEGRATE] Change 2421194 by Mike.Fricker@MFRICKER_G3686_Alpha on 2015/01/27 17:44:17
Improvements to naming of newly-created C++ and BP components through SCS tree
	- Strip off "_C" suffix on newly created Blueprint classes
	- Don't strip "Component" from Blueprint class names unless it is the suffix
	- Changed prefix for newly-created C++ components from "My" to "New"
	- New Blueprint components default to the name of the class unless they are Blueprints of UActorComponent, in which case the name is just "NewComponent"
	- New C++ components default to the name of the class unless they inherit from UActorComponent, in which case the name is just "NewComponent"
	#codereview matt.kuhlenschmidt

[CL 2425794 by Ben Marsh in Main branch]
2015-01-30 10:35:05 -05:00
Ben Marsh
3d2ab1d349 [INTEGRATE] Change 2417935 by Matt.Kuhlenschmidt@matt_kuhlenschmidt_main on 2015/01/24 16:23:14
Added an experimental method to add a new C++ class derived from ActorComponent to an actor.  The purpose of this is to add scripting support directly on an actor without subclassing the actor.

[CL 2419710 by Ben Marsh in Main branch]
2015-01-26 20:16:24 -05:00
Jamie Dale
55c3728d11 Added support for showing game and engine classes in the Content Browser
UE-7184 - Show game c++ classes and engine c++ classes in the content browser

The Content Browser now has extra entries for "Game C++ Classes" and "Engine C++ Classes" (with "Game" and "Engine" being renamed to "Game Content" and "Engine Content" respectively). These new folders serve as hosts for the list of available C++ modules, with each module internally mirroring the folder structure on disk.

For example:
- Game C++ Classes
    - ShooterGame
        - Classes
            - Bots
                - ShooterBot
                - ShooterAIController
                - [...]
            - [...]

The Content Browser allows you to navigate and search these classes like you can with assets, and provides convenient access to either edit an existing class, or create a new class (either within a selected folder, or derived from a selected class).

As the Content Browser only shows you known UClass types, any new classes need to be compiled into a loaded module before they will appear. This means that adding a new class will now automatically hot-reload your target module. Should you prefer to handle building and loading your modules manually, you can disable the automatic hot-reload via "Editor Settings" -> "Miscellaneous" -> "Hot Reload" -> "Automatically Hot Reload New Classes" (see UEditorUserSettings::bAutomaticallyHotReloadNewClasses).

[CL 2409386 by Jamie Dale in Main branch]
2015-01-16 15:39:47 -05:00
Dan Hertzka
8c7348dc9b Replaced the "Get Visual Studio" hyperlink in the SNewProjectWizard and SNewClassDialog with an "Install Visual Studio" button on Windows
- Added IDesktopPlatform::GetUserTempPath() and implemented it for windows
- Created SGetSuggestedIDEWidget class that handles whether to show a "Download X" hyperlink vs. an "Install X" button (depending on whether the platform supports on-demand installation)
- Analytics event added ("Editor.Usage.InstalledIDE") that fires whenever the "Install X" button is clicked
- Changed SourceCodeIDEURL_Windows in BaseEditor.ini from the VSC 2013 web page link to the installer download link (need to replace with perma-link once we have it)

[CL 2409158 by Dan Hertzka in Main branch]
2015-01-16 13:29:54 -05:00
Jamie Dale
a569f6b356 Fixed code relying on SLATE_TEXT_ATTRIBUTE for STextBlock.
UETOOL-213 - Minimize Slate FString -> FText conversion (remove SLATE_TEXT_ATTRIBUTE)

This fixes any editor/engine specific code that was passing text to Slate as FString rather than FText.

[CL 2399803 by Jamie Dale in Main branch]
2015-01-07 09:52:40 -05:00
Nick Darnell
90e793745c Slate - ESlateCheckBoxState has been renamed to ECheckBoxState.
[CL 2384008 by Nick Darnell in Main branch]
2014-12-10 14:24:09 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Jamie Dale
75900308d3 Fixed code relying on SLATE_TEXT_ATTRIBUTE for SHyperlink
Made sure everything was using FText rather than FString.

[CL 2370982 by Jamie Dale in Main branch]
2014-11-26 13:56:07 -05:00
Richard TalbotWatkin
a745d04c87 Improved performance in looking up module names and disallowed header names from source code by initializing a database asynchronously upon editor startup.
#jira UE-5324 - Huge hitch from FSourceCodeNavigation when selecting an object for the first time

[CL 2359722 by Richard TalbotWatkin in Main branch]
2014-11-14 02:05:33 -05:00
Richard TalbotWatkin
44e138164a Added additional checks in the New Class Dialog to disallow creating classes whose generated headers would clash with existing engine headers.
#jira UE-4770 - LIVE: Users are able to name a new class "Platform" even though there is already a class by that name in the Engine.

[CL 2357149 by Richard TalbotWatkin in Main branch]
2014-11-12 11:31:40 -05:00
Marc Audy
2077f3a586 Expose ProjectHasCodeFiles, GenerateBasicSourceCode, GetCurrentProjectModules and DetermineModuleIncludePath from GameProjectGenerationModule
[CL 2327274 by Marc Audy in Main branch]
2014-10-13 11:47:21 -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
Marc Audy
494f22bb33 Add the ability to link to object class documentation throughout the UI
[CL 2226010 by Marc Audy in Main branch]
2014-07-21 17:31:27 -04:00
Marc Audy
1040af057a Add link to code from Add Code to Project window
[CL 2214916 by Marc Audy in Main branch]
2014-07-14 16:50:34 -04:00
Jaroslaw Palczynski
ebce413232 UE4 Refactoring. Changed OVERRIDE and FINAL macros to keywords override and final.
[CL 2104397 by Jaroslaw Palczynski in Main branch]
2014-06-13 06:14:46 -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
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
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
Jamie Dale
c010db2fb4 #ttp 322244 - LIVE: Feature Request: During "Add Code to Project", allow user to select path where files go
#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]
2014-04-23 18:50:08 -04:00
Tim Sweeney
324683ce78 Engine source (Main branch up to CL 2026164) 2014-03-14 14:13:41 -04:00