Commit Graph

140 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
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
marc audy
cff01aa9fa Added support for native FProperty setters and getters.
Setters and getters are native functions called by FProperties when setting property values with *_InContainer functions.
Setters and getter function names can be manually specified with Setter = Func and Getter = Func keywords inside of UPROEPRTY macro but they will also be automatically parsed if the name is not explicitly specified if the setter or getter function name matches SetPropertyName and GetPropertyName pattern.
The latter behavior can be disabled in UHT's DefaultEngine.ini by setting AutomaticSettersAndGetters=False.
ImportText and ExportTextItem functions have been deprecated and should be replaced with *_InContainer or *_Direct variants.

#rb Steve.Robb
#preflight 6210a377a83e0bcefd03d9e1

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: robert.manuszewski
#ROBOMERGE-SOURCE: CL 19070318 via CL 19098059 via CL 19104650 via CL 19104661 via CL 19110012
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19147839 by marc audy in ue5-main branch]
2022-02-25 10:39:39 -05:00
patrick boutot
835727130a Slate: Clear the uncached draw elements and the batches elements once they are rendered. We do this to remove hard references to the Glyph Sequence from the previous frame. Cached draw elements are still cached. An old Glyph Sequence may still be a reference in a cached element but it is the responsibility of the SWidget to do the proper invalidation. Deprecated the FSlateRenderer::GetDrawBuffer to remind the user to call FSlateRenderer::ReleaseDrawBuffer.
#rb matt.kuhlenschmidt, none
#preflight 62066e4554003c49ad37c3e6
#preflight 6214eeab797dbbeb471d43cc
#preflight 621522ff9e113332ba17dc9d
#preflight 62162720104496cff889752a

#ROBOMERGE-OWNER: patrick.boutot
#ROBOMERGE-AUTHOR: patrick.boutot
#ROBOMERGE-SOURCE: CL 19089835 via CL 19089855 via CL 19092359 via CL 19093299 via CL 19101760
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19141573 by patrick boutot in ue5-main branch]
2022-02-24 23:56:41 -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
a6e741e007 Merge from Release-Engine-Staging @ 17915896 to Release-Engine-Test
This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035

[CL 17918595 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-25 20:05:28 -04:00
zahra nikbakht
85fd090086 Use FRenderTarget of canvas for widget blueprint thumbnail rendering in order to reduce the number of render targets used.
#rb vincent.gauthier
#jira ue-121877
#rnx
#preflight 6138c017d9c85a00017d86f1

#ROBOMERGE-AUTHOR: zahra.nikbakht
#ROBOMERGE-SOURCE: CL 17459652 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17459664 by zahra nikbakht in ue5-release-engine-test branch]
2021-09-08 12:09:24 -04:00
daren cheng
c88191814c Add initial widget library in closed tab.
---
Expose AssetView from ContentBrowser
Add Library view model, partial reuse from pallete view model (needs more reuse).
Add support for widget asset dragdrop via code classes & to widget hierarchy.

#jira UE-121731
#rb Patrick.Boutot
#pf 611a7ea8008be900013ad2e6

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

[CL 17180340 by daren cheng in ue5-release-engine-test branch]
2021-08-16 15:29:31 -04:00
zahra nikbakht
72e468005a Float to Int conversion check for widget thumbnail size #RB patrick.boutot #jira ue-121018
#preflight 6112c839cf0cdd0001c9c74f

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

[CL 17125153 by zahra nikbakht in ue5-release-engine-test branch]
2021-08-10 17:33:10 -04:00
vincent gauthier
5ef267c217 Correction to Replace Widget with child done on a NamedSlot to properly mark the parent as modify and have the change to it in the transaction.
#jira UE-112751
#rb daren.cheng

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

[CL 17075838 by vincent gauthier in ue5-release-engine-test branch]
2021-08-05 17:04:55 -04:00
zahra nikbakht
8f27bfa7f6 - Custom thumbnail for Widget blueprints #RB patrick.boutot #jira ue-118803
#preflight 610a9c562b002800016b5e53

#ROBOMERGE-SOURCE: CL 17052085 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)

[CL 17052094 by zahra nikbakht in ue5-release-engine-test branch]
2021-08-04 11:18:57 -04:00
simon tourangeau
1e1128ce2d Fix NonUnity build errors
#jira UE-120823
#rb aurel.cordonnier
#rnx

#ROBOMERGE-SOURCE: CL 17031609 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v846-17029325)

[CL 17035443 by simon tourangeau in ue5-release-engine-test branch]
2021-08-03 14:41:53 -04:00
zahra nikbakht
491513703f Fixed aliasing and custom size issue for Widget Thumbnail Renderer #RB patrick.boutot #jira ue-119520
#preflight 60f99428a6959a0001a6c00c

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

[CL 16933282 by zahra nikbakht in ue5-release-engine-test branch]
2021-07-22 20:55:55 -04:00
nick darnell
2d18007afc UMG - When pasting widgets, handle the case where the pasted child widget can't be imported. Can happen when pasting between versions that may not have all the same versions.
#jira none

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

[CL 16830255 by nick darnell in ue5-release-engine-test branch]
2021-07-12 15:43:27 -04:00
vincent gauthier
2421108e6d Correction to the ReplaceNamedSlotHostContent function to properly remove the widget from its parent before adding it as a NamedSlot.
[RN] UMG Designer: Fix to a crash that can happen when using Replace with Child option in the context menu of the hierarchy panel if the Widget being replaced by its child is in a NamedSlot.

#rb patrick.boutot
#jira UE-112751

#ROBOMERGE-SOURCE: CL 16646168 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16646169 by vincent gauthier in ue5-release-engine-test branch]
2021-06-11 16:00:39 -04:00
Marc Audy
f02d489290 Update Release-Engine-Test from Release-Engine-Staging @ 16264272
[CL 16264458 by Marc Audy in ue5-release-engine-test branch]
2021-05-11 01:10:20 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
Vincent Gauthier
d5d27848d9 Fix to a crash caused by a null ptr when pasting Widgets.
#jira UE-104468
#rb patrick.boutot

[CL 16124240 by Vincent Gauthier in ue5-main branch]
2021-04-27 09:16:10 -04:00
Vincent Gauthier
240a4b181e Fix to rename of widget that add Brackets when renaming to an empty name.
#jira UE-113473
#rb patrick.boutot

[CL 16061554 by Vincent Gauthier in ue5-main branch]
2021-04-20 10:52:55 -04:00
Marc Audy
01b7c9f4f5 Merge UE5/RES @ 15958325 to UE5/Main
This represents UE4/Main @ 15913390 and Dev-PerfTest @ 15913304

[CL 15958515 by Marc Audy in ue5-main branch]
2021-04-08 14:32:07 -04:00
Patrick Boutot
263493d222 UMG: Remove widget mark as "HideDropDown" from the palette.
#rb daren.cheng

[CL 15562075 by Patrick Boutot in ue5-main branch]
2021-03-01 17:14:32 -04:00
Marc Audy
9753392e2b Merge UE5/RES CL# 15462083 to UE5/Main
This represents UE4/Main @ 15414221

[CL 15463811 by Marc Audy in ue5-main branch]
2021-02-18 18:13:28 -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
Zousar Shaker
12d60feecc Bulk pass to address PVS warnings due to use of a TObjectPtr in the result clauses of a ternary operator.
#jira UE-107532
#jira UE-107530
#rb none

[CL 15276391 by Zousar Shaker in ue5-main branch]
2021-02-01 19:17:54 -04:00
Marc Audy
4c1bb11c29 Merge UE5/Release-Engine-Staging to UE5/Main @ 14548662
This represents UE4/Main @ 14525125 + cherrypicked fixes
#skipundocheck

[CL 14551026 by Marc Audy in ue5-main branch]
2020-10-22 19:19:16 -04:00