Commit Graph

165 Commits

Author SHA1 Message Date
phillip kavan
648232be02 Expose an editor setting that will more easily allow users to toggle Blueprint namespace-related editor features on/off.
#jira UE-139971
#rb Benjamin.Fox
#preflight 61eeef014018b3d62e6e902b

#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 18712084 in //UE5/Release-5.0/... via CL 18712094 via CL 18712339
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18712359 by phillip kavan in ue5-main branch]
2022-01-24 14:14:32 -05:00
michael noland
6eb87c05e5 Moved BaseClassesToAllowRecompilingDuringPlayInEditor from experimental to *both* blueprint project settings and blueprint editor preferences (so it can be enabled for everyone in a given project for safe base classes as well as the existing 'local power user' cases)
- Also got rid of the loaded class cache in favor of a cached state for just opened BP editors that gets invalidated when settings are edited or the BP is (directly) reparented
#jira UE-81056
#rb marc.audy
#preflight 61e0aa1b6e49801093696899

#ROBOMERGE-AUTHOR: michael.noland
#ROBOMERGE-SOURCE: CL 18609404 in //UE5/Release-5.0/... via CL 18609465 via CL 18609499
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18609551 by michael noland in ue5-main branch]
2022-01-13 18:38:06 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
phillip kavan
3c5db8f4f5 Add a new Blueprint editor workflow setting to allow the user to choose how to restore breakpoints on Blueprint asset reload.
#jira UE-124598
#rb Justin.Hare
#preflight 6138e92c9c40ec000129baeb

#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 17471835 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17471845 by phillip kavan in ue5-release-engine-test branch]
2021-09-09 09:37:41 -04:00
phillip kavan
c1eff83c4a Fix for a regression in which we could fail to resolve object paths for certain Blueprint assets during BP graph node pin reference initialization at load time.
Change summary:
- Reverted FEdGraphPinReference back to using TWeakObjectPtr (fixes the regression by restoring previous behavior).
- Added FBlueprintWatchedPin as a new type intended for FBlueprintEditorSettings config data; this internally uses TSoftObjectPtr to match the existing behavior that was being used to export pin objects as soft rather than weak. It also matches how breakpoints are being stored, and allows for future extensions to watched pin context without affecting the underlying pin reference type used by the rest of the engine code.
- Modified the FKismetDebugUtilities APIs for watched pins to utilize the new type in place of FEdGraphPinReference.

#jira UE-122163, UE-122339
#rb Ben.Hoffman
#preflight 61314857d031a400010a709a

#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 17443581 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17443598 by phillip kavan in ue5-release-engine-test branch]
2021-09-07 08:58:16 -04:00
ben hoffman
05a1ac0ed8 Add an edit condition to the blueprint editor settings to only allow changing type promotion black list if it is enabled.
#jira none
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 17424621 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17424652 by ben hoffman in ue5-release-engine-test branch]
2021-09-03 14:17:38 -04:00
ben hoffman
5f7ed374e9 Add a blacklist of pin types to blueprint type promotion to allow users to disallow types that they want explicit functions. Add the string type by default as it has multiple compare functions that should be a choice for the user.
#jira UE-115454
#rb phillip.kavan
#rnx

#ROBOMERGE-SOURCE: CL 17215485 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17218009 by ben hoffman in ue5-release-engine-test branch]
2021-08-18 13:34:50 -04:00
jordan hoffmann
207f3e6549 Moving Watch pins to live with breakpoints in their new home: FPerBlueprintSettings
#preflight 611afb3eaabad10001d15245

#ROBOMERGE-SOURCE: CL 17186159 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)

[CL 17186170 by jordan hoffmann in ue5-release-engine-test branch]
2021-08-16 23:19:04 -04:00
phillip kavan
ff0501b1bd Add a context target menu option to allow non-imported type filtering in the context menu to be toggled on/off.
The option will be visible only if namespace filtering features are turned on (currently via CVar).

Also revised filter behavior to route through the shared import set and apply to actions that pass the non-target member test (i.e. global fields).

#jira UE-108316
#rb Ben.Hoffman
#preflight 610d98d7cf0cdd000136401a

#ROBOMERGE-SOURCE: CL 17088653 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17089023 by phillip kavan in ue5-release-engine-test branch]
2021-08-06 17:54:15 -04:00
jordan hoffmann
347cbc497e Feature: Move breakpoint storage out of the uasset file
Description: Make it so breakpoints are saved in the EditorPerProjectUserSettings ini rather than blueprint uasset files so that they can be excluded from version control and be unique to the user

#jira UE-119540
#rb Ben.Zeigler

#ROBOMERGE-SOURCE: CL 16959614 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16959625 by jordan hoffmann in ue5-release-engine-test branch]
2021-07-26 15:05:16 -04:00
jordan hoffmann
fc1e2f1624 [Backout] - CL16933419
[FYI] jordan.hoffmann
Original CL Desc
-----------------------------------------------------------------
Feature: Move breakpoint storage out of the uasset file
Description: Make it so breakpoints are saved in the EditorPerProjectUserSettings ini rather than blueprint uasset files so that they can be excluded from version control and be unique to the user

#jira UE-119540
#preflight 60fa0407224826000161cd31

#ROBOMERGE-SOURCE: CL 16934737 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16934748 by jordan hoffmann in ue5-release-engine-test branch]
2021-07-23 01:07:21 -04:00
jordan hoffmann
a634abbbdd Feature: Move breakpoint storage out of the uasset file
Description: Make it so breakpoints are saved in the EditorPerProjectUserSettings ini rather than blueprint uasset files so that they can be excluded from version control and be unique to the user

#jira UE-119540
#preflight 60fa0407224826000161cd31

#ROBOMERGE-SOURCE: CL 16933419 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16933421 by jordan hoffmann in ue5-release-engine-test branch]
2021-07-22 21:20:28 -04:00
jordan hoffmann
e099a701f5 [Backout] - CL16915099
[FYI] jordan.hoffmann
Original CL Desc
-----------------------------------------------------------------
Feature: Move breakpoint storage out of the uasset file
Description: Make it so breakpoints are saved in the EditorPerProjectUserSettings ini rather than blueprint uasset files so that they can be excluded from version control and be unique to the user

#jira UE-119540

#ROBOMERGE-SOURCE: CL 16929845 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16929852 by jordan hoffmann in ue5-release-engine-test branch]
2021-07-22 15:40:59 -04:00
jordan hoffmann
f03adfe4f0 Feature: Move breakpoint storage out of the uasset file
Description: Make it so breakpoints are saved in the EditorPerProjectUserSettings ini rather than blueprint uasset files so that they can be excluded from version control and be unique to the user

#jira UE-119540

#ROBOMERGE-SOURCE: CL 16915099 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16915117 by jordan hoffmann in ue5-release-engine-test branch]
2021-07-21 16:40:18 -04:00
Thomas Sarkanen
ceee4ecac6 Added the concept of thread safe Blueprint functions
Either enabling the 'thread safe' checkbox for a function or overriding an already thread safe (either native or BP) function will enable compile-time checking for thread safety.
Checks are based around the complied statement list rather than the bytecode itself.

#rb Phillip.Kavan,Jurre.deBaare

[CL 16382389 by Thomas Sarkanen in ue5-main branch]
2021-05-19 04:47:35 -04:00
Thomas Sarkanen
19cfad9ac3 Back out 16367405
[CL 16368980 by Thomas Sarkanen in ue5-main branch]
2021-05-18 12:06:38 -04:00
Thomas Sarkanen
4b80949f13 Added the concept of thread safe Blueprint functions
Either enabling the 'thread safe' checkbox for a function or overriding an already thread safe (either native or BP) function will enable compile-time checking for thread safety.
Checks are based around the complied statement list rather than the bytecode itself.

#rb Phillip.Kavan,Jurre.deBaare

[CL 16367405 by Thomas Sarkanen in ue5-main branch]
2021-05-18 10:41:11 -04:00
Tim Smith
a2237e050d LiveCoding Re-instancing
LIMITATIONS:

1) Re-instancing will only update UClass instance data.
2) Adding and removing properties should only be done towards the end of a class or structure and can not be followed by complex data types.
3) Adding and removing properties from a base class should not be done if a derived class contains complex data types.

KNOWN ISSUES:

1) Changes to enumerations and structures will not be reflected in existing blueprints.  However, adding new nodes to the blueprint will show the updated enumeration or structure.
2) If a class contains an enumeration or structure as a member, the class will not be re-instanced if enumeration or structure is changed.

CHANGES:

1) LiveCodingServer
1a) Modified to always execute certain static instances during load.
1b) Modified to exclude the _Statics static structures to avoid patching to old copies.

2) Added support for LiveCoding reinstancing
2a) Refactored deferred registration system for UClass, UEnum, and UScriptStruct to use a common system that works for normal game, hot reload and live coding.
2b) Type specific version check data is possible (i.e. enum doesn't have a size)
2c) Single registration static for UClass
2d) Single registration class for all types that is just a blind forward to API.
2e) Static and dynamic registrations use different API entry points to avoid having overloaded argument lists that just apply to one or the other.
2f) Shims for older API

3) New common "Reload" system to avoid using HotReload code.
3a) Support common delegates regardless of who is reloading/reinstancing.
3b) Re-instancing code moved from HotReload to Kismet2 (where the bulk of the re-instance code already existed).
3c) Modified PyWrapper to use new helper class instead of depending on HotRelaod
3d) Added WITH_RELOAD which is defined if HotReload or LiveCoding is enabled.
3e) Modifed existing code to use new #define and delegates.

Robert did the review on the changes covered by Part 2.  Remaining changes are all straightforward.

#rb robert.manuszewski
#jira UE-74493

[CL 15736777 by Tim Smith in ue5-main branch]
2021-03-18 08:13:59 -04:00
phillip kavan
4249ae08aa More groundwork for namespaces.
Change summary:
- Consolidated transient setting flags into UBlueprintEditorSettings; no longer dependent on UEditorExperimentalSettings. These continue to mirror the CVars for now. Also restored the sink function so that changing options will refresh the UI.
- Compiling a Blueprint will now inject the namespace into the class metadata if it is set on the UBlueprint asset.
- Added IsImportedType()/IsImportedObject() helper methods to FBlueprintNamepaceHelper.
- Added a CVar to provide a way to test the inclusion of parent class namespaces when checking scope; disabled by default for now to preserve current behavior.

#jira UE-108316

#ROBOMERGE-SOURCE: CL 15558978 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15558982 by phillip kavan in ue5-main branch]
2021-03-01 13:21:24 -04:00
phillip kavan
9de6577201 Move namespace feature flags into settings (transient for now); add a CVar sink function to bind current flags to settings.
#rnx
#rb None
#jira UE-108316

#ROBOMERGE-SOURCE: CL 15396010 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15396024 by phillip kavan in ue5-main branch]
2021-02-12 00:00:49 -04:00
phillip kavan
78ec4adaab Add some groundwork for Blueprint editor namespace "import" UX and scoping.
Experimental - disabled by default; features are currently exposed via CVar only.

#jira None
#[fyi] Michael.Noland

#ROBOMERGE-SOURCE: CL 15317743 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15317753 by phillip kavan in ue5-main branch]
2021-02-04 12:40:03 -04:00
Marc Audy
cac1fe0019 Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
This represents UE4/Main @ CL# 15277572

[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
ben hoffman
4dbe118c5b Bluelprints: Enable type promotion by default!
Change from using a CVar to a BP editor preferences setting for a better user experience now that it is feature complete with no known bugs.

#jira UE-102405
#rnx
#rb phillip.kavan
#fyi mason.seay

[CL 15132643 by ben hoffman in ue5-main branch]
2021-01-18 17:17:19 -04:00
danny chapman
f9cfe6a701 Fixes problem with not being able to navigate up in event/anim graphs using PageUp.
Adds shortcut of double-click to navigate up. Disabled by default for now - see the BlueprintEditor settings to enable & send feedback

#jira UE-105149
#rb thomas.sarkanen,phillip.kavan

[CL 15082887 by danny chapman in ue5-main branch]
2021-01-14 08:03:53 -04:00