Commit Graph

83 Commits

Author SHA1 Message Date
andrea botti
9c1aa7d20b [ContentBrowser] When CTRL+C on an asset can we copy the Package Path instead of the Class Path
Added 2 new commmands to copy the ObjectPath and the PackageName.
Leaved the CTRL+C keybind mapped to the same behavior as before.
Added new commands to the keybind system so that users can re-bind them.
Cleaned up some hardcoded checks for keys in the OnKeyDown.

#rb aditya.ravichandran, sebastian.arleryd
#jira UE-155995

[CL 33684273 by andrea botti in ue5-main branch]
2024-05-16 08:31:50 -04:00
robert millar
54e595135f Fix incorrectly implemented comparison operators.
#jira UE-213669

[CL 33384193 by robert millar in ue5-main branch]
2024-05-01 17:47:42 -04:00
robert millar
6f0c83810a Allow content browser data subsystem to return data as callback or array, allowing pre-sizing of output array for large queries.
ContentBrowserAssetDataSource:
- Convert asset data to content browser item data in parallel for large batches of items.
- Query on-disk and in-memory assets in parallel.
Remove mutable fields from FContentBrowserItemData for thread safety.
Add FContentBrowserMinimalItemData as a comparison type for identifying FContentBrowserItemData, e.g. when removing from FContentBrowserItem.

#rb Julien.StJean

[CL 33315899 by robert millar in ue5-main branch]
2024-04-29 17:32:33 -04:00
robert millar
2f8a6dae96 [Backout] - CL33234860
[FYI] robert.millar
Original CL Desc
-----------------------------------------------------------------
Allow content browser data subsystem to return data as callback or array, allowing pre-sizing of output array for large queries.
ContentBrowserAssetDataSource:
- Convert asset data to content browser item data in parallel for large batches of items.
- Query on-disk and in-memory assets in parallel.
Remove mutable fields from FContentBrowserItemData for thread safety.
Add FContentBrowserMinimalItemData as a comparison type for identifying FContentBrowserItemData, e.g. when removing from FContentBrowserItem.

#rb Julien.StJean

[CL 33248759 by robert millar in ue5-main branch]
2024-04-25 17:58:23 -04:00
robert millar
c9c6dcb806 Add copyright header.
[CL 33238623 by robert millar in ue5-main branch]
2024-04-25 14:12:14 -04:00
robert millar
b809fe8d49 Allow content browser data subsystem to return data as callback or array, allowing pre-sizing of output array for large queries.
ContentBrowserAssetDataSource:
- Convert asset data to content browser item data in parallel for large batches of items.
- Query on-disk and in-memory assets in parallel.
Remove mutable fields from FContentBrowserItemData for thread safety.
Add FContentBrowserMinimalItemData as a comparison type for identifying FContentBrowserItemData, e.g. when removing from FContentBrowserItem.

#rb Julien.StJean

[CL 33235863 by robert millar in ue5-main branch]
2024-04-25 12:53:25 -04:00
robert millar
42915929f3 Cache internal path in content browser data and use internal and virtual path fields to determine invariant path
#rb Julien.StJean

[CL 32807853 by robert millar in ue5-main branch]
2024-04-08 17:35:08 -04:00
andrea botti
12d65238df [ContentBrowser] Wrong Thumbnail for Folder Drag in Content Browser
#rb brooke.hubert
#jira UE-197241

[CL 32758041 by andrea botti in ue5-main branch]
2024-04-05 09:31:38 -04:00
julien stjean
de89b3c6af Remove the need for a data refresh on the fist tick of the editor.
Deprecate the rest of the public api to request a full data refresh from the ContentBrowserDataSubsystem.

#jira UE-205033
#rb JeanLuc.Corenthin

[CL 32705343 by julien stjean in ue5-main branch]
2024-04-03 14:29:13 -04:00
julien stjean
939187d6ed Optimising the time it take to exit a pie session in large project by removing need to refresh of the views that use the data of the ContentBrowserDataSubsystem.
The skipped event are now instead delayed to be proccessed at the end of the pie session.

#jira UE-209307

#rb JeanLuc.Corenthin

[CL 32469680 by julien stjean in ue5-main branch]
2024-03-25 10:23:46 -04:00
robert millar
06db76b50a Make "Show Redirectors" and "Show Empty Folders" cooperate
- Move redirector filtering into backend
- Add a custom filter into SFilterBar to maintain old UI for redirector visibilty

[CL 32257795 by robert millar in ue5-main branch]
2024-03-14 16:17:37 -04:00
julien stjean
67d9048ae5 Large perf improvement for the editor in a large project:
Reworked the ClassDataSource so that it doesn't require a full data refresh when a module is Loaded, Unloaded or Reloaded.
Deprecated the capacity for a ContentBrowser Data Source to request a full data refresh since this doesn't well scale on large projects.

Added a way to query a IReload for the classes that were reinstancited.

Fixed a bug in the FNativeClassHierarchy::GatherMatchingNodesForPaths function. It failed a getting a existing class node if a folder in its path had the same name has the class.

#jira UE-208789

#rb kevin.macaulayvacher

[CL 32212553 by julien stjean in ue5-main branch]
2024-03-13 10:24:34 -04:00
robert millar
6e9c591047 Special icon for virtual organizational folders in content browser.
- ContentBrowserUtils::ShouldShowCustomVirtualFolderIcon and cvar ContentBrowser.ShowCustomVirtualFolderIcon so it can be disabled in UEFN
- Attribute ContentBrowserItemAttributes::ItemIsCustomVirtualFolder for categorization
- Built-in folders like All, Game, Engine, Plugins are not marked with the above attribute
- Set ContentBrowser.ShowCustomVirtualFolderIcon to 0 when entering UEFN restricted mode

#rb Rex.Hill

[CL 31729647 by robert millar in ue5-main branch]
2024-02-22 14:13:17 -05:00
steve robb
f8d47335a4 Replaced RemoveAt(N, 1, EAllowShrinking::*) with RemoveAt(N, EAllowShrinking::*).
[CL 31626444 by steve robb in ue5-main branch]
2024-02-19 16:51:58 -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
robert millar
ea88d149f1 Add IsInPlugin to FContentBrowserItem.
[CL 30663222 by robert millar in ue5-main branch]
2024-01-17 13:29:18 -05:00
robert millar
a6866c8583 Add plugin category flag EContentBrowserItemFlags::Category_Plugin
Assign flag to content browser folders and assets in plugins.
Fix incorrect early return in UContentBrowserAssetDataSource::OnPathsAdded

#rb Rex.Hill, Jamie.Dale

[CL 30621336 by robert millar in ue5-main branch]
2024-01-15 13:01:17 -05:00
aditya ravichandran
a90d73d766 Asset Editors: Add support for opening cooked assets in a new "Read Only" mode for asset editors, starting with the Static Mesh Editor and Texture Editor.
#jira UE-187048
#rb jason.stasik

[CL 27595048 by aditya ravichandran in ue5-main branch]
2023-09-05 10:01:26 -04:00
ben zeigler
873dfcab56 Return true earlier from content browser folder functions that search multiple data sources, this improves performance while refreshing things
#jira UE-183275
#rb julien.stjean

[CL 27351303 by ben zeigler in ue5-main branch]
2023-08-24 14:36:08 -04:00
robert millar
4301477ebd Provide telemetry to SAssetView. Telemetry is not sent to any endpoint for licensees.
#rb julien.st-jean,logan.buchy,wes.hunt

[CL 26301369 by robert millar in ue5-main branch]
2023-06-28 18:21:13 -04:00
jamie dale
b0f9efe23a Fixed nested virtual roots (from aliases) failing to resolve correctly
It's possible for aliases to generate nested virtual roots, eg)
 /All/MyStuff -> /MyStuff
 /All/MyStuff/SomePlugin -> /SomePlugin

In that situation the virtual path resolver would fail to process a path like "/All/MyStuff/RefContent" since "/All/MyStuff" had a child folder so was assumed never to be a virtual root in its own right.

This change updates the resolver to keep track of the best potential virtual root as the path is parsed (even if it has children), and will then use the best match when converting to an internal path.

#jira
#rb Rex.Hill, Dave.Belanger

[CL 25849603 by jamie dale in ue5-main branch]
2023-06-07 13:10:47 -04:00
bryan sefcik
ecd9fa8a99 Removed dependencies that aren't needed by the modules that declare them. This is to help fix bad circular dependencies in the engine.
#preflight 647b5f919c5bac5c6f8be490
#jira

[CL 25782459 by bryan sefcik in ue5-main branch]
2023-06-03 15:25:01 -04:00
julien stjean
8787c97df0 Additional improvement for the filter compilations of the asset views.
Added a system to cache some data that can be used when recompiling the filters for the incremental data updates.
For now this only used by for the asset data source internal path compilation of the asset views.

In my test on a bad scenario this yielded a reduction 98% of the time it take to call UContentBrowserAssetDataSource::CreateAssetFilter when the cache is used.

Before the optimization the reference call took  26.3 ms
After the optimization the reference call took 0.3725 ms

Also this change fix an issue with my last change interacting badly with the alias data source by not using its customization of the package paths hierarchy.

#preflight 645a92f42d27fa25b3069003
#jira UE-183276
#rb Rex.Hill

[CL 25396753 by julien stjean in ue5-main branch]
2023-05-09 18:06:59 -04:00
julien stjean
71cc3dbeb5 Perf improvement to the function UContentBrowserAssetDataSource::CreateAssetFilter.
For a large project with a lot paths with a recursive search on all the folder the change reduced time it took to create the filter by ~86%.

Before the change a function call took 191.3 ms
After the change the same function call took 25.8 ms

#jira UE-183275
#preflight 64499a7709453df548d462f5
#rb Rex.Hill, Robert.Millar

[CL 25283516 by julien stjean in ue5-main branch]
2023-05-01 10:09:15 -04:00
jamie dale
d20a9f1159 Hide "Find in Explorer" menu option for cooked content, as there is never a source file available
#rb Rex.Hill
#rnx

[CL 25225496 by jamie dale in ue5-main branch]
2023-04-27 18:49:41 -04:00