Commit Graph

1063 Commits

Author SHA1 Message Date
robert manuszewski
d1443992e1 Deprecating ANY_PACKAGE.
This change consists of multiple changes:

Core:
- Deprecation of ANY_PACKAGE macro. Added ANY_PACKAGE_DEPRECATED macro which can still be used for backwards compatibility purposes (only used in CoreUObject)
- Deprecation of StaticFindObjectFast* functions that take bAnyPackage parameter
- Added UStruct::GetStructPathName function that returns FTopLevelAssetPath representing the path name (package + object FName, super quick compared to UObject::GetPathName) + wrapper UClass::GetClassPathName to make it look better when used with UClasses
- Added (Static)FindFirstObject* functions that find a first object given its Name (no Outer). These functions are used in places I consider valid to do global UObject (UClass) lookups like parsing command line parameters / checking for unique object names
- Added static UClass::TryFindType function which serves a similar purpose as FindFirstObject however it's going to throw a warning (with a callstack / maybe ensure in the future?) if short class name is provided. This function is used  in places that used to use short class names but now should have been converted to use path names to catch any potential regressions and or edge cases I missed.
- Added static UClass::TryConvertShortNameToPathName utility function
- Added static UClass::TryFixShortClassNameExportPath utility function
- Object text export paths will now also include class path (Texture2D'/Game/Textures/Grass.Grass' -> /Script/Engine.Texture2D'/Game/Textures/Grass.Grass')
- All places that manually generated object export paths for objects will now use FObjectPropertyBase::GetExportPath
- Added a new startup test that checks for short type names in UClass/FProperty MetaData values

AssetRegistry:
- Deprecated any member variables (FAssetData / FARFilter) or functions that use FNames to represent class names and replaced them with FTopLevelAssetPath
- Added new member variables and new function overloads that use FTopLevelAssetPath to represent class names
- This also applies to a few other modules' APIs to match AssetRegistry changes

Everything else:
- Updated code that used ANY_PACKAGE (depending on the use case) to use FindObject(nullptr, PathToObject), UClass::TryFindType (used when path name is expected, warns if it's a short name) or FindFirstObject (usually for finding types based on user input but there's been a few legitimate use cases not related to user input)
- Updated code that used AssetRegistry API to use FTopLevelAssetPaths and USomeClass::StaticClass()->GetClassPathName() instead of GetFName()
- Updated meta data and hardcoded FindObject(ANY_PACKAGE, "EEnumNameOrClassName") calls to use path names

#jira UE-99463
#rb many.people
[FYI] Marcus.Wassmer
#preflight 629248ec2256738f75de9b32

#codereviewnumbers 20320742, 20320791, 20320799, 20320756, 20320809, 20320830, 20320840, 20320846, 20320851, 20320863, 20320780, 20320765, 20320876, 20320786

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20430220 via CL 20433854 via CL 20435474 via CL 20435484
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20448496 by robert manuszewski in ue5-main branch]
2022-06-01 03:46:59 -04:00
Ben Marsh
dde2879803 Fix static analyzer warnings.
#preflight 6294df46380652524edb3498

[CL 20431977 by Ben Marsh in ue5-main branch]
2022-05-30 13:34:24 -04:00
edwin maynard
1ca7c7756d Back out changelist 20397596
[FYI] Nick.Darnell


#ROBOMERGE-AUTHOR: edwin.maynard
#ROBOMERGE-SOURCE: CL 20400220 via CL 20400224 via CL 20400228
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20401296 by edwin maynard in ue5-main branch]
2022-05-27 19:31:56 -04:00
nick darnell
71f7a858ed UMG - Further refining the named slot inheritance, we now extend the inheritance through multiple parent classes, and if a parent uses up a slot, then that slot becomes unavailable to subclasses to then be extended. They cans also introduce new named slots along the way, so as it refines the structure, it can refine the available named slots.
[REVIEW] [at]ui-editor-systems

#ROBOMERGE-AUTHOR: nick.darnell
#ROBOMERGE-SOURCE: CL 20397596 via CL 20397619 via CL 20397628
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20401193 by nick darnell in ue5-main branch]
2022-05-27 19:29:50 -04:00
vincent gauthier
8827f8f266 Localization Duplicate Id fix.
#jira UE-154828
#rb trivial
#preflight trivial

#ROBOMERGE-AUTHOR: vincent.gauthier
#ROBOMERGE-SOURCE: CL 20393484 via CL 20394137 via CL 20394384
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20398637 by vincent gauthier in ue5-main branch]
2022-05-27 16:48:29 -04:00
mark lintott
5cc587db36 Fix for Static Analysis warning
#rb trivial
#jira none
#p4v-preflight-copy 20391532
#preflight 6290ca1c1f0041249bed86f8

[CL 20392186 by mark lintott in ue5-main branch]
2022-05-27 09:13:34 -04:00
nick darnell
c227e52edb UMG - Introducing named slot inheritance. This new feature allows parent classes to insert named slots into their hierarchy, and for child classes to insert content into those named slots. This in effect will give people the ability to build base class templates and then derive them to further refine the look and feel in those named slots for the widgets specific purpose. For example, you could make a message box base class widget, with a few named slots for specific specialized message boxes without having to build a new widget from scratch.
[REVIEW] [at]ui-editor-systems

#ROBOMERGE-AUTHOR: nick.darnell
#ROBOMERGE-SOURCE: CL 20383614 via CL 20384610 via CL 20384741
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20386425 by nick darnell in ue5-main branch]
2022-05-26 17:58:02 -04:00
dave jones2
2435e8a548 UE-148560 - UMG property binding fixup for real numbers doesn't always work
The fixup pass for delegates in UMG bindings had faulty logic for determining the name of a function. The "FunctionName" field on the binding may not actually reflect the true name of the function. For example, a function rename can make this field stale. This would eventually cause BP compilation errors since we didn't find the matching function graph(s) that needed fixup.

Instead, we should call GetMemberName on the final path segment. This will use a GUID for determining what the actual function name is.

#rb patrick.boutot
#preflight 6262f1fbcf17922036d8d006
#jira UE-148281

#ROBOMERGE-AUTHOR: dave.jones2
#ROBOMERGE-SOURCE: CL 20381031 in //UE5/Release-5.0/... via CL 20383028
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20385737 by dave jones2 in ue5-main branch]
2022-05-26 17:11:12 -04:00
Leon Huang
19877e39c5 Fix for duplicate localization key warnings and missing localization defines/undefines in various files.
#rnx
#rb: Vincent.Gauthier
#jira: UE-151614
#preflight: 628fc4a98c23e52ef0fdfa7d

[CL 20384450 by Leon Huang in ue5-main branch]
2022-05-26 16:11:10 -04:00
jorge gonzalez
d000a52aa5 Notifies users if a User Widget has a null animation track, prompting them to delete or rebind said track. Deleting null animation tracks can improve performance on larger user widgets.
#ROBOMERGE-AUTHOR: jorge.gonzalez
#ROBOMERGE-SOURCE: CL 20372239 via CL 20372260 via CL 20372279
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20373433 by jorge gonzalez in ue5-main branch]
2022-05-25 19:32:58 -04:00
robert manuszewski
f8a812a32f Converting hardcoded short class/enum names to pathnames ahead of ANY_PACKAGE removal
#rb trivial
#jira UE-99463
#preflight 6288fd998828ea88c8aef3d0

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 20314896 via CL 20314897 via CL 20314903 via CL 20314904
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v948-20297126)

[CL 20315214 by robert manuszewski in ue5-main branch]
2022-05-22 10:30:02 -04:00
Vincent Gauthier
d67e03372e Fix to Widget Palette that prevent it from having more that one widget in the palette
#jira UE-151567
#rb daren.cheng
#preflight 62866bb02c1bb3e25a4abcbf

[CL 20283432 by Vincent Gauthier in ue5-main branch]
2022-05-19 13:34:08 -04:00
patrick boutot
4f178c7f0c UMG: Update the Widget with accessors.
#rb vincent.gauthier
#preflight 627a4e42705bfaf9ae31ee20

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 20123512 via CL 20123528 via CL 20123564
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20125750 by patrick boutot in ue5-main branch]
2022-05-10 13:53:03 -04:00
daren cheng
45475bec9a Include unloaded BP assets in palette filtering
#jira UE-149304
#preflight 62731f491f37fd32b02e88af
#rb Patrick.Boutot

#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 20063923 via CL 20070330 via CL 20072280 via CL 20072410
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20105674 by daren cheng in ue5-main branch]
2022-05-09 13:28:28 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
Matt Peters
7ad238a806 AssetRegistry includes (Engine/Source): change #include "AssetData.h" -> #include "AssetRegistry/AssetData.h", and similar for the other moved AssetRegistry headers.
#rb Zousar.Shaker
#rnx
#preflight 6270509a220f89f0ad573030

[CL 20016982 by Matt Peters in ue5-main branch]
2022-05-02 18:06:48 -04:00
daren cheng
78e678195f Add support for global filtering of unloaded classes to SPaletteViewModel
#jira UE-149304
#preflight 626b29d96363134a0fa3d4a7
#rb Vincent.Gauthier

#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 19980306 via CL 19982186 via CL 19982201 via CL 19982221
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19985913 by daren cheng in ue5-main branch]
2022-04-29 17:06:37 -04:00
daren cheng
1038397f53 Add support for JSON-based editor configs for categories and widgets in UMG editor
#jira UE-149304
#preflight 626a20982d28b9d0f76c580f
#rb Jason.Stasik, Vincent.Gauthier

#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 19969157 via CL 19970833 via CL 19972757 via CL 19973101
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19974308 by daren cheng in ue5-main branch]
2022-04-28 21:18:42 -04:00
daren cheng
d3a7a19de4 Add option to hide graph editor and widget animation editor elements in UMG editor
#jira UE-147427
#preflight 62676dd78432e4dd52d77544
#rb Jason.Stasik, Vincent.Gathier

#ROBOMERGE-OWNER: daren.cheng
#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 19941827 via CL 19946040 via CL 19947518 via CL 19947531
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19952499 by daren cheng in ue5-main branch]
2022-04-28 02:02:18 -04:00
daren cheng
6d7a393a61 Return correct toolkit context name for UMG editor
#jira UE-147427
#preflight 62676a378432e4dd52d6ea7b
#rb Vincent.Gauthier

#ROBOMERGE-AUTHOR: daren.cheng
#ROBOMERGE-SOURCE: CL 19941812 via CL 19946030 via CL 19947354 via CL 19947380
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 19952491 by daren cheng in ue5-main branch]
2022-04-28 02:02:08 -04:00
patrick boutot
42692ed9f7 FieldNotify: Only show the FieldNotify option in BP when the class is a WidgetBP.
#rb sebastien.nordgren

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 19719571 via CL 19719572 via CL 19719574
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19720850 by patrick boutot in ue5-main branch]
2022-04-12 10:35:01 -04:00
patrick boutot
d4eb795f50 MVVM:
Compiler support convertion function.
Reset the compiled library after compilation (prevents multiple loading).
Initialize the widget generated class FieldId after a compilation.
When compiling Skel, the class is not link. Property may not be found with FindFieldByName because they were just created.
MVVM message log was not initialized.
Fix nullptr deferecing warning.
#rnx
#rb 19686188

#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 19705236 via CL 19705239 via CL 19705248
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19705732 by patrick boutot in ue5-main branch]
2022-04-11 09:56:01 -04:00
Patrick Boutot
1e2186b0c0 UMG: Add pin for FieldNotificationId on K2 nodes.
#jira UE-145358
#rb daren.cheng
#preflight 6246f521323cb7b991207585

[CL 19588048 by Patrick Boutot in ue5-main branch]
2022-04-01 10:17:04 -04:00
Patrick Boutot
575b6b7119 UMG: Know what type of compilation is running on the extension class.
#preflight 6246f0e6981a2c8eb48eda66

[CL 19586848 by Patrick Boutot in ue5-main branch]
2022-04-01 08:37:38 -04:00
Patrick Boutot
d37439bce3 UMG: Add context to create variable from class extension.
#preflight 624123b18f37c03fd07349f7

[CL 19523899 by Patrick Boutot in ue5-main branch]
2022-03-27 23:16:49 -04:00