Commit Graph

45 Commits

Author SHA1 Message Date
Richard TalbotWatkin
b1b443cda9 Changed SClassItem parent from SComboRow to STableRow so that dragging can be initiated from a selected item.
#jira UE-8326 - Unable to drag the selected actor from class viewer to scene

[CL 2515873 by Richard TalbotWatkin in Main branch]
2015-04-17 10:38:48 -04:00
Mikolaj Sieluzycki
a96989f147 Add includes to files to remove the need of including Engine.h.
[CL 2508000 by Mikolaj Sieluzycki in Main branch]
2015-04-10 03:30:54 -04:00
Richard TalbotWatkin
b349d90a58 Reworked "Create Blueprint Class" dialog in class viewer, and removed redundancy from the code.
#jira UE-10651 - Rework "Create Blueprint Class" dialog in Class Viewer
#reviewedby Matt.Kuhlenschmidt

[CL 2472012 by Richard TalbotWatkin in Main branch]
2015-03-08 15:24:40 -04:00
Steve Robb
07e6f6504c Fix for ranged-for string iteration returning the null terminator.
Redundant (now) test removed from FUnrealSourceFile::GetFileId.
PLATFORM_COMPILER_HAS_RANGED_FOR_LOOP macro removed.

#codereview robert.manuszewski,leigh.swift

[CL 2468804 by Steve Robb in Main branch]
2015-03-04 10:45:18 -05:00
Matthew Griffin
0446e4c81e [INTEGRATE] Change 2441435 by Jamie.Dale@Pitbull_JDaleReleases on 2015/02/11 07:46:05
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]
2015-02-17 10:07:24 -05: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
6d7917f33c [INTEGRATE] Change 2412499 by Michael.Schoell@Phosphor_M_Schoell on 2015/01/20 13:27:21
Relabeled "Class Blueprint" as "Blueprint Class" throughout the editor and documentation.

	#jira UE-7187 - "Class Blueprint" should be renamed to "Blueprint Class" throughout the editor and docs

[CL 2419450 by Ben Marsh in Main branch]
2015-01-26 18:42:00 -05:00
Michael Schoell
7c7fea2868 Fixes a potential crash during editor shutdown relating to the ClassViewer.
PR #755

[CL 2415512 by Michael Schoell in Main branch]
2015-01-22 13:40:27 -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
Michael Schoell
39bf8cba82 Fix for new Blueprints not immediately appearing in the Class Viewer (or Class Picker instances).
#jira UE-7179 - User-created Object Blueprints do not appear as an option when using Create > Class Blueprint
#jira UE-7548 - Cannot Reparent new blueprints in 4.7 and 4.8

[CL 2407759 by Michael Schoell in Main branch]
2015-01-15 15:28:00 -05:00
Steve Robb
0756ef15b9 Delegate comparisons deprecated, lots of other associated code deprecated, and lots of warning fixups:
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.

#codereview robert.manuszewski

[CL 2400883 by Steve Robb in Main branch]
2015-01-08 09:29:27 -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
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev branch ----
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.

While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
    1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
        - Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
    2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.

- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
    - Examples include animation, async operations that update periodically, progress updates, loading bars, etc.

- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.

- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
    - There are THREE ways to unregister an active tick:
        1. Return EActiveTickReturnType::StopTicking from the active tick function
        2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
        3. Destroy the widget responsible for the active tick

- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
    - The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)

- The FCurveSequence API has been updated to work with the active tick system
    - Playing a curve sequence now requires that you pass the widget being animated by the sequence
    - The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
    - GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.

[CL 2391669 by Dan Hertzka in Main branch]
2014-12-17 16:07:57 -05:00
Michael Schoell
5c7498d6a3 Pass on editor to correct cases of referencing singular "Blueprint" to be "Class Blueprint" when refering to Class Blueprints.
Changed: Content Browser, Class Viewer, and workflow when generating a Class Blueprint from a selection of actors.

#jira UE-6294 - UI pass in the editor to make sure "Class Blueprint" terminology is used appropriately

[CL 2391117 by Michael Schoell in Main branch]
2014-12-17 10:05:52 -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
6b008d0722 Fixed code relying on the version of SWidget::SetToolTipText that took an FString
Made sure everything was using FText rather than FString, and also updated the property editor API to return tooltips as FText rather than FString.

[CL 2373917 by Jamie Dale in Main branch]
2014-12-02 13:48:53 -05:00
Bob Tellez
2e1eace4a5 [AUTOMERGE]
#UE4 Loading the class viewer or class pickers is now 60% faster.

--------
Integrated using branch Ue4-To-UE4-Fortnite-Simple (reversed) of change#2370492 by Bob.Tellez on 2014/11/25 21:54:13.

[CL 2370495 by Bob Tellez in Main branch]
2014-11-25 22:01:02 -05:00
Richard TalbotWatkin
d9b25b5aa1 Made "Create New Blueprint" in Class Viewer more robust, now invalid names are disallowed.
#jira UE-1234 - BP: Able to give a blueprint a blank name with space characters through the class viewer
#reviewedby Matt.Kuhlenschmidt

[CL 2364637 by Richard TalbotWatkin in Main branch]
2014-11-19 03:23:31 -05:00
Michael Schoell
29f631635f Class Pickers will allow you to type to search and use the arrow keys to navigate without changing focus with the tab key or mouse.
Class Picker or Content Picker is not created when creating a pin of class/object type, instead it is generated when clicking to drop down the combo box.

#jira UE-5358 - BLUEPRINTS: Class picker dropdown (on nodes like GetAllActorsOfClass) should handle arrow keys.

[CL 2360634 by Michael Schoell in Main branch]
2014-11-14 16:08:52 -05:00
Chris Gagnon
0e6d657c3d Refactor to unify keyboard and controller input and focus.
Native controller navigation support.

[CL 2345039 by Chris Gagnon in Main branch]
2014-10-30 12:29:36 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Michael Schoell
8b42640766 Class viewer will now display unloaded Blutility, UMG, and GameplayAbility Blueprints.
#ttp 348359 - UE4: Gameplay Ability Blueprint classes do not show up in the Class Viewer picker

[CL 2318871 by Michael Schoell in Main branch]
2014-10-03 15:01:19 -04:00
Maciej Mroz
29aa1cb83b Class Viewer gives actual information (about Placeable flag) for unloaded assets.
OnlyPlaceable metadata added. Indicates whether only placeable classes should be shown in the class picker.
More robust AGameMode::PreInitializeComponents

ttp345655 CRITICAL: CRASH: BLUEPRINT: adding GameMode blueprint as a child actor

[CL 2295026 by Maciej Mroz in Main branch]
2014-09-12 08:04:14 -04:00
Robert Manuszewski
26ec212687 HotReload: Better fix for old hot-reload classes in the class viewer
#ttp 345524: HotReload: Strange temporary class names are visible in Placement Browser's "All Classes" list after a HotReload

[CL 2293652 by Robert Manuszewski in Main branch]
2014-09-11 08:53:26 -04:00
Robert Manuszewski
615612d729 Making sure old classes are not visible in the class picker after hot-reload.
#ttp 345524: HotReload: Strange temporary class names are visible in Placement Browser's "All Classes" list after a HotReload

#change Marked old classes as transient, made sure they're not in root set
#change Made sure class picker rejects transient UClass objects

[CL 2292085 by Robert Manuszewski in Main branch]
2014-09-10 02:53:04 -04:00