Commit Graph

76 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
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
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
Louise Rasmussen
c0d99f833c Find In Blueprints Reskin - Makes use of parent row styling
#JIRA UETOOL-2460
#rb Lauren.Barnes

[CL 18425722 by Louise Rasmussen in ue5-main branch]
2021-12-09 17:09:19 -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
ben hoffman
fe1ad89bf4 [Blueprints]
Replace uses of the old SCSEditor with the new Subobject Editor in Blueprints.

The behavior will be functionally the same, but now has a properly seperated data model for modifying subobjects in the editor.

#jira UE-64131
#jira UE-112228
#jira UE-29873

#rb phillip.kavan

#ROBOMERGE-SOURCE: CL 16315302 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)

[CL 16315307 by ben hoffman in ue5-release-engine-test branch]
2021-05-13 13:41:56 -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
Matt Kuhlenschmidt
aed44ee4e6 Unify lock icons
[CL 14634675 by Matt Kuhlenschmidt in ue5-main branch]
2020-11-02 15:56:00 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
rex hill
4511728f09 Tab manager filter can now block tab spawn
#rb chris.gagnon


#ROBOMERGE-OWNER: rex.hill
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 11604269 via CL 11604360 via CL 11604439
#ROBOMERGE-BOT: (v656-11643781)

[CL 11743509 by rex hill in Main branch]
2020-02-28 11:30:46 -05:00
phillip kavan
aeca6ffc2c Decoupled BP indexing from the search thread in the editor in order to take advantage of multiprocessing, and improved the overall UX.
#rb Dan.OConnor


#ROBOMERGE-SOURCE: CL 10945982 via CL 10945987
#ROBOMERGE-BOT: (v632-10940481)

[CL 10945988 by phillip kavan in Main branch]
2020-01-10 17:05:54 -05:00
ryan durand
627baf970a Updating copyright for Engine Editor.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870586 by ryan durand in Main branch]
2019-12-26 15:33:43 -05:00
phillip kavan
4a183de40f Reduce the overall time spent constructing search result nodes during a global Blueprint search.
#rb Dan.OConnor


#ROBOMERGE-OWNER: phillip.kavan
#ROBOMERGE-AUTHOR: phillip.kavan
#ROBOMERGE-SOURCE: CL 10760105 via CL 10760106
#ROBOMERGE-BOT: (v610-10636431)

[CL 10760117 by phillip kavan in Main branch]
2019-12-16 23:32:32 -05:00
Robert Manuszewski
7b6f840f7f Copying //UE4/Dev-Core @ 10708550 to Dev-Main (//UE4/Dev-Main)
#rb none

[CL 10708666 by Robert Manuszewski in Main branch]
2019-12-13 11:07:03 -05:00
phillip kavan
0083c275d8 Add profiling hooks to Blueprint search for A/B testing and consolidated some code.
#rb Dan.OConnor


#ROBOMERGE-SOURCE: CL 10433031 via CL 10433041
#ROBOMERGE-BOT: (v594-10333955)

[CL 10433060 by phillip kavan in Main branch]
2019-11-25 17:45:37 -05:00
dan oconnor
e915bef139 Fix Copy/Select All in global FIB window
#rb Phillip.Kavan
#jira UE-82443

#ROBOMERGE-SOURCE: CL 9825477 in //UE4/Release-4.24/...
#ROBOMERGE-BOT: RELEASE (Release-4.24 -> Main) (v546-9757112)

[CL 9825499 by dan oconnor in Main branch]
2019-10-24 18:29:00 -04:00
phillip kavan
43062fb4c2 Fix for a backwards-compatibility issue that prevents any global Blueprint search from functioning properly (regression).
Change summary:
- Added FSearchDataVersionInfo to consolidate cached version data passed between internal APIs.
- Modified FFindInBlueprintManager::QuerySingleBlueprint() to return a read-only ptr to the matching entry.
- Modified a few internal APIs to include FSearchDataVersionInfo as input.
- Modified FFindInBlueprintSearchManager::ExtractUnloadedFiBData() to query unloaded asset package summaries for last-saved editor object custom version info. This value is then cached into the search DB.
- Modified FFindInBlueprintSearchManager::ConvertJsonStringToObject() (and helpers) to configure the FArchive stream with the cached editor object custom version from the search DB before deserializing the LUT.

#jira UE-77166
#rb Dan.OConnor

#ROBOMERGE-SOURCE: CL 7479471 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v372-7473910)

[CL 7479472 by phillip kavan in Main branch]
2019-07-22 18:38:28 -04:00
phillip kavan
45ad85d596 Fix invalid LoadObject() call on attempt to change focus to an empty FiB search result.
#rb None
#jira UE-72436

#ROBOMERGE-SOURCE: CL 7090249 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v367-6836689)

[CL 7090256 by phillip kavan in Main branch]
2019-06-19 09:10:22 -04:00
projectgheist
e3df30d9e4 PR #5715: UE-36821: Open BP editor to view property from Find in Blueprints (Contributed by projectgheist)
#rb Me
#jira UE-36821, UE-72764

[CL 6629220 by Phillip Kavan in Dev-Framework branch]
2019-05-24 10:42:24 -04:00
Dan Oconnor
75fa0c83b8 Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework)
#rb none

[CL 5812824 by Dan Oconnor in Dev-Framework branch]
2019-04-09 16:29:40 -04:00
phillip kavan
11933d024e Suppress progress notifications in the editor during a deferred Blueprint re-indexing operation after an asset load.
#rnx
#jira UE-68638
#rb Dan.OConnor


#ROBOMERGE-SOURCE: CL 4772816 via CL 4778591

[CL 4778763 by phillip kavan in Main branch]
2019-01-23 05:42:01 -05:00
phillip kavan
3d8aef1600 Slight improvement to editor startup/load times by deferring Blueprint search data re-indexing work on load.
Notes:
- Blueprint asset re-indexing is now queued and occurs only when a Blueprint editor window OR any global Find-in-Blueprint tab is open.
- Includes an editor INI option (bDisableDeferredIndexing) to allow the new UX to be disabled if necessary (i.e. revert to previous behavior).

#jira UE-65489
#rb Dan.OConnor


#ROBOMERGE-SOURCE: CL 4691239

[CL 4691376 by phillip kavan in Main branch]
2019-01-09 00:19:58 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Andrew Rodham
dd152540ca Blueprints: Formalized the concept of a blueprint embedded within an asset for nativization and "Find in Blueprints" purposes
- Added IBlueprintAssetHandler to define how blueprints should be retrieved from particular assets, registered by class name
  - Replaced the majority of UWorld specific logic from the find in blueprint manager with calls to this new handler
  - All search entries are stored as the full Blueprint path, all unindexed (uncached) entries are stored as the full asset path.
  - Added a function (SupportsNativization) to UBlueprint to enable specific blueprints to explicitly disallow nativization

#rb Phillip.Kavan

[CL 4209438 by Andrew Rodham in Dev-Sequencer branch]
2018-07-13 06:02:54 -04:00