Commit Graph

1938 Commits

Author SHA1 Message Date
thomas sarkanen
c6b6d713b9 Fix function renames not applying to property access nodes and compilation crashes post-rename
Implement function BP rename handling on a per-node basis, similar to existing variable rename handing
Move to using FBlueprintEditorUtils::GetMostUpToDateClass for property access in-editor. This ensures that any local renames are picked up prior to recompilation.

#jira UE-204823
#rb jaime.cifuentes, Phillip.Kavan

#changelist validated
#virtualized

[CL 31251596 by thomas sarkanen in ue5-main branch]
2024-02-07 05:08:42 -05:00
vritvij kadam
ddb0b4a1bb Added support for autocast functions for objects to support their super classes
Example:

Class A {};
Class B : public A {};
Class C {};
Class D : public C{};

if auto cast from D to B exists, it means auto cast from D to A also exists
if auto cast from C to B exists, it means auto cast from D to B also exists

#rb dave.jones2, Justin.Moe, Phillip.Kavan

#changelist validated
#virtualized

[CL 31240206 by vritvij kadam in ue5-main branch]
2024-02-06 19:07:33 -05:00
dan oconnor
0b140f8ae6 Combine FUnloadedAssetData/FLoadedAssetData and various FPinTypeTreeInfo constructors, remove the intermediate 'type database', filter TypeTreeRoot in place, perform 'custom filtering' during filter step, rather than during 'children matching' search
#rb Phillip.Kavan
#jira UE-204415

#changelist validated
#virtualized

[CL 31223293 by dan oconnor in ue5-main branch]
2024-02-06 13:43:38 -05:00
thomas sarkanen
507ad255ba Anim notify and sync marker workflow changes
Skeletons are no longer dirtied when adding notifies and sync markers from animation timelines.
Skeletons can still hold sync markers and notifies, but they are not mandatory and they can all be held in animation assets if required.
'Find References' for notifies and sync markers now launches the find/replace dialog when selected from the animation timeline.
Removing notifies and sync markers from the skeleton now does only that. To remove from animations, use the find/replace tab.
Updated BP node spawning for anim notifies to use a custom spawner, correctly use the asset registry, apply filtering and context sensitivity and move some of the code out of BlueprintGraph.
Added icons to distinguish sync markers/notifies in the editing tab.
Updated notify editing tab filtering to allow users to filter items from 'this' skeleton, compatible skeletons or other assets.

Additionally fixed up icons for some Persona tabs that were incorrect.

#jira UE-204872
#rb jaime.cifuentes, Phillip.Kavan

[CL 31168417 by thomas sarkanen in ue5-main branch]
2024-02-05 05:30:20 -05:00
dan oconnor
86b833615c One last cleanup of the pin type selector, avoid repeated FText::Rebuild calls to sort the pin lists, clarify the intent of FPinTypeTreeInfo constructors
#rb ben.hoffman
#jira UE-204415

[CL 31105955 by dan oconnor in ue5-main branch]
2024-02-01 17:31:37 -05:00
dan oconnor
1b378626e7 More pin type menu optimzations, avoid wandering back and forth between SoftObjectPath and AssetData
#jira UE-204415
#rb ben.hoffman

[CL 31057002 by dan oconnor in ue5-main branch]
2024-01-31 13:55:55 -05:00
ben hoffman
95db10aa96 When checking for if a BP added variable is in use, we should also check if there are any Component Bound event nodes that reference it.
#jira UE-197140
#rb dan.oconnor

[CL 31025854 by ben hoffman in ue5-main branch]
2024-01-30 18:03:45 -05:00
robert millar
8c494d70b1 Add function name / asset name to ensure
[CL 30983224 by robert millar in ue5-main branch]
2024-01-29 20:47:31 -05:00
patrick boutot
f4b81487c3 Notify when the pins are removed from the FormatText k2node. That occurs when the format default value was valid and link the format pin.
#jira UE-205208
#rb dan.oconnor

[CL 30980346 by patrick boutot in ue5-main branch]
2024-01-29 18:26:20 -05:00
ben hoffman
f104ff4d68 Do not show the "breakpoints" category in the right click context menu for K2Nodes if they cannot place a breakpoint. This prevents a useless empty category from being added.
#jira UE-112632
#rb dan.oconnor

[CL 30936397 by ben hoffman in ue5-main branch]
2024-01-26 14:51:50 -05:00
aschulz90
985fca4769 PR #10957: Fix GetSubsystem blueprint node to correctly handle when ShowWorldContextPin is set on a subsystem's parent class
#jira UE-197400
#rb ben.zeigler

[CL 30933518 by aschulz90 in ue5-main branch]
2024-01-26 14:02:22 -05:00
dan oconnor
2f7acbc36a Cleanup pin type selector, improving performance in large projects.
#rb Phillip.Kavan
#jira UE-204415

[CL 30909986 by dan oconnor in ue5-main branch]
2024-01-25 19:48:54 -05:00
zhikang shao
239e804676 Reverting blueprint editor shortcut Alt+Shift+F to search locally by mapping it to the singular Find References action. The singular Find References action, while not exposed to UI for nodes that have Find References By Name/Class Member support, can still be triggered with shortcut and will trigger a local By Name or By Class Member search based on what the previous behavior was for that node type. For function nodes it will search by function name, while for variable nodes it will do an exact search since Find References already did that for a while.
However: function searches will do a quoted search by native function name. The previous behavior was unquoted search by node title (usually function display name). As a result, the previous behavior for Find References would fail in functions with special characters in their name. Now that the name is surrounded in quotes, all function names are supported. The new Find References behavior now searches for correct function name for parent call nodes, interface implementations, event overrides, where the previous behavior failed due to searching for node title.
#rb Phillip.Kavan

[CL 30854644 by zhikang shao in ue5-main branch]
2024-01-24 13:55:51 -05:00
zhikang shao
3141d00c05 Adding additional guard rails to the "Index All" action from Find-in-Blueprints. Editor setting that controls user permission is now an enum. The default setting allows mass loading blueprints, but not mass checkout and resave. As a result, mass write is opt-in - also improved the final warning for mass-write to emphasize you're about to checkout.
#rb Phillip.Kavan

[CL 30854301 by zhikang shao in ue5-main branch]
2024-01-24 13:49:56 -05:00
dave jones2
6f6ac30e15 Deprecated bIsFinalFunction.
"final" was an UnrealScript concept that never made it into Blueprints. Currently, it's synonymous with the CallParentFunction node. Instead of using this flag, we can simply check the node type directly.

We still might want to revisit this for Blueprints, but we likely won't use this bool.

#rb ben.hoffman, dan.oconnor

[CL 30770789 by dave jones2 in ue5-main branch]
2024-01-22 09:24:57 -05:00
steve robb
6d5b974842 Fixed up a lot of bool-taking container resize functions to take EAllowShrinking instead.
[CL 30735396 by steve robb in ue5-main branch]
2024-01-19 19:41:56 -05:00
dave jones2
73d6c12907 Deprecated bIsBeadFunction.
This was a really old feature that never took off. It's not needed anymore.

#rb dan.oconnor

[CL 30718919 by dave jones2 in ue5-main branch]
2024-01-19 12:19:18 -05:00
graham matuszewski
7061b1ccc0 Allow for UObject Macro Libraries to use functions that require a world context.
If a UObject MacroLibrary goes to use a function that requires a world context then it will show the input pin for the world context just like it would if it were a blueprint function library.
The input pin for the WorldContext can be manually provided by the user by dragging the right reference and passing that into the Macro, but the Macro will also just auto grab the world from the caller if they have a valid world context. if they do not have a valid world context, then an error will be shown in the called at compile time.

#jira UE-203743 UE-22946
#rb dan.oconnor

[CL 30643242 by graham matuszewski in ue5-main branch]
2024-01-16 15:35:24 -05:00
zhikang shao
81750f0a27 Finding References By Name on event nodes (K2Node_Event) and function call nodes (K2Node_CallFunction) now consistently searches by native name, rather than friendly name in some cases. Additionally, K2Node_CreateDelegate appends metadata so it can be found when searching for the referenced function if it's a class member.
#rb Phillip.Kavan

[CL 30593990 by zhikang shao in ue5-main branch]
2024-01-12 10:56:49 -05:00
steve robb
7da84c1d1b Replaced UE_NODISCARD with [[nodiscard]].
[CL 30593744 by steve robb in ue5-main branch]
2024-01-12 10:47:04 -05:00
zhikang shao
5a4f3dadcf #jira UE-196209
Improves "Find References" in blueprints: now supports function search by [class, function] call-sites and definitions rather than a generic search for function name. Replaces the "Find References" context menu action with a sub-menu for variables and functions in BlueprintEditor, WidgetBlueprintEditor, SubobjectEditor and SubobjectEditor. That context sub-menu has 'By Name' and 'By Class Member' search options and local+global versions of both.

Made changes to Find-in-Blueprints metadata that is generated per blueprint asset to be able to do "specific function of a specific class" type queries; some search types were unsupported with previous metadata. Incremented the EFiBVersion so that the Find-in-Blueprints search window will ask to re-index all blueprints and resave. Added an opt-out editor setting "Allow Index All Blueprints" (default: true) to disable the button, which can be decided per project. Added an action in the Find-in-Blueprints modal when outdated metadata is detected to export the list of affected assets.
#rb Phillip.Kavan

[CL 30316851 by zhikang shao in ue5-main branch]
2023-12-14 06:34:39 -05:00
zhikang shao
15c016080d [Backout] - CL30289707
[FYI] zhikang.shao
Original CL Desc
-----------------------------------------------------------------
#jira UE-196209
Improves "Find References" in blueprints: now supports function search by [class, function] call-sites and definitions rather than a generic search for function name. Replaces the "Find References" context menu action with a sub-menu for variables and functions in BlueprintEditor, WidgetBlueprintEditor, SubobjectEditor and SubobjectEditor. That context sub-menu has 'By Name' and 'By Class Member' search options and local+global versions of both.

Made changes to Find-in-Blueprints metadata that is generated per blueprint asset to be able to do "specific function of a specific class" type queries; some search types were unsupported with previous metadata. Incremented the EFiBVersion so that the Find-in-Blueprints search window will ask to re-index all blueprints and resave. Added an opt-out editor setting "Allow Index All Blueprints" (default: true) to disable the button, which can be decided per project. Added an action in the Find-in-Blueprints modal when outdated metadata is detected to export the list of affected assets.
#rb Phillip.Kavan

[CL 30289794 by zhikang shao in ue5-main branch]
2023-12-13 07:33:50 -05:00
zhikang shao
68c300ecfa #jira UE-196209
Improves "Find References" in blueprints: now supports function search by [class, function] call-sites and definitions rather than a generic search for function name. Replaces the "Find References" context menu action with a sub-menu for variables and functions in BlueprintEditor, WidgetBlueprintEditor, SubobjectEditor and SubobjectEditor. That context sub-menu has 'By Name' and 'By Class Member' search options and local+global versions of both.

Made changes to Find-in-Blueprints metadata that is generated per blueprint asset to be able to do "specific function of a specific class" type queries; some search types were unsupported with previous metadata. Incremented the EFiBVersion so that the Find-in-Blueprints search window will ask to re-index all blueprints and resave. Added an opt-out editor setting "Allow Index All Blueprints" (default: true) to disable the button, which can be decided per project. Added an action in the Find-in-Blueprints modal when outdated metadata is detected to export the list of affected assets.
#rb Phillip.Kavan

[CL 30289718 by zhikang shao in ue5-main branch]
2023-12-13 07:25:05 -05:00
ben humphreys
e9c9ac7a74 Added binding to create a new Custom Event Node. No binding by default. Similar to pressing C to create a new Comment Node.
#jira UE-200930
#rb Phillip.Kavan

[CL 30218170 by ben humphreys in ue5-main branch]
2023-12-08 15:12:30 -05:00
ben zeigler
6e81a09c2a Remove broken blueprint performance tracking code now that Insights works well:
BlueprintCompileAndLoadTimerData has been wrong ever since the compilation manager was added
FScopedCompilerEvent was broken because there are two active compilation logs in many cases
Delete unused stats and replace a few with trace scopes
#rb dan.oconnor

[CL 29996340 by ben zeigler in ue5-main branch]
2023-11-29 14:53:02 -05:00